Fedora verabschiedet sich endgültig von System V

Wie Stephen Gallagher auf der Entwickler-Liste von Fedora berichtet hat, hat das FESCo in seiner Sitzung am 14. Oktober beschlossen, die Migration von System V zu Systemd mit Fedora 24 abzuschließen.

Dies bedeutet, das mit der für den 2. Februar 2016 geplanten Abspaltung des Fedora 24-Entwicklungszweigs von Rawhide alle Pakete, die noch System V Init-Scripte anstatt SystemD Units verwenden, unverzüglich aus Fedora entfernt werden, sofern die jeweiligen Paketbetreuer nicht bis spätestens zum 12. Januar 2016 beim FESCo um eine Ausnahme gebeten haben. Über diese Ausnahmen soll dann fallweise entschieden werden.

dnf soll fedup und upgrade.img beerben

Auf der Fedora-Entwicklerliste wurde gestern ein Änderungsvorschlag für Fedora 23 vorgestellt, der dafür sorgen soll, das zukünftig nicht mehr fedup und upgrade.img, sondern einzig Fedoras neuer Paketmanager dnf Systemupgrades durchführen soll.

Bislang werden für Systemupgrades die separaten Tool fedup bzw. upgrade.img verwendet, welche jedoch unabhängig vom jeweiligen Paketmanager des Systems arbeiten. Hinzu kommt, das zumindest letzteres auch teilweise auf undokumentierte und deshalb nicht unterstützte Funktionen von systemd zugegriffen hat, was beim Versuch, fedup durch dnf zu ersetzen immer wieder zu Problemen geführt hat.

dnf soll hingegen auf den, von dem systemd-Entwicklern empfohlenen, Offline-Update-Modus von systemd zurückgreifen und die Verwendung von upgrade.img überflüssig machen.

Datum und Uhrzeit mit timesyncd aktuell halten

Bitte beachtet auch die Anmerkungen zu den HowTos!

Bereits vor einiger Zeit haben wir hier beschrieben, wie man sein Fedora auf die systemd Komponenten networkd und timesyncd umstellt.

Um timesyncd für die Synchronisation von Datum und Uhrzeit zu nutzen, muss zuerst timesyncd mitgeteilt werden, welche Zeitserver es verwenden soll. Dazu müssen folgende Zeilen in /etc/systemd/timesyncd.conf eingefügt werden:

NTP=0.fedora.pool.ntp.org 1.fedora.pool.ntp.org 2.fedora.pool.ntp.org 3.fedora.pool.ntp.org
FallbackNTP=0.pool.ntp.org 1.pool.ntp.org 0.fr.pool.ntp.org

Im nächsten Schritt muss nun noch die Synchronisation via ntp aktiviert werden

su -c'timedatectl set-ntp true'

Um Probleme beim Stellen der Systemzeit zu vermeiden, sollte man timesyncd zusätzlich noch anweisen, die Systemuhr auch in UTC zu stellen

su -c'timedatectl set-local-rtc 0'

Nachdem die obrigen Schritte ausgeführt wurden, kümmert sich fortan Systemd auch um die korrekte Uhrzeit und das korrekte Daum des Systems.

Fedora 21: Bootvorgang beschleunigen (ohne cron)

Bitte beachtet auch die Anmerkungen zu den HowTos!

Wer nicht möchte, das mandb bei jedem Start des Systems ausgeführt wird, aber auch keinen Cron-Job dafür anlegen möchte, der kopiert einfach die Datei /usr/lib/systemd/system/mandb.timer mittels

su -c'cp /usr/lib/systemd/system/mandb.timer /etc/systemd/system/mandb.timer'

nach /etc/systemd/system/mandb.timer, um zu verhindern, das die Änderungen beim nächsten Update wieder überschrieben werden.

Anschließend wird einfach die Zeile

OnBootSec=15min

in den Abschnitt [Timer] der Datei /etc/systemd/system/mandb.timer eingefügt, um dafür zu sorgen, das mandb erst 15 Minuten nach dem Ende des Bootvorgangs ausgeführt wird.

Wer zusätzlich darauf verzichten kann, das dieser Timer täglich ausgeführt wird, kann zusätzlich noch die Zeile

OnCalendar=daily

in

OnCalendar=weekly

ändern und damit eine wöchentliche Ausführung von mandb erzwingen.

Danke an @donkrawallo für den Hinweis.

Umstieg auf networkd und timesyncd

Bitte beachtet auch die Anmerkungen zu den HowTos!

Seit Version 210 (networkd) bzw. 213 (timesyncd) beherrscht systemd die Konfiguration von Netzwerkinterfaces sowie die Synchronisation der Systemzeit mittels ntp. Da diese beiden Dienste jedoch anscheinend nicht automatisch aktiviert werden, muss man ein wenig von Hand nachhelfen:

Zuerst sollte man jedoch mittels

rpm -qa systemd\*

sicherstellen, das man systemd in der entsprechenden Version oder neuer verwendet.

Sofern man seine Netzwerkinterfaces per DHCP konfiguriert haben möchte, muss man als Vorbereitung zuerst eine ensprechende network-Unit unter /etc/systemd/network anlegen. Die Unit sollte als Dateinamen den Namen des Interfaces sowie .network als Dateiendung verwenden und folgenden Inhalt haben:

[Match]
Name=$Interface

[Network]
DHCP=yes

Der Platzhalter $Interface ist dabei durch den Namen des jeweiligen Interfaces zu ersetzen.

Anschließend kann man die alten Services (main und ntpd) deaktivieren und durch die systemd Pendants ersetzen:

su -c'systemctl disable main'
su -c'systemctl disable ntpd'
su -c'systemctl enable systemd-networkd'
su -c'systemctl enable systemd-timesyncd'

Wer bereits während des Bootens ein aktives Netzwerkinterface (z.B. für NFS oder Samba) benötigt, kann zusätzlich noch systemd-networkd-wait-online aktivieren:

su -c'systemctl enable systemd-networkd-wait-online'

Ab dem nächsten (Neu)Start des Systems übernimmt systemd die Konfiguration der Netzwerkinterfaces sowie die Synchronisation der Systemzeit.

Basierend auf einem Betrag von Stefan Betz

CUPS bekommt journald-Support

Tim Waugh hat heute auf seinem Blog bekannt gegeben, das er das CUPS-Paket in RawHide um einen Patch ergänzt hat, der CUPS um Support für journald, den Journaldaemon von Systemd, erweitert. Somit wird CUPS ab Version cups-1.7.0-1.fc21 unter Fedora auch journald zur Protokollierung unterstützen.

Um Journald zu nutzen, muss lediglich in der Datei /etc/cups/cups-files.conf ErrorLog auf journal gesetzt werden. Wer mag, kann auch AccessLog und PageLog entsprechend ändern.

 

Systemd: nicht gestartete Dienste ausfindig machen

In Pre-Systemd Zeiten gab es die boot.log, die man mehr oder weniger mühsam nach nicht gestarteten Diensten durchsuchen musste.

Mit Systemd genügt dazu folgender Befehl, der in der Shell ausgeführt werden muss:

su -c'systemctl list-units --failed'

Systemd liefert anschließend eine übersichtliche Liste aller Dienste, die nicht gestartet werden konnten. Wer weitere Details, warum der Dienst nicht gestartet werden konnte, erfahren möchte, kann folgendes Kommando ausführen:

su -c'systemctl status name.service'

Wobei name durch den Namen des Dienstes ersetzt werden muss.

Nichts desto trotz übernehmen wir keine Verantwortung, falls das eigene System durch diese Anleitung unbrauchbar gemacht werden sollte. Das Befolgen dieser Anleitung geschieht somit auf eigene Gefahr!