sábado, 6 de mayo de 2023

Pinning apps using winget

Some times you want to update all your packages on your windows system, winget can be a solution, but sometimes all thinks can be out of control, you can try this way to skip certain updates over winget commands.

Recently on winget unstable version  of winget got the excellent feature and its called pin programs.

This is a useful tools in order to run in a relaxed way the famous update "winget update --all"  and does not stuck your system in a little moment.

This treat shows how winget will works:

Pin a package · Issue #476 · microsoft/winget-cli (github.com)


I installed the April unstable release of winget and it seems the this version uses the operations: add, remove, list, reset, showed as follows:









To add a program for pined version just type as follows:





To ensure the package is fully pined, you can try:





And will show your current pinned programs:




If you want to delete or remove this pin, you can try:





Finally, if you want reset all pines you can do it just typing:




Enjoy and Cheers!!

martes, 8 de noviembre de 2022

Fedora y la tapa del ordenador

 He notado que fedora no trae la opción de los equipos Ubuntu en energia para configurar el comportamiento al cerrar la tapa de energia en el portatil.


En este documento de redhat se explica como cambiar las opciones cuando se cierra la tapa, entre las cuales tenemos:


No hacer nada --> ignore

Suspender -> suspend

Bloquear la pantalla -> lock


Lo que nos suguieren es editar el fichero:


/etc/systemd/logind.conf


Por ejemplo:

[Login]
HandleLidSwitch=lock

y reiniciar el servicio ( es posible que la sesión actual de X se pierda luego de hacer los cambios y un reinicio completo sea necesario) .


systemctl restart systemd-logind.service

sábado, 13 de agosto de 2022

Como Instalar VirtualBox 6.1 y firmar los modulos del kernel fedora 35 y 36

Cuando requeria ejecutar Virtualbox en un sistema fedora, la única opción viable era  deshabilitar la opción de secureboot en equipo, hasta hace poco, siempre existía la necesidad de firmar los drivers de virtualbox, pero esto no era posible o no había encontrado como hasta ahora.


En esta página se explica el proceso detalladamente. Básicamente los pasos son los siguientes:


Preparar el sistema Fedora:

Pasarnos a modo super usuario

#sudo -i

Ejecutar actualizaciones y limpieza del sistema:

#dnf -y update && dnf -y upgrade && dnf -y autoremove

Instalar cabecéras del kernel y módulos de desarrollo:

#dnf install -y kernel-devel-$(uname -r) kernel-headers

Habilitar los repositorios:


Pasarnos a super usuario

#sudo -i 

Importar la firma de Oracle VirtualBox en nuestros RPM

#rpm --import  https://www.virtualbox.org/download/oracle_vbox.asc
 
Agregar el Repositorio oficial VirtualBox vía DNF:

#dnf config-manager --add-repo https://download.virtualbox.org/virtualbox/rpm/fedora/virtualbox.repo

Instalar VirtualBox en Fedora 36

Instalamos VirtualBox vía DNF

#dnf install -y VirtualBox-6.1

regresar al usuario sin privilegios y ejecutar 

#exit

sudo agregar al usuario normal al grupo vboxusers

#sudo  usermod -aG vboxusers $USER

#sudo -i

Preparar el sistema para firmar los drivers en los sistemas EFI con SecureBoot habilitado

Generar el Machine Owner Key MOK

Instalar OpenSSL
#dnf install -y openssl

Crear el directorio para nuestros módulos:

#mkdir /root/module-signing
#cd /root/module-signing

Crear la llave de la máquina (yo usé hostname) pero ese campo CN se puede personalizar a su gusto:

#openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=$(hostname)/"

Proteger la llave creada

#chmod 600 MOK.priv
 

Ahora vamos a importar la llave generada con la utilidad mokutil, debemos colocar contraseña y reiniciar, esto nos dirigirá a la BIOS donde debemos completar el proceso de importación, colocando la contraseña asignada en este paso.

#mokutil --import /root/module-signing/MOK.der

Al reiniciar presionamos Enter

1. Seleccionamos la opción Enrolar/Inscribir MOK
2. Seleccionamos la opcion View Key 0 (Ver llave 0) para revisar el Machine Owner, si la información es correcta, continuamos.
3. Elegimos continuar y damos la opción YES (si), en seguida se solicita la contraseña que le asingamos a la llave.
4. Reiniciamos el sistema.


Con este MOK agregado a la BIOS nos permitirá firmar nuestros drivers de VirtualBox y así completar el proceso:

creamos el script /root/module-signing/sign-vbox-modules

Nos pasamos a Root:

#sudo -i

Creamos el script con el comando echo.

# echo "
#!/bin/bash

for modfile in $(dirname $(modinfo -n vboxdrv))/*.ko; do
  echo "Signing $modfile"
  /usr/src/kernels/$(uname -r)/scripts/sign-file sha256 \
                                /root/module-signing/MOK.priv \
                                /root/module-signing/MOK.der "$modfile"
done
" > /root/module-signing/sign-vbox-modules

Luego de esto Protegemos el script

#chmod 700 /root/module-signing/sign-vbox-modules

Ahora podemos ejecutar el script:

#/root/module-signing/sign-vbox-modules

Con los drivers firmados podemos habilitar nuestro sistema VirtualBox

#systemctl enable --now vboxdrv


Habilitar las Extensiones de VirtualBox


Descargamos las extensiones:

#wget https://download.virtualbox.org/virtualbox/6.1.34/Oracle_VM_VirtualBox_Extension_Pack-6.1.34.vbox-extpack

Las agregamos al sistema Instalado y Habilitado

#VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-6.1.34.vbox-extpack


Y así podemos ya Instalar nuestros sismemas de pruebas con VirtualBox en Fedora 35 - 36




Un saludo.

sábado, 14 de agosto de 2021

Revertir actualización de paquetes con DNF


 Existen múltiples formas de deshacer actualizaciones o instalaciones de paquetes en Linux, para el caso de fedora, redhat, almalinux, centos, rock y otras, a través del comando dnf se puede hacer una trazabilidad de las transacciones y obtener diferentes resultados:

El comando dnf history 

 nos permite observar la clase de cosas que hemos hecho con los sistemas:


 

 

Cuando se ha identificado lo que se quiere deshacer, uno puede irse al id  de la transacción:

 

El comando descargará nuevamente los paquetes y los instalará en la versión previa.

Por otro lado, no es necesario que se use el control estricto del id de la transacción; por ejemplo, si queremos deshacer la acción 7, para estar seguros de se hizo o no, o se modificó por otro paquete podemos  hacer lo siguiente:

 

Con esto ya sabremos qué hacer en caso de necesitar hacer rollback en una actualización o reinstalación de paquetes.