Zurück zu netmute.org
OpenRC in /gentoo um 05:28 Uhr am 08.04.2008
Seit kurzem gibt es das Init-System OpenRC in Gentoos Portage. Ich benutze es nun seit einigen Tagen und bin sehr zufrieden damit. Die Vorteile? Es ist schnell und es ersetzt das vorhandene Init-System nicht, sondern baut darauf auf. Man kann also seine vorhandenen Initskripte weiterverwenden.
Ein netter Nebeneffekt der sich durch die Benutzung von Baselayout2 ergibt ist auch, dass man die Dash als /bin/sh benutzen kann. In Baselayout2 sind nämlich alle Bashismen aus wichtigen Skripten entfernt.

Es ist im Portage maskiert, um es auszutesten müssen folgende Änderungen vorgenommen werden:
(Bitte, bitte, bitte-mit-sahne-obendrauf, probiert OpenRC nicht auf einem Computer aus der hinterher noch funktionieren muss! OpenRC ist experimentelle Software!)

In /etc/portage/package.unmask:

=sys-apps/baselayout-2.0.0
>=sys-apps/openrc-0.2.1-r1

In /etc/portage/package.keywords:

=sys-apps/baselayout-2.0.0 ~x86
=sys-fs/udev-119 ~x86
>=sys-apps/openrc-0.2.1-r1 ~x86

Zur Zeit tut sich bei OpenRC einiges, neue Versionen erscheinen fast täglich. Als ich diesen Beitrag geschrieben habe war Version 0.2.1-r1 aktuell.

Eine udev Version grösser als 118-r2 ist für OpenRC zwingend notwendig, da sonst einige Initskripte nicht funktionieren.

Falls ihr beim Testen Probleme mit dem crypto-loop Initskript feststellt, hilft es sys-apps/util-linux neu zu emergen, da dies inzwischen aktualisiert wurde.

Es kann vorkommen dass nach dem Booten udev nicht funktioniert. Das liegt daran das die Überprüfung der Kernelversion in einem der udev Startskripte von OpenRC noch nicht korrekt interpretiert wird. Da wir uns sicher sind, dass wir einen aktuellen Kernel verwenden, können wir die entsprechenden Zeilen einfach auskommentieren:

In /lib/rcscripts/addons/udev-start.sh:

check_kernel()
{
    #if [ $(get_KV) -le $(KV_to_int '2.6.14') ]; then
    #   eerror "Your kernel is too old to work with this version of udev."
    #   eerror "Current udev only supports Linux kernel 2.6.15 and newer."
    #   return 1
    #fi
    return 0
}
Viel Spass beim Spielen :-)