Void Linux Tips
151 subscribers
3 photos
4 videos
16 links
Este canal tratará de tener el mayor número de consejos o soluciones a las dudas más frecuentes de los usuarios de Void Linux
Download Telegram
#xbps #remove
Si por alguna razón desean eliminar un paquete que forme parte de un metapaquete (xfce4, lxde, base-system, etc.) porque lo quieren reemplazar por otra alternativa, seguir los siguientes pasos.
En este ejemplo se mostrarán los pasos para eliminar sudo que forma parte del sistema base.

1. Primeramente asegurarse que el paquete que eliminarán no es requerido por ningún otro paquete excepto por el metapaquete. Para esto, hacer una búsqueda de dependencias inversa.
$ xbps-install -X sudo
El prompt devolverá la lista de paquetes que dependen de sudo, en este caso dependiendo de la base que se tenga instalada obtendrán una respuesta de que base-system o base-voidstrap lo necesitan

2. Una vez asegurados de que es seguro eliminarlo, proceder a añadirlo a una lista de paquetes ignorados para que el sistema ya no lo instale en caso de recibir alguna actualización del metapaquete.
Si es la primera vez que añaden un paquete a la lista, proceder del siguiente modo:
$ sudo touch /etc/xbps.d/00-ignore.conf && echo "ignorepkg=sudo" | sudo tee /etc/xbps.d/00-ignore.conf
Si ya se tenían la lista de paquetes ignorados y desean añadir otro, proceder del siguiente modo:
$ echo "ignorepkg=foo" | sudo tee -a /etc/xbps.d/00-ignore.conf
La opción -a no sobreescribe el contenido del archivo y añade el nuevo contenido al final del mismo

3. Eliminar el paquete añadiendo la opción -R para que elimine también de forma recursiva aquellas dependencias que no sean requeridas por otros paquetes.
$ sudo xbps-remove -R sudo

4. Instalar el paquete alternativo en caso de que lo requieran. Para sudo sería doas o usar directamente su
👍3
#backup #xbps #install #query
Para crear un backup de la lista de paquetes instalados manualmente, hacerlo del siguiente modo:

1. Generar la lista de paquetes y guardarla en un archivo de texto plano:
xbps-query -m | xargs -n1 xbps-uhelper getpkgname | fmt > pkg_list.txt

2. Para instalar la lista de paquetes, proceder del siguiente modo:
# xbps-install -Suf $(cat pkg_list.txt)
#repositorio #xbps.d
Priorizar un repositorio en específico

El gestor de paquetes xbps permite a los usuarios gestionar de manera sencilla el cómo priorizar los repositorios.
Los repositorios siempre se priorizan por el orden en el que se leen, teniendo prioridad la configuración que se ubica en /etc/xbps.d y después la que se ubica en /usr/share/xbps.d; así mismo, un repositorio con el nombre 00-repo.conf es leído antes que uno llamado 99-repo.conf y finalmente, la primera línea escrita en una configuración será leída antes siempre y cuando no se encuentre comentado por un #.

Xbps buscará en todos los repositorios el paquete con la versión más reciente si la opción bestmatching=yes está configurada; de lo contrario, solo elegirá en el primer repositorio el nombre del paquete para instalaciones y actualizaciones. Este comportamiento es el predeterminado.

Por lo tanto, si se crea un archivo como /etc/xbps.d/10-custom.conf con un contenido de repository=/repo/path/ y en dicho repositorio se tiene un paquete de una versión anterior a la del repositorio principal y además la opción bestmatching se encuentra comentada, xbps elegirá siempre el paquete del repositorio personalizado a menos que bestmatching se encuentre habilitado eligiendo así la versión más alta disponible de cualquier repositorio.
👍1
Como bien es sabido, además de poder tener un sistema base en Void Linux a través de los binarios precompilados, también es posible hacerlo usando xbps-src para añadir y/o quitar opciones, así como optimizarlos para procesadores específicos.
Para construir el sistema base desde cero hay que configurar las variables de entorno para CFLAGS y CXXFLAGS que leerá xbps-src. Para esto, hay que añadirlo al fichero conf el cual tendrá prioridad sobre la configuración defaults.conf

$ echo 'XBPS_CFLAGS="-march=native -O3 -pipe"' > etc/conf
$ echo 'XBPS_CXXFLAGS="${XBPS_CFLAGS}"' >> etc/conf

NOTA: Si el sistema que tienen cuenta con poca memoria, entonces es recomendable omitir la opción -pipe ya que lo que hace es acelerar la compilación pero puede utilizar más memoria y ante la falta de ella, el proceso de compilación finalizará con errores.

Ahora, una vez hechas las configuraciones, proceder a construir el sistema base:

$ ./xbps-src -f -j "$(nproc)" pkg base-system

Opcionalmente pueden añadir que cuando finalice el proceso les muestre un mensaje ya que puede demorar varios minutos.

$ ./xbps-src -f -j "$(nproc)" pkg base-syste
m && notify-send --urgency=critical "Tarea finalizada"

Cuando finalice el proceso lo único que falta por hacer es instalar los paquetes:

# xbps-install --repository=hostdir/binpkgs -fy $(xbps-query --repository=hostdir/binpkgs --fulldeptree -x base-system | xargs -n1 xbps-uhelper getpkgname)
👍2
#runit #servicios #init
Uno de los mejores threads que he leído en reddit y que vale la pena guardar para futuras consultas en caso de alguna duda sobre el funcionamiento de runit
https://www.reddit.com/r/voidlinux/comments/jawzyb/runit_boot_optimization_and_prioritizing_services/
#xbps #xbps-src #tmpfs #overlayfs

Una de las utilidades poco conocidas que ofrece xbps-src para compilar los binarios es hacerlo sobre tmpfs para agilizar el proceso de compilación. Al utilizar este método no se "contamina" el masterdir actual ya que se crea otro que se usará de manera temporal.
Para poder usar esta característica, es indispensable que el sistema de archivos tenga soporte para overlayfs, además será necesario añadir lo siguiente al fichero de configuración conf de xbps-src:
echo XBPS_CHROOT_CMD=uchroot >> etc/conf
echo XBPS_CHROOT_CMD_ARGS=-t >> etc/conf
Una vez configurado lo anterior, para construir los binarios se procede de la siguiente manera:
./xbps-src -t pkg PAQUETE

Si después de intentar construir el binario obtienen un mensaje como el siguiente, significa que el kernel que tienen en uso no soporta el sistema de archivos overlay.
ERROR: failed to mount overlayfs on ~/void-packages/masterdirXXXEaIihm/masterdir (No such device)
En las configuraciones del kernel, el sistema de archivos overlay lo encuentran acá
Media is too big
VIEW IN TELEGRAM
#kernel #xbps-src #custom

Cómo configurar y compilar el kernel en Void Linux.
👍3
#autologin #X11 #runit #startx

Void Linux brinda al usuario varias opciones para poder iniciar sesión y cargar xorg. Una opción es hacerlo de la forma tradicional a través de una interfaz de usuario: display manager (gdm, lxdm, lighdm, etc); otro modo es iniciar sesión a través de la consola virtual (tty) y posteriormente cargar manualmente xorg a través del comando startx, sin embargo, también existe otro modo de iniciar sesión y cargar automáticamente xorg y sin necesidad de configurar un display manager. Esta última opción es viable cuando se tiene la certeza de que el equipo será utilizado por un solo usuario/persona. Los pasos para dicha configuración se mencionan a continuación.

1. Instalar el paquete xinit y configurarlo para que cargue el entorno de escritorio o gestor de ventanas que deseamos. El archivo de configuración debe de estar oculto en el directorio home del usuario.
Procedemos a crear un fichero vacío oculto y llamado xinitrc en el home.

touch "$HOME"/.xinitrc

Ahora, dependiendo de cómo queremos iniciar xorg añadimos una de las siguientes lineas dentro de la configuración:

exec mate-session # Para iniciar Mate-Desktop
exec startxfce4 # Para iniciar XFCE
exec startlxde # Para iniciar LXDE
exec startkde # Para iniciar KDE-Plasma
exec gnome-session # Para iniciar Gnome
exec cinnamon-session # Para iniciar Cinnamon
exec startlxqt # Para iniciar LXQT
exec dwm # Para iniciar el gestor de ventanas DWM
exec openbox-session # Para iniciar el gestor de ventanas openbox
exec i3 # Para iniciar el gestor de ventas i3wm
exec awesome # Para awesome-wm
exec bspwm # Para iniciar el gestor de ventanas bspwm

2. Para el autologin primeramente hay que copiar la configuración de agetty-tty1 para poder crear la configuración que se usará para el autologin. Quizá se pregunten qué sentido tiene crear un nuevo servicio, sin embargo por alguna extraña razón la configuración de los otros agetty-tty están enlazadas simbólicamente a agetty-tty1.

# cp -R /etc/sv/agetty-tty1 /etc/sv/agetty-autologin-tty1

Es muy importante que el nombre del servicio que se va a crear termine con un nombre válido de alguna de las consolas virtuales activadas ya que de no ser así no funcionará.

3. Una vez se ha creado el nuevo servicio hay que editarlo con su editor de textos preferido:

vim /etc/sv/agetty-autologin-tty1/conf

Dentro de la configuración buscar la siguiente línea y reemplazar USUARIO por el de la cuenta con la que se iniciará sesión:

GETTY_ARGS="--autologin USUARIO --noclear"
BAUD_RATE=38400
TERM_NAME=linux

4. A partir de este punto es importante que si se inició sesión en tty1 cambiarse a otra ya que se desactivará su servicio.
Se procede a desactivar el servicio de la tty1 y reemplazarla por el servicio de autologin:

# rm /var/service/agetty-tty1
# ln -s /etc/sv/agetty-autologin-tty1 /var/service

Hasta este punto ya se tiene funcionando el autologin en TTY, lo que ahora hace falta es carga xorg automáticamente.

5. Para cargar X11 basta con añadir lo siguiente a la configuración del perfil del shell que estén usando (generalmente bash a menos que lo reemplacen con otro):

if [ -z "DISPLAY"] && [ "$(fgconsole)" -eq 1 ]; then
exec startx
fi

6. En el punto cuatro se desactivó el servicio de agetty-tty1, sin embargo, cuando runit tenga una actualización dicho servicio será restablecido y el autologin dejará de funcionar. Para evitar que el servicio se inicie automáticamente después de una actualización de runit hay que crear un archivo con el nombre down en el directorio del servicio agetty-tty1:

# touch /etc/sv/agetty-tty1/down
👍4
#xbps-query #nonfree #repo #repositorios
Si en alguna ocasión necesitan dar un vistazo rápido al repositorio nonfree de void para buscar un paquete que necesiten y sin necesidad de instalarlo, pueden hacerlo del siguiente modo:

xbps-query -Mi --repository=https://alpha.us.repo.voidlinux.org/current/nonfree -s\*

En caso de tener la versión con Musl, hacerlo del siguiente modo:

xbps-query -Mi --repository=https://alpha.us.repo.voidlinux.org/current/musl/nonfree -s\*

-M Almacena los datos del repositorio remoto en la memoria ignorando los datos guardados de forma local
-i Ignora los repositorios que se tengan definidos en xbps.d
--repository= Se especifica qué repositorio se utilizará para la búsqueda
-s Buscar coincidencias con la palabra definida
🤩1
#ignorepkg #xbps-install #xbps-remove

Complementando al video de José que compartió hoy, me tomé el atrevimiento de hacer este video para mostrar otro método para eliminar paquetes que son requeridos como dependencias añadiéndolos a la lista de paquetes ignorados por xbps

https://youtu.be/osNAlGM8k7k
👍1
En este repositorio podrán encontrar #guias de ayuda para poder realizar una instalación del sistema personalizada o crear un #contenedor para poder usar programas compilados con la librería C glibc en un sistema con musl.
Asimismo, podrán encontrar algunas #plantillas personalizadas para poder construir binarios estáticos.
En lo posible se procurará tener en español el contenido que se vaya agregando.
https://git.disroot.org/tuxliban/tutoriales_void/src/branch/master/README.md
👍1
#wifi #internet #wpa #supplicant

Para configurar una conexión inalámbrica con wpa_supplicant proceder del siguiente modo:

Identificar interfaz:
$ ip link

A continuación, encontrar el ssid (nombre) de las redes inalámbricas disponibles. Si conoce el nombre de la red, omitir este paso:
# iw dev INTERFAZ scan | grep -i ssid

Copiar la configuración predeterminada de wpa_supplicant y renombrarla con el nombre de nuestra interfaz (esto puede ser opcional):
# cp /etc/wpa_supplicant/wpa_supplicant.conf /etc/wpa_supplicant/wpa_supplicant-INTERFAZ.conf

Crear la configuración inalámbrica
$ wpa_passphrase ssid password | sudo tee -a /etc/wpa_supplicant/wpa_supplicant-INTERFAZ.conf

Activar el servicio de wpa_supplicant y de dhcpcd (de ser necesario, instálelo):
# ln -s /etc/sv/{dhcpcd,wpa_supplicant} /var/service/

Establecer conexión:
# wpa_supplicant -B -D wext -i INTERFAZ -c /etc/wpa_supplicant/wpa_supplicant-INTERFAZ.conf
👍4🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
#wifi #internet #wpa #supplicant
Ejemplo de lo anteriormente descrito
👍2
Para quienes también suelen usar salas en matrix, se pueden unir al siguiente grupo 👍
#voidlinux-es:matrix.org
#Digital #Signature #ca-certificates
Recientemente a partir del 30 de septiembre del 2021 algunos tuvieron problemas para actualizar el sistema y otros más también tuvieron problemas al intentar realizar una instalación nueva debido a la caducidad del certificado Let's Encrypt. La solución más rápida y sencilla es escribir lo siguiente en una terminal con el fin de actualizar los certificados de seguridad:

SSL_NO_VERIFY_PEER=true xbps-install -Su

Esta es una solución temporal en la que se omite la verificación del certificado únicamente para la ejecución en curso, por lo que no se recomienda dejarla como permanente