Depuis quelque mois, j’ai migré mes PC de bureaux de Debian Sid à Archlinux, pour essayer autre chose (je m’ennuyai Sid marche trop bien).
C’était l’occasion de tester systemd. Je ne vais pas m’étendre sur ce qui me déplait dans systemd, libre à vous de l’utiliser mais si vous êtes ici c’est dans le but de changer de système de démarrage, alors allons y.
Ah juste avant de tout casser, j’ai effectué cette manipulation avec succès sur trois PC. Par contre j’ai un système minimaliste, je n’ai pas eu besoin de jouer avec polkit. Bien connaitre votre système est indispensable avant de vous lancer.
Openrc
Installation
L’installation d’openrc en elle même ne pose pas de soucis, il suffit d’installer — bien évidemment — openrc et également une version modifiée de sysvinit et les fichiers de services :
yaourt -S openrc-git openrc-sysvinit openrc-arch-services-git
note Il y a un conflit avec le fichier
/usr/bin/runscript
également présent dans le paquet minicom. Du coup j’utilise picocom.
Configuration
Commençons par activer les log et l’unicode (sans cette dernière option,
impossible de passer en bépo lors du démarrage). Pour cela, dans
/etc/openrc/rc.conf
modifiez les deux lignes suivantes :
rc_logger="YES"
unicode="YES"
Les modules noyau à charger lors du démarrage, avant présent dans le dossier
/etc/module-load.d
sont à renseigner dans le fichier
/etc/openrc/conf.d/modules
. Par exemple :
modules="loop nfs"
Il faut, bien évidemment, réactiver les services :
rc-update add alsa default
rc-update add dbus default
rc-update add udev default
Au premier redémarrage, j’ai eu la drôle de surprise de ne plus pouvoir utiliser le clavier ou la souris. Il faut simplement ajouter votre utilisateur aux groupes adéquates afin d’avoir les bons droits :
usermod -a -G video,input,audio sanpi
Par défaut, grub utilise toujours systemd comme système d’init. Il faut donc lui
préciser d’utiliser /usr/bin/init-openrc
. Dans le fichier /etc/default/grub
ajoutez :
GRUB_CMDLINE_LINUX_DEFAULT="quiet init=/usr/bin/init-openrc"
Puis regénérer la configuration de grub :
grub-mkconfig -o /boot/grub/grub.cfg
Vous pouvez maintenant redémarrer, prévoyez tous de même un système de secours sur clés usb, au cas où…
Nous venons de remplacer une partie de systemd, à savoir celle en charge de l’initialisation des services lors du démarrage. Il nous reste encore du travail avec la gestion du réseau, des log, du bus de communication inter-processus, de tâches récurentes et des périphériques.
Network
Openrc fourni newnet, nous avons juste à supprimer les paquets inutils :
pacman -Rsn netctl openresolv
Normalement le service dhcpcd est activé par défaut.
Syslog
Pour retrouver des logs, rien de très compliqué :
yaourt -S syslog-ng-nosystemd
rc-update add syslog-ng default
D-BUS
Idem pour dbus :
yaourt -S dbus-nosystemd
rc-update add dbus default
Cron
Je pense que vous avez compris maintenant :
yaourt -S cronie
rc-update add cronie default
Udev
Enfin, pour udev, c’est un peu plus long car il y a un souci de dépendances. Nous allons donc devoir recompiler deux paquets.
Commençons par lancer l’installation au travers de yaourt
afin qu’il installe
les dépendances nécessaires :
yaourt -S eudev eudev-systemdcompat
Il est inutile de lancer la compilation, nous allons le faire avec makepkg
:
git clone https://aur.archlinux.org/eudev.git
cd eudev
makepkg -d
mv perso.db.tar.gz eudev/eudev-3.1.2-4-x86_64.pkg.tar.xz ..
Pour le paquet eudev-systemdcompat
, il faut commencer par éditer le fichier
PKGBUILD afin de mettre à jour la version de systemd, puis on lance la
compilation :
git clone https://aur.archlinux.org/eudev-systemdcompat.git
cd eudev-systemdcompat
vi PKGBUILD
makepkg -d
mv eudev-systemdcompat/eudev-systemdcompat-224-1-x86_64.pkg.tar.xz ..
Ensuite, nous créons un dépôt local auquel on ajoute nos deux paquets :
cd ..
repo-add perso.db.tar.gz eudev-3.1.2-4-x86_64.pkg.tar.xz
repo-add perso.db.tar.gz eudev-systemdcompat-224-1-x86_64.pkg.tar.xz
Dans /etc/pacman.conf
, on ajoute notre nouveau dépôt :
[perso]
SigLevel=never
Server=file:///home/sanpi
Et on lance l’installation :
sudo pacman -Sy eudev eudev-systemdcompat
Avant de redémarrer, n’oubliez pas de modifier le fichier
/etc/openrc/init.d/udev
pour lancer la bonne commande, à savoir
/usr/bin/udevd
.
Conclusion
Après plusieurs mois d’utilisation, le seul souci que j’ai avec openrc vient des fichiers de services. Puisqu’ils ne sont pas fournit par archlinux, il faut les trouver ailleurs. Il en existe beaucoup dans aur, mais ils ne semblent plus maintenus (impossible de les installer pour une sombre histoire de somme de contrôle). Du coup, généralement je récupère la source (issue de gentoo) et je les modifie manuellement.