Migrar desde Milky Way v0.1 a v0.2

Como Hyperbola ha anunciado el fin del soporte a systemd, se requiere la migración a OpenRC si viene de Milky Way v0.1.

Si usted es un usuario de una distribución basada en Arch con systemd por defecto, como Parabola o Arch, también se requiere la migración a OpenRC.

¿Qué es OpenRC?

OpenRC es un sistema de inicio mantenido por los desarrolladores de Gentoo, que funciona con el programa de inicio provisto por el sistema, normalmente SysVinit.

Advertencia

Por favor lea la advertencia completa

Para la sesión actual cuando instale OpenRC, el comando poweroff probablemente no funcionará. Después de un reinicio completo, el comando de apagado funciona bien otra vez. Cierre sus programas, sincronice, y apague su computadora manualmente.

netctl funciona solo con systemd, por lo tanto ya no funcionará desde Milky Way v0.2, ya que OpenRC es el principal sistema de inicio de Hyperbola. En esta página, asumiremos que ya tiene una alternativa, en este caso, esta netifrc o networkmanager.

Grupos

Antes de que Arch migrara a systemd, los usuarios tenían que agregarse manualmente a algunos grupos para poder acceder a los dispositivos correspondientes. Lea más acerca de eso aquí.

Asegúrese de que su usuario esté en el grupo audio, de lo contrario no tendrá sonido:

# gpasswd -a <your-user> audio

En el caso de algunos entornos gráficos, como KDE, deberá editar /etc/pulse/client.conf y eliminar la línea autospawn = no, y debería verse algo como esto:

...
; default-sink =
; default-source =
; default-server =
; default-dbus-server =

; autospawn = yes
; daemon-binary = /usr/bin/pulseaudio
; extra-arguments = --log-target=syslog

; cookie-file =

; enable-shm = yes
; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB

; auto-connect-localhost = no
; auto-connect-display = no
Esto es solo en el caso de que uses PulseAudio. Para obtener más información, consulte este tema del foro de Manjaro.

Lo mismo para el video, tus juegos podrían estar retrasados de lo contrario:

# gpasswd -a <your-user> video

Para la creación de redes:

# gpasswd -a <your-user> network

Para webcam:

# gpasswd -a <your-user> optical

También para el almacenamiento:

# gpasswd -a <your-user> storage
# gpasswd -a <your-user> disk

Y para CUPS:

# gpasswd -a <your-user> sys
Primero pruebe estas funciones antes de agregar a su usuario a estos grupos, por ejemplo, en algunos casos puede que no sea necesario agregar al usuario al grupo optical.

Migración

Dado que OpenRC está incluido por defecto y systemd está en la lista negra por your-freedom, simplemente actualice su máquina de la forma más simple:

# pacman -Syyuu base

Al migrar, uno puede recibir mensajes como:

run 'rc-update add cronie default'
run 'rc-update add elogind default'

Al ejecutar estos comandos, se agregan los servicios a los niveles de ejecución especificados. Por ejemplo:

# rc-update add elogind default

El servicio elogind se agregaría al nivel de ejecución predeterminado y se iniciaría automáticamente en el arranque.

elogind (reemplazo logind de systemd) y cronie (para cron) son algunos servicios comunes que se pueden habilitar.

Actualmente, NetworkManager y cualquier administrador de pantalla como GDM o LightDM ejecuta el servicio elogind en Hyperbola automáticamente, sin embargo, si usará el programa xinit para iniciar el Servidor de Sistema de Ventanas X o Weston/Sway para comenzar Wayland y usa netifrc en lugar de NetworkManager, necesita agregar el servicio elogind a un nivel de ejecución (por ejemplo, default) para que se inicie en el arranque automáticamente.

También debe instalar polkit para obtener suficientes privilegios de escritorio para operaciones como apagar o montar un dispositivo USB:

# pacman -S polkit

Configuración

Servicios a menudo requeridos

Una vez que migre a OpenRC, es posible que necesite agregar lvm2 etc.

Existe el procedimiento para lvm2:

# rc-update add lvm boot

Para cryptsetup:

# rc-update add dmcrypt boot

Para alsa-utils:

# rc-update add alsasound default

Para cronie:

# rc-update add cronie default

En cada paquete que contenga un servicio OpenRC, tendrá este mensaje:

      ==> rc 'rc-update add ... default'
Asegúrese de qué servicios estaba usando en systemd para volver a habilitarlos en OpenRC:
$ ls -ls /etc/systemd/system/multi-user.target.wants/

A veces, hay archivos de destino como remote-fs.target que no son útiles en OpenRC.

Nombre del host (Hostname)

OpenRC tiene su configuración en /etc/conf.d/, para tener su nombre de host, edite /etc/conf.d/hostname:

# nano -w /etc/conf.d/hostname

Y reemplace localhost con el nombre que desee:

# Set to the hostname of this machine
hostname="localhost"

Configuraciones de NetworkManager

Debe habilitar el software en el arranque:

# rc-update add NetworkManager default

Para no cambiar el nombre del host de la computadora cuando se está conectando a Internet (proporcionado por dhcp), descomente la parte [keyfile] en el archivo /etc/NetworkManager/NetworkManager.conf de la siguiente manera:

# Static hostname
[keyfile]
hostname=**Votre hostname**

Para que NetworkManager funcione correctamente en OpenRC, asegúrese de que en /etc/hostname tenga el mismo host local que en /etc/conf.d/hostname. Opcionalmente, puede eliminar de forma segura /etc/hostname

Mapa de teclado (Keymap)

Al igual que el nombre del host, debe configurar el keymap en el archivo /etc/conf.d/keymaps:

keymap="us"

Si tiene un uso avanzado de su keymap, puede ver las otras funcionalidades, documentadas en los comentarios. Puede encontrar todos los keymaps disponibles en /usr/share/kbd/keymaps. Luego ejecute:

# rc-service keymaps restart
Esto solo se aplica a la CLI, si está utilizando X11, esto no afectará su entorno gráfico.

Gestor de inicio de sesión

A diferencia de otras distribuciones compatibles con OpenRC, el gestor de pantalla (siglas en inglés DM) se inicia directamente.

Por ejemplo, con lightdm, solo necesita habilitar el servicio.

# rc-update add lightdm default

Adaptación entre systemctl y rc-update

Agregar o eliminar un servicio

Puedes agregar un servicio de esta manera:

# rc-update add <service> <runlevel>

Y eliminarlo de la siguiente manera:

# rc-update del <service> <runlevel>

Servicios actualmente en ejecución

Para tener un resumen de todos los servicios en ejecución, detenidos, etc., puede ejecutar este comando:

# rc-status --all -v

Stop/Start/Restart un servicio

Para reiniciar un servicio, debe usar rc-service:

# rc-service <service> restart

Solución de problemas

Consistent network device naming is not disabled

Para deshabilitar nombres de dispositivos de red consistentes, deshabilite la asignación de nombres fijos, de modo que los nombres de kernel impredecibles se usen nuevamente, enmascarando el archivo de reglas de udev para la política predeterminada. Este “enmascaramiento” se puede realizar haciendo un enlace simbólico a /dev/null. Como root, ejecute un comando de la siguiente manera:

# ln -s /dev/null /etc/udev/rules.d/80-net-name-slot.rules

Sysctl.conf is missing

Puede encontrar un problema si falta /etc/sysctl.conf. Para arreglar esto, necesitas crear el archivo:

# touch /etc/sysctl.conf

/usr/lib/rc/cache doesn't exist

Si tiene este error cuando apaga la computadora:

WARNING: /usr/lib/rc/cache is not writable!

La solución es crear la carpeta:

# mkdir /usr/lib/rc/cache

Swap isn't enabled

Systemd solía montar el swap automáticamente, debe agregarlo manualmente en /etc/fstab de la siguiente manera:

# /dev/sda2
UUID=0c3e9434-bc5c-461c-a5e4-4e9fe5f9a149	swap	swap	sw	0	0

tmpfs isn't present

Al igual que el swap, systemd monta automáticamente los tmpfs. Agréguelo manualmente en /etc/fstab:

tmpfs		/tmp		tmpfs   nodev,nosuid          	0  	0

El sistema no se apaga correctamente

Con OpenRC 0.28, SysVinit se reemplaza por openrc-init, shutdown se reemplaza por openrc-shutdown. Si usa startx para iniciar su escritorio, también necesita modificar ~/.xinitrc para xfce4, reemplace exec ck-launch-session startxfce4 con startxfce4.

Créditos

Este artículo de wiki se basa en ParabolaWiki.