Flatpak, rpm-ostree und Container-basiertes DNF Paketverwaltung in Fedora Silverblue Toolbox

Autor Stephan Augsten |

Zeitgleich zu Fedora 30 hat das Team Silverblue eine finale Variante der Workstation vorgestellt. Der DNF-Paketmanager weicht rpm-ostree und Flatpak, dank Toolbox-Container lässt er sich aber weiter nutzen. Wir zeigen Schritt für Schritt die Nutzung der Toolbox und die beiden anderen Wege.

Anbieter zum Thema

Flatpak ist der primäre Paketmanager von Fedora Silverblue, der distributionsübergreifende App-Marktplatz Flathub.org die zentrale Anlaufstelle.
Flatpak ist der primäre Paketmanager von Fedora Silverblue, der distributionsübergreifende App-Marktplatz Flathub.org die zentrale Anlaufstelle.
(Bild: Augsten / Fedora Silverblue)

Fedora Silverblue ist eine weiterentwickelte Variante der Atomic Workstation, die sich insbesondere an Software-Entwickler richtet. Der Fokus lag dabei auf einem unveränderlichen Betriebssystemkern, um die Linux-Distribution stabiler und weniger fehleranfällig zu machen. Dabei wurden mit Blick auf Paketverwaltung und Container-Support aus Stabilitätsgründen einige Änderungen vorgenommen.

Als „unveränderliches“ Betriebssystem nutzt die Fedora Silverblue Workstation den hybriden Paket- und Image-Manager rpm-ostree, hier in der Shell mit Upgrade-Befehl.
Als „unveränderliches“ Betriebssystem nutzt die Fedora Silverblue Workstation den hybriden Paket- und Image-Manager rpm-ostree, hier in der Shell mit Upgrade-Befehl.
(Bild: Augsten / Fedora Silverblue)

Das unveränderliche Design macht Silverblue zu einer besonders gut geeigneten Plattform für containerisierte Anwendungen sowie Container-basierte Softwareentwicklung. Im Gegensatz zur Fedora 30 Workstation vertraut Silverblue beim Versionsupgrade deshalb auf den aus „Project Atomic“ bekannten hybriden Paket- und Image-Manager rpm-ostree, Manch ein Techie wird diesen vorzugsweise über die Shell ansprechen, für eine Integration mit dem Gnome-GUI-Installer wurde aber gesorgt.

Als primären Kanal für die App-Nutzung empfiehlt Team Silverblue allerdings Flatpak, auch wenn rpm-ostree das Installieren von Software-Paketen erlaubt. Flatpak vereint Paketmanagement und Virtualisierung von Desktop-Applikationen. Besonders erwähnenswert ist, dass Flatpak unter 21 verschiedenen Linux-Distributionen funktioniert und heruntergeladene sowie eigens entwickelte Applikationen in einer Sandbox-Umgebung isoliert vom Rest des Systems laufen lässt.

Bildergalerie

Flatpak und rpm-ostree werden Out-of-the-Box vom Gnome-basierten GUI-Installationstool von Fedora unterstützt. Allerdings ist es für Flatpak notwendig, Flathub als Repository zu hinterlegen. Dies gelingt einfach über die Distributions-abhängige Setup-Flatpak-Webseite, die Links zu allen Flatpak-Apps finden sich auf dem App-Marktplatz Flathub.org.

Der aus Fedora bekannte DNF-Paketmanager mit all seinen Vorzügen wie der History-Funktion wird von Silverblue nicht direkt unterstützt. Die sogenannte Toolbox startet aber ein Fedora-30-Image als Container, der den DNF-Aufruf in der Shell ermöglicht. Toolbox ist auf eine möglichst einfache Erstellung von Container-Umgebungen für Development- und Debugging-Zwecke ausgerichtet. Im Folgenden ein Step-by-Step-Guide zur Nutzung der Toolbox sowie eine genauere Erläuterung samt aktueller Probleme im Fließtext.

Schritt für Schritt: DNF in Fedora Silverblue
Bildergalerie mit 10 Bildern

Ärgerlich: Podman-1.3.1 liefert einen Fehler beim Betreten der Toolbox, hier hilft nur das Ersetzen durch eine frühere Version.
Ärgerlich: Podman-1.3.1 liefert einen Fehler beim Betreten der Toolbox, hier hilft nur das Ersetzen durch eine frühere Version.
(Bild: Augsten / Fedora Silverblue)

Als grundlegende Techniken zur Image-Erstellung und -Bereitstellung kommen Podman und Buildah zum Einsatz. Genau hier liegt aktuell ein Problem, denn Podman hat in der Version 1.3.1 ein Problem, Benutzerinformationen an den Container zu übergeben. Die Fehlermeldung hierzu lautet: „toolbox: unable to copy /etc/profile.d/toolbox.sh to container fedora-toolbox-30“.

Die Fehlermeldung „toolbox: unable to copy /etc/profile.d/toolbox.sh to container fedora-toolbox-30“ lässt sich mittels Überschreiben von podman beheben: rpm-ostree override replace https://kojipkgs.fedoraproject.org//packages/podman/1.2.0/2.git3bd528e.fc30/x86_64/podman-1.2.0-2.git3bd528e.fc30.x86_64.rpm
Die Fehlermeldung „toolbox: unable to copy /etc/profile.d/toolbox.sh to container fedora-toolbox-30“ lässt sich mittels Überschreiben von podman beheben: rpm-ostree override replace https://kojipkgs.fedoraproject.org//packages/podman/1.2.0/2.git3bd528e.fc30/x86_64/podman-1.2.0-2.git3bd528e.fc30.x86_64.rpm
(Bild: Augsten / Fedora Silverblue)

Mit podman-1.4.0 soll dieses Problem der Vergangenheit angehören, als Workaround ist es möglich, die vorherige Version von podman zu installieren. Dieses gelang dem Autor mit dem Shell-Kommando:

$ rpm-ostree override replace https://kojipkgs.fedoraproject.org//packages/podman/1.2.0/2.git3bd528e.fc30/x86_64/podman-1.2.0-2.git3bd528e.fc30.x86_64.rpm

Anschließend verlangt Fedora Silverblue nach einem Neustart, das Kommando hierfür lautet:

$ systemctl reboot

Nach dem Neustart gilt es noch, den existierenden Container zu stoppen und zu entfernen, wobei wir hier den Container analog zum vorangegangenen Bild direkt über seine ID ansprechen, die wir mit „toolbox list“ herausgefunden haben:

$ podman stop --all
$ toolbox rm --force 504a6218fbc0
$ toolbox create
$ toolbox enter

Manchmal kann es auch nötig sein, alle Container zu entfernen, das allgemeine Kommando hierfür lautet der Vollständigkeit halber:

$ toolbox rm --all

Dieses Problem zeigt, dass Fedora Silverblue zwar als Entwicklungsumgebung interessant, aber auch äußerst abhängig von den integrierten Komponenten ist. Denn ein Fix für podman ließ lange auf sich warten, was bei Produktivsystemen ärgerlich ist. Nichtsdestotrotz ist die Toolbox eine interessante Errungenschaft, die sich zu testen lohnt.

(ID:45969452)