OpenRC und andere Schrott-Init Systeme

-----

Es ist mal lange ueberfaellig ein paar Worte über die Initsysteme aller grossen Linuxdistributionen zu verlieren. Ganz besonders die Openrc unter Gentoo ist sowas von dermassen beknackt, es fällt mir schwer da den Anfang zu finden, denn die Scheisse platzt dort aus allen Nähten und in der letzten Zeit hat sich da eine Menge Wut aufgestaut!

Man hat ~5k Zeilen Code in einem neu aufgesetzten Gentoo alleine unter /etc/init.d/ und wofür??

  • Damit das alles langsam wie scheisse ist!
  • Damit das System beim booten auf unerklaerliche Art und Weise stehenbleibt, wenn dem gewisse timestamps nicht passen. Das ist hirnverbrannt!
  • Damit bei fehlenden Netmounts nichtmal ein scheiss timeout vorgegeben wird, sondern OpenRC lieber für immer weiterprobiert, STRG+C funktioniert dann natürlich auch nicht! (Dazu später mehr)
  • Damit man ewig und drei Tage auf Sachen wie NTP-client wartet, weil die normal nicht parallel gestartet werden.
  • Damit schnelle Änderungen der Vergangenheit angehören
  • Damit alles out-of-the-box funktioniert, ohne das man da was dran ändern muss-Das ich nicht lache!!!!
  • Diese ganze Dependencies-scheisse ist in der Openrc sowas von kompliziert aufgebaut, um dort eben was zu ändern, sollte man Zeit mitbringen! Das ist selbst bei Debian besser!
    Zusätzlich ist das default so aufgebaut, dass OpenRC immernoch genauso wie alle anderen beschissenen seriellen Initsysteme arbeitet->Warten, warten, warten.

    Und ewig wird daran sinnlos herumgefingert und Sachen geändert, die einem die Init kaputt machen! Dieser Wechsel zur Openrc (Baselayout-1 zu Baselayout-2) ist bestimmt jedem Gentoobenutzer ein Begriff. (In der Theorie sah das so aus und so der Praxis)Es wurde ja ursprünglich auf Openrc gewechselt, da die SysVinit zu fett wurde. Das stimmt natürlich, aber gefühlt merkt man keinen Unterschied zu Openrc, das ist dieselbe Scheisse in einer anderen Farbe.

    Übrigens, sollte man lieber seine /etc/init.d/net.ethX anpassen! Seit neuesten darf net.eth0 anscheinend kein Symlink mehr auf net.lo sein, wie es seit Ewigkeiten gehandhabt wurde. Es muss jetzt eine Kopie von net.lo sein! Darauf zu kommen hat mich 2 Stunden gekostet! Achja, init.d/net.lo ist jetzt obsolete, demnächst heisst es nurnoch init.d/loopback. *stöhn*
    Openrc startete zwar das Netzwerkinterface korrekt, erkannte bei mir eth0 aber nicht mehr als „running“ an und Dienste wie Beispielsweise SSHD weigern sich dann dank dem zu starten! Bravo, pfiffige Idee!
    Was mich daran wütend machte ist die Tatsache, dass wir hier von einem Gentoo Stable reden… STABLE!!! Und da passieren solche Dinge!

    Da gab es vor einiger Zeit auch wieder einmal eine kleine Änderung, auf der höchstwahrscheinlich auch der Fehler aus dem letzten Absatz beruht.

    „In this version of OpenRC the loopback interface no longer satisfies the net virtual.“

    Ganz toller Einfall!! Okay, okay, die Grundidee ist prinzipiell nicht verkehrt. Wenn man z.B. kaputte nfsmounts hat, zerledert es nicht mehr den Bootvorgang, aber dafür werden sich demnächst wieder reihenweise Leute von ihren Servern aussperren.

    Die passende Problemlösung ist auch mehr oder minder grossartig:

    If you have services now which do not start because of this, they can be fixed by adding rc_need=“!net“ to the /etc/conf.d/ file.
    You should also file a bug against the service asking that need net be dropped from the dependencies.

    Zur Erinnerung, wir reden immernoch von einem stable. Und das Gentoo Handbuch empfielt folgendes zum anlegen der NICs

    # cd /etc/init.d
    # ln -s net.lo net.eth0

    Zurück zu diesem Dependenciesmassaker, mein neu aufgesetztes System nörgelte beim Starten von net.eth0 (Jetzt als Kopie) immer rum, dass es einen Dienst namens „Firewalld“ benötigt. (Startet aber trotzdem, was auch immer das soll)
    Was ist Firewalld? Kennt fast keiner, das ist ein mehr oder weniger überflüssiger Firewallconfigurator aus dem Fedoraprojekt, siehe folgende Beschreibung aus Portage: „A firewall daemon with D-BUS interface providing a dynamic firewall“
    OH GOTT, DBUS!! Dozy Bloated Useless Software
    Da ich mir die scheisse nicht länger beim Bootvorgang ansehen will, wollte ich den Mist aus den Initscripten entfernen.
    Leichter gesagt, als getan,
    raspi ~ # grep -ri firewalld /etc/
    raspi ~ #

    Es ist echt ein Witz, ich habe auch keinen blassen schlimmer, wo diese Dreckssoftware dieses „Need Firewalld“ hernimmt!

    Noch eine Änderung gefällig?
    Man benötigt jetzt seit einigen Monaten das Useflag „netifrc“, ohne dieses Useflag, welches auch ein gleichnamiges Paket installiert, ist diese tolle OpenRC nicht imstande eine Netzwerkverbindung aufzubauen und oh, es wird (wurde?) nebenbei die Netzwerkconfig gelöscht.

    Da steigt kein Mensch mehr durch! Schonmal probiert einem Gentoo, das seine Wifiverbindung über Openrc startet auf einem sauberen wege davon abzuhalten zusätzlich eth0 zu starten? Abendfüllend!!
    Openrc ist fett, lahm, instabil und schwierig zu maintainen! Keep it simple, stupid!

    Ist mir nun aber auch egal geworden, denn diese SchrottRC wird nach und nach von allen Rechner fliegen und durch die Minit ersetzt werden. Die funktioniert seit vielen Jahren auf meinen Mediarechnern, mit ein und derselben schlimm zusammengehackten Konfiguration, die ich nach dem erstellen nie wieder anfassen musste ohne Probleme.

    Ich hatte vor einiger Zeit ja immer behauptet, dass Gentoo am wenigsten beschissen ist. Ist es vielleicht sogar immernoch, aber ganz sicher bin ich mir mittlerweile nicht mehr.

    Frohe Weihnachten.

    Similar entry's:

    Change USE: +systemd |NFS: Nuker Filesystem (UPDATE: Schwachsinn) |Erkenntnis der Woche (16) |Speedlink Keyboardtreiberkacke |Vermaledeit ist… (4)

    2 Responses to “OpenRC und andere Schrott-Init Systeme”

    1. business funding Says:

      business funding

      AngryBlog

    2. David Hasselhoff Says:

      systemd :p

    Leave a Reply

    XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>