Por lo que he visto en el foro la mayoría utiliza distros arch-based o Debian-based, y solo ha habido dos posts sobre Void, por lo que me surgió la idea de comentar generalidades sobre Void Linux y su uso día a día. Yo llevo usándolo tres años como mi SO principal, trataré de compartir lo poco que sé con el uso y como hacer ciertas cosas.
Para esto estoy tomando por sentado el uso de void-installer por network, que es el mismo resultado que la instalación manual de void, el meta-package base-system. (En la instalación manual es posible usar el meta-package base-minimal pero no es recomendable, ese está pensado para entornos chroot, no para un sistema completo)
1- Alternativas livianas al software base
No es común buscar alternativas a sudo, NetworkManager, y demás. Normalmente xbps no deja borrarlos, pues son una dependencia de base-system, pero existe una forma de poder hacer esto sin perjuicio al sistema, un archivo .conf para xbps. Estos pueden ir en /etc/xbps.d/ o /usr/share/xbps.d. Para ignorar el paquete sudo e instalar doas es tan simple como hacer
sudo touch /usr/share/xbps.d/10-ignore.conf (el nombre puede ser distinto, pero hasta donde sé debe comenzar con 00- o 10-)
sudo echo “ignorepkg=sudo” >> /usr/share/xbps.d/10-ignore.conf
sudo xbps-install opendoas && sudo xbps-remove -Rf sudo
Obviamente hay que crear manualmente el /etc/doas.conf para tener privilegios, la sintaxis de doas es muy sencilla, en mi conf lo tengo así
permit keepenv persist $USER as root
Para un servidor no es recomendable usar doas, sudo es más completo para tener control sobre otros usuarios. ignorepkg=[Paquete] también sirve para eliminar dependencias indeseadas, por ejemplo blobs para el kernel de hardware no usado, como lo son drivers
para amd, nvidia o intel. En mi caso mi hardware es intel, por lo que mediante ignorepkg puedo eliminar cualquier rastro de drivers superfluos.
Algo que yo uso en mi sistema, para mostrar lo que se puede hacer con esto, es remplazar NetworkManager por iwd+dhcpcd+wireguard+bluez+bluetuith para tener algo más modular en conexiones.
2- XBPS
XBPS es el package manager de Void, es increíblemente rápido y útil. Son varios programas que juntos velan por el sistema. Xbps-pkgdb nos permite ver la base de datos de nuestros paquetes y ver cualquier error en la configuración e instalación de los mismos. xbps-reconfigure permite arreglar errores en los paquetes, volviéndolos a configurar como recién instalados, esto es útil por si rompemos el sistema (hablo por experiencia de primera mano). XBPS tiene muchos otros programas, por lo que hablar de todos sería extenderse mucho. Lo mejor es leer las manpages o el repositorio git.
Los repos de Void ofrecen xtools, que son básicamente “alias” para XBPS, para que sea más facil de usar, no son realmente alias sino scripts, pero no cambian nada la funcionalidad. xi por ejemplo es lo mismo que usar xbps-install -S, actualiza la información de los repos.
3- xbps-src
xbps-src es un script aparte para compilar software y empaquetarlo para que xbps lo maneje. La instalación es clonando el repo de git y usando el bootstrap del script para generar una mini chroot. El repo clonado guarda miles de plantillas para que xbps-src sepa de donde sacar el código fuente, es posible crear plantillas propias de software que no es ofrecido por los mantenedores, por ejemplo Hyperland o Brave. La verdad no lo he tocado mucho por lo que no puedo comentar más a profundidad, es similar eso sí, a los ports de OpenBSD y a los abuilds de Alpine Linux.
4- Runit
Void usa runit como init system, la verdad yo nunca he tenido problemas que no hayan sido culpa mía (Una vez borré los servicios sin querer), su uso es muy sencillo pues el equipo de Void ya ofrece los scripts de los servicios, no hay que escribirlos manualmente. Se maneja por symlinks de /etc/sv/ a /var/service/
5- Demás
Por lo demás es muy parecida a las otras distros, los paquetes no tienen nada de especial. LaTeX es ofrecido en texlive, libreoffice es libreoffice. En la versión glibc Steam está en los repos non-free. Sí, Void separa sus repos normales del non-free por si hay algún purista de la FSF. Yo uso la versión musl en una T480 y no he tenido problemas, eso sí, como es musl no tengo acceso a contenido DRM, appimages y demás software pre-compilado, pero en la versión glibc funcionan perfectos.
Ejemplo de instalación de dwm en un sistema base recién instalado
sudo xbps-install xorg-server base-devel libX11-devel libXft-devel libXinerama-devel freetype-devel fontconfig-devel git make
clonar el repo dwm de su elección, si se utilizan librerías extras pueden ser buscadas en el repo con xbps-query -Rs o con xrs si se tiene xtools instalado.
compilar dwm y otro software de suckless si se usa, dígase st, slock, etc.
Y por ultimo configurar el .xinitrc.
Esto es demasiado general y no entra en muchos detalles, si alguien tiene una duda, puedo intentar responderla desde lo que he aprendido usándolo pero cualquier explicación técnica profunda me supera.