Anders meint nicht unbedingt besser: hostnamectl

Die Graubärte unter Euch wissen sicher, daß es /etc/hostname gibt. In der Datei steht der Rechnername drin… und dann kam systemd 🙁  Es folgt ein kleiner Rant, wie Verbesserungen auch schlecht sein können.

Anders meint nicht unbedingt besser: hostnamectl

Klassisch trägt man den Rechnernamen in die Datei /etc/hostname ein und die Sache hat sich. Jetzt gibt es aber so Spezialisten, die einen Rechner gerne „Pötterings Spielwiese“ nennen wollen, aber so nicht können. Also dachten sie sich ein 3 Ebenen System aus, bei dem es einen PRETTYNAME mit allen möglichen lustigen Zeichen gibt, dann den STATISCHEN NAMEN mit einem Domainnamen drin und den FALLBACKNAME aus dem Netzwerkstack gibt.

(Das Pöttering im Beispiel steht, hat er übrigens dem MAN PAGE Eintrag zu verdanken 😉 )

Wie wird der Hostname jetzt für die Bash-Shell gesetzt?

In Zeile 82 der /etc/profile  steht :

HOSTNAME=$(/usr/bin/hostnamectl --transient 2>/dev/null) || \
HOSTNAME=$(/usr/bin/hostname 2>/dev/null) || \
HOSTNAME=$(/usr/bin/uname -n)

Der Befehl „/usr/bin/hostnamectl –transient“ zieht sich damit den „flüchtigen“ Namen aus dem Netzwerkstack, dann wird /etc/hostname gefragt, dann als LAST RESORT was auch immer uname so von sich gibt, was auch nichts anderes als der Inhalt von /etc/hostname ist.

Euch ist aufgefallen, daß da „/usr/bin/hostnamectl –transient 2>/dev/null“ steht, also die Fehlerausgaben ins Nirvana umgeleitet werden? Es kann also Fehlermeldungen geben. Wenn die Auftreten ist die STDOUT Ausgabe leer, was dann den Fallback auf „/usr/bin/hostname“ und somit /etc/hostname auslöst.

Wieso kommt es beim Ermitteln des Hostnamen zu einem Fehler?

Weil es dringend eines DBUS Dienstes bedurfte, der umständlich gefragt wird, wie denn der Name aussieht.. etwas, was das hostnamectl Programm auch selbst hätte machen können. ES IST UNSINNIG JOBS via client-server-arch zu erledigen, die mit einem einfachen FOPEN() zu erledigt wären.

Wenn man das schon macht, dann bitte richtig, nämlich erst einmal checken, ob so eine Abfrage überhaupt funktionieren könnte, also ob der Server überhaupt da ist. Jetzt ist das DBUS System keine Direktverbindung zwischen dem Dienst und dem Abfragenden, sondern hat die Rolle des Vermittlers. d.b. hostnamectl schickt die Dbus Anfrage einfach los und wartet auf Antwort.

Was passiert, wenn die nicht kommt?

Das hier:

# time /usr/bin/hostnamectl --transient
Could not get property: Connection timed out

real	0m25.047s
user	0m0.007s
sys	0m0.013s

Und wieso kommt da keine Antwort?

$ ps auxf|grep -c hostnamed
0

Tja, der hostnamed hatte sich aus unbekannten Gründen verabschiedet und konnte nicht mehr antworten.

D.b. das ganze tolle System hängt auf Gedeih und Gedärb davon ab, daß der hostnamed auch läuft. Ein Dienst der nur den Job hat, aus irgendeiner Datei auf Anfrage einen Wert auszulesen. Was das aufrufende Programm auch selbst erledigen könnte, wenn es die Datei einlesen dürfte. Der Hostname ist ja nun wahrlich kein Geheimnis.

Und welche praktischen Auswirkungen hat der Fehler?

/etc/profile wird ja von jeder Bash ausgeführt, die eine interaktive Session bedienen soll, also auch den SSH Zugang zu einem Server. Jetzt dürft Ihr ganz ganz kurz raten, was es bedeutet, wenn der hostnamed auf einem Server nicht mehr antwortet. Genau, JEDER der einloggen will, jedes Cronscript das Bash startet hängt für 25 Sekunden in der Luft. Nur weil jemand einen PRETTYNAME haben wollte und so  blöd war das über DBUS abzuwickeln, statt die richtigen Dateirechte zusetzen!

Das Team um Systemd und ich werden wohl nie Freunde werden.

 

Podman Update verhindert Start alter Container

Ein Update von Podman verhindert das Starten von alten Containern. Das betrifft auch Toolbox.

Podman Update verhindert Start alter Container

Die Fedora Toolbox benutzt Podman um Container zu erstellen und zu starten. Das geht aber mit Podman 4.6.x nicht mehr für jeden Container, da dazu nicht mehr die nötigen Limits erlaubt werden, die noch mit 4.5.x dem Container zugewiesen wurden. Eine Datenmigration ist das einzige Mittel, alte Container wieder zu starten.

Die meist angesprochene Endlösung war das Löschen und Neuerstellen der betroffenen Container, was aber mit einem Datenverlust einhergehen würden, so man den Daten in dem Container drin hat. Einige Benutzer merkten an, daß Toolbox gar nicht für dauerhafte Container ausgelegt wäre, und man sich nicht wundern müßte, wenn Daten verloren gingen, da gegen den „Sinn“ von Toolbox gehandelt wurde.

Das ist natürlich per se kein Argument, weil Toolbox ja nur das Kontrollwerkzeug ist. Was man mit dem Container dann anstellt, ist ja jedem selbst überlassen 😉

Aber ist das Überhaupt ein Problem? Wir fragen Prof. Dr. Besser-Weiß von der Uni Kassel-Schwarzensee.

Das Interview

„Herr Professor Besser-Weiß, ist das Update von Podman überhaupt ein Problem?“
„Nein.“
„Herr Professor, wir danken für das Gespräch.“

Die Migration

Im Podman Issue[0] gibt es dafür folgende Migrationslösung:

$ podman export $CONTAINER_NAME -o output.tar
$ podman import output.tar $NEW_IMAGE_NAME
$ podman container rm $CONTAINER_NAME
$ toolbox create --image localhost/$NEW_IMAGE_NAME -i $CONTAINER_NAME

Danach kann der Container wieder gestartet werden.

Wer tatsächlich keine Daten in dem Container hat, was bei meinen Experimenten mit Cheese auf dem Surface Tablet z.B. der Fall war, weil Cheese seine  Daten im Home speichert, hat ohnehin kaum Hemmung den Container zu löschen und einfach neu anzulegen.

Da Fedora das Podman Update bereits ins Stable getan hat, solltet Ihr Euch bei Zeiten, also jetzt, darum kümmern, bevor Ihr das Programm im Container nochmal braucht.

[0] Quelle: https://github.com/containers/podman/issues/19634

Red Hat Politikänderungen wirken auch auf Fedora nach

Red Hat hatte ja einige Änderungen am Engagement für Desktopelemente in Aussicht gestellt, die jetzt langsam durchschlagen.

Red Hat Politikänderungen wirken auch auf Fedora nach

Bastien Nocera schreibt in seinem Blog, daß er von Red Hat in ein anderes Team versetzt wurde und die ohnehin schon geringe Arbeit an „fprint, fprintd, gnome, gvfs, iio-sensor-proxy, kernel, libfprint, low-memory-monitor, power-profiles-daemon, rhythmbox, sound-juicer, switcheroo-control, thumbnailer, totem“ einstellen mußte. Das führte zum Verwaisung der Pakete bei Fedora.

Langzeit Maintainer Michael Catanzaro, der auch bei Red Hat angestellt ist, schrieb dazu am Montag auf der Fedora Dev ML:

„Red Hat has instructed us to stop work on several core desktop components. All of these components need new maintainers now. The switcheroo-control repo has now been archived, and a future new maintainer will need to recreate the repo in a new location. It’s certainly not good news. :(„

Cinnamon & Nvidia Maintainer Leigh Scott nahm das zum Anlass um wenigsten einige der Pakete von der LinuxMint Gruppe übernehmen zu lassen. Dutzende andere Pakete warten aber noch auf einen neuen Maintainer.

Der ‚Umorientierung‘ bei Red Hat, der mutmaßlich von IBM inszeniert wurde, geht also weiter und wird sicherlich noch spürbare Ausmaße annehmen, weil Red Hats Engagement weitest gehend im  Stillen abgelaufen ist. Das wird sich sicherlich jetzt ändern.