Devinitive Fedora Silverblue Guide

Einleitung und Erklärung

Was ist eine unveränderliche Distro?

Eine „Immutable Distro“ (Innutable=unveränderlich) weist typischerweise zwei Hauptmerkmale auf:

  • Bestimmte Verzeichnisse (auf Root-Ebene) sind schreibgeschützt, so dass der Benutzer eines laufenden Systems keine Änderungen an ihnen vornehmen kann.

  • Mindestens eine frühere „Version“ des Systems wird aufbewahrt, so dass der Benutzer immer zu einem früheren Zustand zurückkehren kann.

Warum eine unveränderliche Distro verwenden?

Die Vorteile einer unveränderlichen Distro sind zweifach:

  • Konsistenz - Wenn Distros veröffentlicht werden, wird das System „so wie es ist“ getestet, um sicherzustellen, dass es funktioniert. Es wäre nicht umsezbar, jede mögliche Kombination von Paketen und Konfigurationen zusätzlich zu den bereits vorhandenen zu testen. Je „näher“ das System also an der Vorgabe vom Distributor ist, desto wahrscheinlicher ist es, dass das das System genau das tut was es soll, das Problem " auf meiner Maschine funktioniert es aber", bei dir jedoch nicht, existiert somit nicht mehr. Das Betriebssystem verhält sich konsistent auf allen Computern gleich.

  • Rollbacks - Es ist sehr einfach, ein Update, das du nicht willst, wieder rückgängig zu machen. Wenn zum Beispiel ein Programm nicht mehr funktioniert oder sich die Benutzeroberfläche in einer Weise ändert, die du nicht erwartet hast, kannst du dein System genau so wiederherstellen, wie es vor dem Update war.

Wie erreicht Silverblue Unveränderlichkeit?

Fedora Silverblue nutzt eine Technologie namens ostree, sowie ein Dienstprogramm namens rpm-ostree.

Was ist OSTREE?

OSTree ist ein Werkzeug, das komplette Dateisysteme in einer baumartigen Struktur bereitstellt. Es ist vom Konzept her ähnlich wie Git. Das Dateisystem wird oft als „Image“ bezeichnet, ähnlich wie bei Containertechnologien. Der Erwerb einer Kopie eines OSTree-Dateisystems wird als „pulling“ bezeichnet. Jedes Mal, wenn du ein „Image“ „ziehest“, bekommst du eine vollständige und identische Kopie des Dateisystems.

Es kann mehrere verschiedene, unabhängige Dateisysteme geben, die von der gleichen Entität gehostet werden. Diese werden als „Zweige“ bezeichnet. Das Wechseln zwischen diesen Zweigen wird als „Rebasing“ bezeichnet und ist leicht durchzuführen (und rückgängig zu machen!).

Was ist rpm-ostree?

rpm-ostree ist ein Werkzeug, das in Silverblue enthalten ist und es dem Benutzer ermöglicht, RPM-Pakete, einschließlich solcher aus Fedoras Repos, auf einem OSTree-System zu installieren. Dieses Konzept ist als „Layering“ bekannt, da man sich jedes zusätzliche RPM, das über das OSTree-Image von Silverblue installiert wird, als eine zusätzliche „Schicht“ vorstellen können.

Sobald ein Image von OSTree heruntergeladen wurde und die einzelnen Pakete darauf angewendet wurden, ist das Endprodukt zum Booten verfügbar. Dieses Endprodukt wird als „deployment“ (deployment = Bereitstellung) bezeichnet.

Wie unterscheidet sich Silverblue von Workstation?

Die Verwendung von OSTree in Silverblue bedeutet, dass Software anders installiert wird, das System anders aktualisiert wird und andere Pakete als in Workstation verfügbar sind. Beispiele hierfür sind Gnome Boxes, RhythmBox und LibreOffice.

Neben den Unterschieden in der mitgelieferten Software werden einige der Anwendungen, die mit einer Silverblue-Installation geliefert werden, als Flatpaks installiert, während sie in Workstation über die regulären Repos, als .rpm Paket installiert werden. Einige Beispiele sind Wetter, Karten, Verbindungen und File Roller.

Silverblue gegenüber Workstation aktualisieren

Fedora Workstation aktualisiert mit dnf. Wenn du dnf update ausführst, werden die einzelnen RPM-Pakete aus dem Fedora-Repository geholt und jeweils einzeln installiert. Dabei wird nur die Software geholt und installiert, die in den Repos eine höhere Version hat als auf deinem Rechner. Nach der Installation sind die neueren Versionen dieser Pakete sofort auf dem laufenden System verfügbar.

Im Gegensatz dazu wird Silverblue mit rpm-ostree aktualisiert. Wenn es aufgerufen wird, holt es die neueste Version des gesamten OSTree-Images und legt dann alle RPMs einzeln neu auf dieses „frische“ Image. Dieses neue Image wird dann unabhängig von dem Image gespeichert, in das du gerade gebootet hast bzw. was du gerade nuzt. Wenn dieser Prozess aus irgendeinem Grund fehlschlägt, wird das OSTree-Image nicht auf der Festplatte gespeichert, und dein System bleibt dasselbe, als hättest du die Aktualisierung gar nicht durchgeführt. Wenn der Prozess erfolgreich ist, kannst du in dein neues Image booten, indem du deinen Rechner neu startest oder herunterfährst (sofort verfügbare Installationen / Updates sind mit rpm-ostree möglich, aber dazu später mehr; standardmäßig ist ein Neustart erforderlich).

Wenn du eine Aktualisierung auf Workstation rückgängig machen möchtest, wird dnf aufgerufen, um ältere Versionen der Pakete herunterzuladen, die zuvor aktualisiert wurden, und diese werden dann an Ort und Stelle auf deinem laufenden Rechner neu installiert, wobei die aktualisierten Pakete überschrieben werden. Wenn ein Update dazu geführt hat, dass der Rechner nicht mehr startet, kann dies schwierig zu beheben sein und möglicherweise die Verwendung eines Live-USB erfordern.

Wenn du ein Update auf Silverblue rückgängig machen möchtest, kannst du einfach neu starten und das vorherige Image von GRUB-Bootmenü auswählen. Da du dieses Image bereits zur Durchführung des Updates verwendet hast, kannst du sicher sein, dass dieses Image genauso bootet und funktioniert wie vor dem Update.

Installation von Software auf Silverblue

Es gibt drei empfohlene Wege, um Software auf Silverblue zu installieren:

  • Mit Flatpak

  • Layering über rpm-ostree

  • Installation in eine Toolbox

Verwendung von Flatpak

Flatpaks sind Anwendungen, die auf einem konsistenten Basissystem aufbauen, unabhängig von der Distribution des Benutzers. Sie laufen in einer Sandbox und geben dem Benutzer eine fein abgestufte Kontrolle über bestimmte Rechte, wie z.B. den Netzwerkzugang oder die Möglichkeit, bestimmte Dateien/ Ordner zu sehen.

Standardmäßig wird Fedora Silverblue mit einer Reihe von Flatpaks aus Fedoras eigenem Flatpak-Repositorium ausgeliefert. Ab Version 38 ist auch das Flathub-Repositorium standardmäßig aktiviert, was den Zugriff auf eine breite Palette von grafischen Anwendungen ermöglicht.

Es wird empfohlen, grafische Anwendungen mit flatpak zu installieren, da sie unabhängig vom OSTree-Basisimage sind. Da ihre Abhängigkeiten in sich geschlossen sind, können sie keine Konflikte innerhalb des Basissystems verursachen, und sie können unabhängig (oder sogar automatisch!) aktualisiert werden, ohne dass das gesamte System aktualisiert werden muss.

Es gibt zwei Möglichkeiten, Flatpak-Anwendungen auf Silverblue zu installieren - entweder über die grafische Gnome-Software-Anwendung oder über das CLI-Kommando flatpak.

Gnome Software

Öffne die Anwendung „Software“. Beim ersten Start kann es einige Minuten dauern, bis nach verfügbaren Anwendungen gesucht wird. Sobald dies abgeschlossen ist, kannst du mit der Lupe oben links nach der zu installierenden Anwendung suchen. Wenn du auf die ausgewählte Anwendung klicken, erhälst du weitere Informationen zu dieser Anwendung sowie eine Schaltfläche „Installieren“ oben rechts. Klicke einfach auf diese Schaltfläche, um die Anwendung zu installieren. Um etwas zu deinstallieren, klickst du auf das Mülleimer-Symbol und bestätigst.

Wenn Aktualisierungen verfügbar sind, solltest du eine Benachrichtigung von Gnome Software erhalten, die dich zum Abschnitt „Updates“ führt, wenn du darauf klickst. Du kannst dann auf „Alle aktualisieren“ klicken, um alle Ihre Flatpaks zu aktualisieren.

Die Gnome Software Anwendung ist mir zu langsam daher benutze ich meist die CLI um Flatpaks zu installieren, das geht um Welten schneller.

Der flatpak-Befehl

Der flatpak-Befehl kann sowohl nach Anwendungen aus den Fedora- als auch aus den Flathub-Repos suchen und diese installieren. Um nach Inkscape zu suchen, führe einfach flatpak search inkscape aus. Dies zeigt dir eine Liste der Ergebnisse in einer Tabelle an. Du musst die Kennung in der Spalte „Application ID“ zum Installieren und Entfernen verwenden.

Um mit dem flatpak Befehl zu installieren, führe flatpak install <repo> <application_id> aus. Um zum Beispiel Inkscape aus dem Flathub-Repos zu installieren, führe flatpak install flathub org.inkscape.Inkscape aus

Das Entfernen eines Flatpaks ist flatpak remove <application_id>, zum Beispiel: flatpak remove org.inkscape.Inkscape.

Das Aktualisieren von Flatpaks ist einfach flatpak update.

Eine Liste aller installierten Flatpaks erhällst du mit:

Für benuzerweit installierte Flatpaks flatpak --user --columns=app list

oder systemweit installierte Flatpaks flatpak --columns=app list

  • Ich empfehle alle Flatpaks mit der zusatzoption --user also z.B. flatpak install --user flathub org.inkscape.Inkscape zu installieren diese werden dann in das Benuzerverzeichniss installiert und landen somit später auch ganz einfach im Backup, aber dazu mehr in der Setup-Anleitung.

Layering mit rpm-ostree

Alles, was Zugriff auf das Basissystem benötigt, wie z.B. Treiber, muss über rpm-ostree gelayert werden.

CLI-Programme werden in der Regel nicht von Flatpak angeboten. Daher benötigst du für diese Anwendungen rpm-ostree. Syncthing und Wireguard sind hierfür gute Beispiele.

Du kannst mit rpm-ostree search syncthing nach verfügbaren Paketen zu suchen, die Paketnamen sind jedoch die gleichen wie bei der Workstation Version von Fedora.

Anstelle von sudo dnf install syncthing verwendest du also einfach rpm-ostree install syncthing du brauchst hierfür noch nicht einmal sudo da wir ja nichts am System selbst verändern und ja auch nicht können.

Das Entfernen eines Pakets erfolgt mit rpm-ostree uninstall syncthing oder rpm-ostree remove syncthing.

Beim Installieren und Entfernen von Paketen wird der OSTree wieder herab gewandert und alle ausgewählten RPMs werden übereinandergestapelt, um ein ganz neues deployment zu erstellen, genau wie bei einem Update. Das bedeutet, dass du die neue Installation neu starten musst, um die installierten/deinstallierten Pakete zu verwenden. (bzw. loszuwerden).Dieser Vorgang dauert natürlich recht lange, aber so oft mach man das nicht und die Vorteile dieses Systems überwiegen.

Wenn du nicht neu booten willst, kannst du --apply-live oder -A an den (un)install-Befehl übergeben, damit die Pakete auf das laufende System angewendet werden (es wird jedoch immer noch eine neue Installation erstellt). Zum Beispiel: rpm-ostree install -A syncthing installiert Syncthing und stellt es ohne Neustart zur Verfügung. Das funktioniert allerdings nicht mit jedem Paket, aber kann manchmal hilfreich sein.

  • Updaten mitrpm-ostree upgrade
  • Installieren mit rpm-ostree install PAKETNAME
  • rpm-ostree cleanup -m um metadaten aufzuräumen
  • status abfragen rpm-ostree status -v
  • alle gelayerten Pakete entfernenrpm-ostree reset -l also ein reset auf den Ausliferungszustand von Silverblue durchführen, dabei werden alle Einstellungen behalten.

Sollte ich Layering vermeiden?

Es ist nicht unbedingt falsch, Pakete zu layern - das ist der Sinn von rpm-ostree. Die Pakete in Fedoras Repos sind so konzipiert, dass sie zusammen installiert werden und gut zusammenspielen.

Die Dinge, die du beachten solltest, sind:

  • Je mehr Pakete du layerst, desto weiter entfernst du dich vom Basis-OSTree-Image, was dazu führen kann, dass du auf Probleme stößt, mit denen andere, die die gleichen Pakete nicht überlagert haben, nicht konfrontiert werden. Fehler bei der Auflösung von Abhängigkeiten treten gelegentlich auf.

  • Da bei jeder Aktualisierung alle RPMs von Grund auf neu geschichtet werden, dauern die Aktualisierungen umso länger, je mehr Pakete installiert werden müssen. In der Praxis ist dies kein großes Problem, da du das System während der Aktualisierung weiter benutzen kannst.

Im Allgemeinen gilt: Wenn du nicht in der Lage bist, etwas per Flatpak zu beziehen, und du keine Lust hast, dich mit Toolboxen herumzuschlagen, dann layer es!

Toolboxen

Eine Toolbox ist ein Podman-Container von Fedora, der so in das Basissystem integriert ist, dass sowohl grafische als auch CLI-Anwendungen (fast) so nahtlos ausgeführt werden können, als ob sie auf dem Basissystem installiert wären. Also ein Fedora im Fedora.

Toolboxen sind großartig für Entwickler, da sie die Installation von Programmiersprachen und Tools mit dnf genau wie Workstation ermöglichen, aber mit dem Bonus, dass alles auf Systemebene sowohl vom Host als auch von anderen Toolboxen isoliert ist. Das bedeutet, dass du z.B. Python 3.8 in einer Toolbox und Python 3.11 in einer anderen installieren kannst, ohne dass du einen Versionsmanager auf deinem Host benötigst.

Grafische Anwendungen sollten in der Regel innerhalb einer Toolbox einfach funktionieren, aber beachte, dass sie nicht im Menü erscheinen, wenn sie nicht manuell hinzugefügt werden.

Toolboxen eignen auch hervorragend um Dinge auszuprobieren, da sie komplett und rückstandslos entfernt werden können.

Erstellen und Verwenden einer Toolbox

Erstelle eine Toolbox, indem du toolbox create name_meiner_toolbox ausführst, wobei name_meiner_toolbox ein geeigneter Name für das ist, was darin installiert werden soll. Standardmäßig wird dabei ein Container mit der gleichen Fedora-Version wie dein Basissystem erstellt. Um eine andere Version zu verwenden, gebe die Option -r gefolgt von der Versionsnummer an, z. B. toolbox create meinebox -r 39, um einen Container mit Fedora 39 zu erstellen.

Gib toolbox enter name_von_meiner_toolbox ein. Du befindest dich nun in einer Shell innerhalb deiner Toolbox.

Von dieser Shell aus kannst du dnf wie gewohnt verwenden, um Pakete zu installieren, zu aktualisieren und zu entfernen.

Um einen einzelnen Befehl innerhalb einer Toolbox auszuführen, während du dich auf dem Hauptsystem befinden, führe toolbox run -c name_meiner_toolbox anwendungs_name aus. Wenn du z. B. Inkscape in einer Toolbox mit dem Namen graphics hast, führe toolbox run -c graphics inkscape aus.

Wann sollte ich eine Toolbox verwenden?

Werkzeuge, die einen speziellen Anwendungsfall mit geringem Umfang haben, wie z.B. Versionen von npm oder rustc, die für ein bestimmtes Programmierprojekt bestimmt sind, sind gute Kandidaten für die Installation in einer Toolbox.

Grafische Anwendungen, die nicht als Flatpaks verfügbar sind und sich aus irgendeinem Grund nicht mit rpm-ostree layern lassen (was manchmal bei proprietären Werkzeugen der Fall ist), können ebenfalls in einer Toolbox installiert werden. Um das ganze noch auf die Spitze zu treiben kannst du statt toolbox auch distrobox verwenden, dann kannst du sogar andere Betribssystem Pakete in dienem Silverblue nuzen, z.B. Manjaro oder Debian Pakete. Aber das ist nochmal ein eigenes Thema.

Du kannst Distrobox auf Silverblue installieren, indem du es mit rpm-ostree install distrobox layerst oder den Curl/Wget-Anweisungen von Github folgst. Es sollte dann unter Silverblue normal funktionieren.

Andere Methoden

Die oben genannten Methoden sollten 99 % der Anwendungsfälle abdecken, aber es kann Situationen geben, in denen die von Ihnen gewählte Software nicht verfügbar ist. Hier sind einige andere Methoden zur Installation von Anwendungen:

AppImage

AppImages sollten auf Silverblue sofort funktionieren.

Wenn du feststellst, dass ein AppImage eine Abhängigkeit auf Systemebene hat, die nicht erfüllt wird (z.B. VSCodium), kann es sich als bequemer erweisen, dieses AppImage zu einer eigenen Toolbox zu machen, so dass du dnf verwenden kannst, um diese Abhängigkeiten zu installieren, ohne das Basissystem zu beeinflussen. Dieses AppImage muss dann innerhalb der Toolbox ausgeführt werden.

Snaps

Snaps funktionieren nicht auf Silverblue, da snapd davon ausgeht, dass Verzeichnisse auf Systemebene wie /snap beschreibbar sind. Snaps funktionieren auch nicht in Toolbox- oder Distrobox-Containern.

Wenn du auf Software angewiesen bist, die nur im Ubuntu Snap-Store verfügbar ist, solltestr du entweder eine virtuelle Maschine verwenden oder einfach eine andere, nicht-immutable Distribution einsetzen, aber wer will schon Snaps benutzen…

RPMs

Einige RPM-Dateien lassen sich normal über rpm-ostree install /pfad/zur/datei.rpm installieren. Bei einigen ist dies nicht der Fall, so dass sie innerhalb einer Toolbox installiert werden müssen.

Beliebige Skripte / Tarballs

Bestimmte Verzeichnisse, die auf den ersten Blick als systemeigene Verzeichnisse erscheinen, sind in Wirklichkeit Symlinks auf /var, das unter Silverblue immer beschreibbar ist. Dazu gehören /opt und /usr/local.

Binärdateien können in /opt oder /usr/local abgelegt werden, und Installations-Skripte, die Dateien in diesen Verzeichnissen ablegen, sollten problemlos funktionieren.

Wenn du es vorziehst, Dinge auf Benutzerebene zu installieren, sind ~/bin und ~/.local/bin gute typische Orte.

Übrigens liegt dein Home-Verzeichniss unter Silverblue in /var/home/benutzername/ ein Symlink auf /home sorgt allerdings dafür das Anwendungen dieses Verzeichniss auch am gewohntem Ort finden.

Nix

Es ist technisch möglich, Nix auf Silverblue zu installieren und zu nutzen - allerdings sind damit einige tiefgreifende Änderungen am System verbunden. Ein Gist ist auf Github verfügbar für diejenigen, die es wirklich brauchen.

Android Apps

Du kannst Waydroid layern und darüber beliebige Androidapps ausführen.

rpm-ostree install waydroid nach dem ersten Start muss dann noch die Quelle für das Android Betribssystemimage angegeben werden alo beispielsweise:

System OTA: https://ota.waydro.id/system

Vendor OTA: https://ota.waydro.id/vendor

Silverblue aktualisieren

Verwendung der Gnome-Software

Standardmäßig sollte die Gnome-Software im Hintergrund nach Updates suchen, während du deinen Rechner benutzt. Dies gilt sowohl für das Basissystem als auch für deine Flatpaks. Wenn Updates verfügbar sind, wird eine Benachrichtigung angezeigt, die dich darüber informiert.

Auf der Registerkarte „Updates“ oben in der Anwendung werden die verfügbaren Updates angezeigt, und es gibt eine Schaltfläche, um sie anzuwenden.

Verwendung der CLI

Führe den Befehl rpm-ostree update aus, um dein Basissystem zu aktualisieren. Dadurch wird eine frische Kopie des neuesten OSTree-Systems gezogen und RPMs darauf gelayert. Anschließend wird eine neues deployment erstellt, das beim nächsten Einschalten des Computers startet.

Führe flatpak update aus, um alle Ihre flatpak-Anwendungen zu aktualisieren.

Aktualisieren von Toolboxen

Toolboxen sind Fedora-Container. Wenn du also sudo dnf update ausführst, wird die Toolbox aktualisiert. Diese werden derzeit nicht von Gnome Software verwaltet und müssen daher manuell über die CLI aktualisiert werden.

Beachte, dass Toolboxen nicht wie Workstations von einer Hauptversion zur nächsten aktualisiert werden können.

Upgrade von Silverblue auf die nächste Hauptversion

Weder Fedora Silverblue noch Workstation sind „rollende“ Distros, sie müssen manuell auf die nächste Hauptversion aktualisiert werden, je nach Ermessen des Benutzers.

Das Upgrade auf die nächste Version in Silverblue beinhaltet das Verweisen des Systems auf einen anderen „Zweig“ von OSTree. Dies wird als „rebasing“ bezeichnet.

Verwendung der Gnome-Software

Wenn du die Einstellungen der Gnome-Software auf den Standardwerten belässt, solltst du gefragt werden, wann die nächste Hauptversion verfügbar ist. Klicke auf die Schaltfläche Aktualisieren, damit dein System im Hintergrund aktualisiert wird. Starte das System neu, wenn es fertig ist, und du solltest eine neue Version im GRUB-Menü zur Verfügbar haben, welches nun standartmäßig gebootet wird.

Verwendung der CLI

Der Befehl zur Suche nach verfügbaren branches lautet ostree remote refs fedora. Dies sollte eine Liste von möglichen Rebase-Zielen ausgeben. Das gewünschte Ziel heißt wahrscheinlich fedora:fedora/nn/x86_64/silverblue - wobei nn die nächste Hauptversionsnummer ist - zum Beispiel 41.

Der Befehl zum Ausführen des rebase lautet: rpm-ostree rebase <Ziel>. Zum Beispiel, um auf Silverblue Version 41 zu rebasen: rpm-ostree rebase fedora:fedora/41/x86_64/silverblue

Mit dieser Methode kann z.B. auch auf Kinoite gewechselt werden um, statt Gnome, KDE als Desktopumgebung zu nuzen. Also rpm-ostree rebase fedora:fedora/41/x86_64/kinoite

Sobald dieser Vorgang ausgeführt wurde, sollte beim nächsten Einschalten des Computers eine neue Installation starten.

Sollte Silverblue in einer neuen Hauptversion ein Paket mitliefern das du schon manuell gelayert hast stoppt der Updatevorgang und du musst dieses Paket vorher manuell entfernen. mit rpm-ostree remove ffmpeg um welches Paket es sich handelt erfähst du allerdings nur über die CLI aktualisierungs Methode. Lässt sich dein Silverblue also nicht mehr Updaten wird das der Grund dafür seien.

Aktualisieren von Toolboxen

Ein Upgrade der Toolboxen ist technisch möglich über sudo dnf update --releasever=nn, wobei nn die nächste Versionsnummer ist.

In der Regel wird jedoch empfohlen, wenn möglich, eine neue Toolbox zu erstellen und die Software darin neu zu installieren.


FAQs - Meist gestellte Fragen

Ich habe die Beta-Version neu installiert, muss ich etwas tun, wenn sie stabil wird?

Nein, wenn du auf einen Zweig ohne das Wort „testing“ umgestellt hast, wird dieser Zweig zum stabilen Zweig der neuen Version, wenn diese veröffentlicht wird. Aktualisiere dein System einfach weiter wie gewohnt.

Wie bringe ich Videos dazu, in Firefox abgespielt zu werden?

Zum Zeitpunkt der Erstellung dieses Artikels enthält das System Firefox nicht die notwendigen Medien-Codecs, um alle Online-Videos abzuspielen. Dies ist auf Lizenz-/Patentprobleme zurückzuführen.

Die einfachste Lösung ist, die Flathub-Version von Firefox zu verwenden. Installiere diese, indem du flatpak install flathub --user org.mozilla.firefox ausführst. Wenn du nicht willst, dass danach zwei Versionen von Firefox installiert sind, kannst du die Version aus dem OSTree-Image mit rpm-ostree override remove firefox firefox-langpacks entfernen.

Wenn dies keine akzeptable Lösung ist, musst du das RPMFusion-Repository hinzufügen. Die offizielle Dokumentation enthält Anweisungen für Silverblue. Das bringt aber auch Mehrarbeit beim Updaten auf eine neue Hauptversion mit sich.

Wie kann ich eine Datei in /etc bearbeiten?

Sowohl /etc als auch /var sind immer beschreibbar. du kannst Konfigurationsdateien in /etc wie gewohnt bearbeiten!

Wie kann ich etwas installieren, ohne neu zu starten?

Übergebe -A oder --apply-live an den Installationsbefehl, z.B. rpm-ostree install -A inkscape.

Wie kann ich ein Deployment für immer beibehalten?

Pin dein Deployment mit sudo ostree admin pin 0. Wenn du es nicht mehr benötigst, unpin es mit sudo ostree admin pin --unpin 2. Die Zahlen 0 und 2 beziehen sich auf Deployment-Indizes. Um diese herauszufinden, führe rpm-ostree status aus, um deine verfügbaren Deployments aufzulisten. Von oben nach unten sind die Versionen mit 0 beginnend nummeriert. Wenn du zum Beispiel drei Versionen zur Verfügung hast, ist die erste Version mit 0, die mittlere mit 1 und die unterste mit 2 gekennzeichnet.

Wie kann ich Gnome-Erweiterungen hinzufügen?

entweder:

  • Layer die Erweiterungen mit rpm-ostree. Du kannst in den Fedora Repos nach gnome-shell-extension suchen, um zu sehen, was verfügbar ist.

  • Installiere das Extension Manager flatpak, und verwende es, um Erweiterungen zu finden und zu installieren.

Wie bekomme ich die Nvidia-Treiber zum Laufen?

Zuerst musst du das RPMFusion Repo hinzufügen. Die offizielle Dokumentation enthält Anweisungen für Silverblue.

Wenn du diese Anleitung befolgt hast, ist es empfehlenswert, einige weitere Befehle auszuführen, um sicherzustellen, dass Ihr Repo versionsunabhängig ist, was Rebases vereinfacht.

Nun kannst du den Anweisungen auf der Website von RPMFusion folgen.

Allerdings würde ich eher empfehlen eine AMD Karte zu verwenden das ist Plug n Play


Glossar

Kurz zusammengefasst die wichtigsten Begriffe:

Dir Raucht der Kopf aber du hast bis hier her gelesen, dann hier noch eine Erklärung was diese ganzen mysteriösen Begrifflichkeiten bedeuten:

  • CLI -> Die Komandozeile (Command Line Interface)

  • Branch -> Ein individuelles, separates OSTree-Dateisystem.

  • Flatpak -> Ein Werkzeug, das zur Installation unabhängiger Sandbox-Anwendungen (typischerweise grafische Anwendungen) auf einem Linux-System verwendet wird.

  • Deployment -> Ein OSTree-Image mit den installierten Paketen, das über GRUB gebootet werden kann.

  • GRUB -> Das Menü, das beim Booten deines Rechners erscheint und die verfügbaren deployments zum Booten enthält.

  • Image -> Ein vollständiges Dateisystem, das aus einem OSTree-Repository gezogen wurde.

  • Immutable Distro -> Eine Distribution, bei der bestimmte Ordner auf Systemebene schreibgeschützt gemountet sind und eine Möglichkeit besteht, auf ältere Versionen des Systems zuzugreifen, ohne die aktuelle, laufende Version zu beeinflussen.

  • Layer / Layering -> Ein RPM-Paket, das über rpm-ostree auf dem Basissystem installiert wird.

  • Pinning/Unpinning -> Die Befehle, mit denen ein bestimmtes Deployment auf deinem Rechner auf unbestimmte Zeit gespeichert bleibt, bis es manuell entpinnt wird.

  • Pulling -> Abrufen der neuesten Version des OSTree-Dateisystems.

  • Rebasing -> Wechseln des OSTree-Zweigs, aus dem deinem Rechner zieht, so dass du auf einen anderen Desktop (Kinoite / Sericea) wechseln oder auf die nächste Hauptversion aktualisieren können.

  • Toolbox -> Ein Fedora-Container, der in das Basissystem integriert ist und die einfache Ausführung von CLI- und grafischen Anwendungen ermöglicht

  • ostree -> Eine Technologie, die vollständige, bootfähige Dateisysteme als Basis für ein Betriebssystem bereitstellt.

  • rpm-ostree -> Das Werkzeug, das verwendet wird, um zusätzliche Pakete über das Basissystem zu legen.


Setup

Nachfolgend beschreibe ich mein optimales Silverblue Setup. Mit automatischen Updates und ein System das immer Einsatzbereit ist.

Lade dir das Image von Fedora Silverblue runter und “brenne” es auf einen USB Stick. under Windows kannst du ein Tool namens Win32DiskImager nutzen unter Linux das Programm Laufwerke oder über die CLI den dd Befehl . Boote den Stick und installiere Fedora Silverblue die Installation ist einfach und selbsterklärend. Ich empfehle den Haken bei Festplattenverschlüsselung zu setzen da, die Festplatte somit voll verschlüsselt wird, das Passwort musst du dir allerdings gut merken. Nach der Installation und Neustart durchläufst du automatisch den Einrichtungsassistenten, da legen wir los.

  • Öffne Gnome-Software und schaue ob es Updates gibt (der Ladebalken ist langsam, keine sogre das dauert beim ersten mal, ein wenig)
  • Ändere den Gerätename unter Einstellungen>System>Info ändern (Standard wert fedora) auf einen schönen Namen für deinen Computer.
  • Richte die Automatische Anmeldung nach Computerstart ein da die Festplatte ohnehin verschlüsselt ist, so musst du dein Passwort nicht 2 mal eingeben beim Computerstart und er ist dennoch somit dennoch sicher. Einstellungen>System>Benutzer 1. “Entsperren“ 2. ”Automatische Anmeldung” aktivieren.

Firefox ostree version entfernen

rpm-ostree override remove firefox firefox-langpacks

  • Mit dem Befehl rpm-ostree status kannst du übrigens sehen was du schon alles gelayert hast.

Wichtige Pakete Layern

rpm-ostree install waydroid gnome-tweak-tool gnome-shell-extension-pop-shell gnome-shell-extension-dash-to-dock gnome-shell-extension-openweather gnome-shell-extension-screen-autorotate virt-manager wireguard-tools gstreamer1-vaapi syncthing distrobox

Flathub gegen Flathub-user repo ersetzen und fedora repo hinzufügen:

da ich alle Flatpaks als benuzer installiere entferne ich die Flathub und Fedora Systemquelle und ersetze sie durch die Userquelle.

flatpak remotes zeigt dir welche Quellen aktiv sind

sudo flatpak remote-delete flathub entfernt Flathub

flatpak remote-add --user --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo fügt Flathub als Benutzerquelle wieder hinzu. Alle Flatpaks werden somit automatisch in das Benutzerverzeichniss installiert.

flatpak remote-add --user --if-not-exists fedora oci+https://registry.fedoraproject.org fügt noch das Fedora Flatpak-repo als Benutzerquelle hinzu.

Das ist eine Flatpak installations-Liste mit den am meisten benötigten Flatpaks

flatpak install --user flathub org.mozilla.firefox com.mattjakeman.ExtensionManager io.missioncenter.MissionCenter com.github.jeromerobert.pdfarranger com.github.junrrein.PDFSlicer com.github.tchx84.Flatseal com.rawtherapee.RawTherapee com.valvesoftware.Steam de.bund.ausweisapp.ausweisapp2 im.riot.Riot org.audacityteam.Audacity org.audacityteam.Audacity.Codecs org.blender.Blender org.blender.Blender.Codecs org.darktable.Darktable org.freecadweb.FreeCAD org.gimp.GIMP org.gnome.NetworkDisplays org.gnome.SimpleScan org.gnome.Snapshot org.gnome.SoundRecorder org.gnome.gThumb org.gpodder.gpodder org.inkscape.Inkscape org.kde.kdenlive org.kde.krita org.keepassxc.KeePassXC org.libreoffice.LibreOffice org.mozilla.Thunderbird org.videolan.VLC

und aus dem Fedora-repo wenn du wie ich noch einen PalmPDA hast die Anwendung JPilot

flatpak install --user fedora org.jpilot.JPilot

Danach einmal neu starten damit die Änderungen geladen werden.

Automatische Updates ohne Nerverei

Um Fedora komplett automatisch zu aktualisieren legen wir einen Systemd-timer an der das in Zukunft für uns erledigt, somit müssen wir uns nie wieder um Updates kümmern.

Systemd system-unit dateien sind im Ordner /etc/systemd/user/ sie können auf alle Nutzer des Systems angewandt werden. Individuelle user-units finden sich im Ordner ~/.config/systemd/user/ und betreffen nur den jeweiligen Nutzer.

Lege folgende vier Dateien mit jeweils folgendem Inhalt an:


sudo nano /etc/systemd/user/flatpak-user-update.service

Description=Update user Flatpaks

[Service]
Type=oneshot
ExecStart=/usr/bin/flatpak --user update -y

[Install]
WantedBy=default.target

sudo nano /etc/systemd/system/flatpak-system-update.service

Description=Update system Flatpaks
After=network-online.target
Wants=network-online.target

[Service]
Type=oneshot
ExecStart=/usr/bin/flatpak --system update -y

[Install]
WantedBy=multi-user.target

sudo nano /etc/systemd/user/flatpak-user-update.timer

Description=Update system Flatpaks daily

[Timer]
OnCalendar=daily
Persistent=true

[Install]
WantedBy=timers.target

sudo nano /etc/systemd/system/flatpak-system-update.timer

Description=Update system Flatpaks daily

[Timer]
OnCalendar=daily
Persistent=true

[Install]
WantedBy=timers.target

Wir haben nun die Systemd Aufgaben und Timer für die Aktualisierung der Flatpaks angelegt um die Aufgabe nun vom System ausführen zu lassen aktivieren wir diese mit dem Befehlen:

systemctl --user enable --now flatpak-user-update.timer

und

sudo systemctl --system enable --now flatpak-system-update.timer

Flatpaks updaten nun schon mal selbstständig, um das System selbständig nach jedem Neustart aktuell zu halten ändern wir die Datei /etc/rpm-ostreed.conf mit dem Befehl:


sudo nano /etc/rpm-ostreed.conf

Die Zeile AutomaticUpdatePolicy und IdleExitTimeout wird geändert damit Updates im Hintergrund nach 60 min angewendet werden.

AutomaticUpdatePolicy=stage
IdleExitTimeout=60
#LockLayering=false

[Experimental]
StageDeployments=yes

Die Datei /etc/rpm-ostreed.conf legt fest wie das System mit Updates verfährt

AutomaticUpdatePolicy=none -> keine

AutomaticUpdatePolicy=stage -> automatisch

VirtManager

Um weiterhin ein Windows für bestimmte aufgeben zur Verfügung zu haben nutzen wir die Virtuelle Maschine VirtManager danach kannst du Windows in einem “Fenster” ausführen. Windows > Fenster, is doch klar :-)

VirtManager haben wir ja nun schon gelayert und neu gestartet, damit VirtManager nun auch funktioniert startest du einmalig die Dienste und passt die Berechtigungen an, mit den sechs Befehlen:

sudo usermod -aG libvirt,kvm,dialout,input $(whoami)

systemctl enable libvirtd.service

systemctl start libvirtd.service

systemctl enable libvirtd.socket

systemctl start libvirtd.socket

sudo chown deinbenuzername:deinbenuzername /var/run/libvirt/libvirt-sock

Passe im lezten Befehl deinbenuzername mit deinem Benuzernamen an.

Syncthing

über Syncthing habe ich schon mal ein Video gemacht, um Syncthing im Hintergrund zu starten führe Folgende Befehle aus:

systemctl enable syncthing@deinbenuzername.service

systemctl start syncthing@deinbenuzername.service

Passe in Befehlen deinbenuzername mit deinem Benuzernamen an.

  • mit systemctl disable syncthing@deinbenuzername.service kannst du den Dienst übrigens wieder entfernen.

Serielle Geräte

Serielle Geräte wie Arduinos, Minidiscs und PDAs machen werden von der jeweiligen Anwendungssoftware erst erkannt wenn du deinem Benutzer die Rechte gibst. Es kann nicht schaden das zu tun damit du nicht in diese Probleme rein läufst, auch wenn du solche Geräte nicht verwendest:

sudo groupadd plugdev

sudo usermod -a -G tty $USER

sudo usermod -a -G dialout $USER

sudo usermod -a -G plugdev $USER

dann lege ich noch die Datei /etc/udev/rules.d/01-ttyusb.rules an mit sudo nano /etc/udev/rules.d/01-ttyusb.rules und schreibe diesen Inhalt hinein:

SUBSYSTEMS=="usb-serial", TAG+="uaccess"

Damit sollten diese kleinen Helfer das Alltags auch erkannt werden.

Was noch zu tun ist:

  • Die Erweiterung uBlock Origin in Firefox installieren

  • In der App Erweiterungs-Manager (Blaues Symbol) noch diese sinnvollen Erweiterungen Installieren bzw. Aktivieren:

    Aktivieren

    • Dash to Dock
    • OpenWeather
    • Pop Shell
    • Screen Rotate

    Installieren über die App

    Tray Icons:Reloaded; Battery Usage Wattmeter; GJS OSK; Touch X; Hue Lights

Das sind natürlich nur optionale Empfehlungen guckt vorher in der Beschreibung ob ihr das alles braucht.



Zusammenfassung

Ist Silverblue nun gut?

Ich denke ja, es heißt zwar immutable also unveränderlich, aber ich kann alles ändern was ich brauche, ich kann es halt nur nicht kaputt spielen. Ich erkaufe mir diesen Luxus mit Festplatten Speicherplatz, Flatpaks, Layer, all das nimmt mehr Speicherplatz ein als man es von Fedora Workstation, oder Debian Linux gewohnt ist, wer vorher Windows verwendet hat für den ist Silverblue allerdings immer noch schlank. Speicherplatz kostet heutzutage nicht mehr die Welt, also ist das meiner Meinung nach zu vernachlässigen, die Vorteile überwiegen hier ganz klar.

Layering ist super langsam und dauert gefühlt ewig, aber so oft macht man das ja nicht.

Allgemein ist Gnome-Software sehr behäbig, ich gehe daher lieber auf Flathub.org stöbere da nach Anwendungen und installiere sie mir schnell im Terminal.

Fedora Silverblue ist bei mir seit 2022 ohne einen einzigen Ausfall täglich im Einsatz, das habe ich mit Manjaro noch nicht geschafft und mit Windows schon gar nicht.

Ich probiere immer wieder andere Distributionen aus, lande am ende aber immer wieder bei Silverblue, irgendwas scheint Fedora da richtig zu machen.

Ich bin zwiegespalten ob ich Silverblue einem Linux Neuling empfehlen würde, aber wenn doch dann wohl mit dieser Handreichung hier.


daswarschonkaputt.tech - Podcast

Wir sind ein Laber-Technik-Lebensweisheiten-Podcast, mit News, Retrogeschichten und gelegentlich Popkulturelles. Bob berichtet was er wieder mal kaputt gemacht hat und Jay erklärt warum es kaputt gegangen ist. Technik ist vergänglich, einiges setzt sich nie durch anderes gerät in Vergessenheit. In unserem Podcast erklären wir dir wie man Emails per Post versendet, Podcasts auf Kassette veröffentlicht, mit einem Raumschiff aus Knetmasse zum Mars fliegt und Linux auf einem Toaster installiert. Außerdem sprechen wir über aktuelle News aus der Technikwelt. Klingt abgedreht? Ist es auch. Hör rein dann verpasst du nichts. Wir senden ein mal monatlich etwa ca.2h also 30min die Woche ;-) KEINE WERBUNG, KEINE VERSTECKTEN KOSTEN.