Topgrade ermittelt alle auf einem System installierten Paketmanager und führt sie nacheinander auf der Kommandozeile aus.
Die Zeiten, in denen Anwendungspakete bevorzugt aus den Archiven der genutzten Distribution stammten, sind für das Gros der Anwender heute definitiv vorbei. Neben Repositories aus dritter Hand sowie Flatpaks, Appimages und Snaps tummeln sich in unseren Dateisystemen Installationen per PIP (Python), Cargo (Rust), NPM (Node.js) oder Homebrew (MacOS). Alle arbeiten an den Update-Mechanismen des Betriebssystems vorbei und müssen somit auch jeweils separat aktualisiert werden.
Einen Ausweg aus dieser unkomfortablen Situation will der Paketmanager Topgrade schaffen, der kürzlich nach fünf Jahren vom ursprünglichen Entwickler aufgegeben wurde [1] und den die Community jetzt als Topgrade-rs [2] weiterführt. Wir nennen das Tool im Folgenden der Einfachheit halber schlicht Topgrade und beziehen uns dabei auf den Community-Fork.
Einer für alle
Topgrade verspricht, alle im System genutzten Paketmanager über einen einzigen Befehl im Terminal nacheinander zu starten und verfügbare Updates dafür zu installieren, auch auf entfernten Rechnern. Das gilt nicht nur für Linux, sondern auch für das Windows-Subsystem für Linux (WSL), für Chocolatey und Scoop unter Windows sowie für FreeBSD und Dragonfly BSD. Firmware aus dem Linux Vendor Firmware Service (LFVS) bindet Topgrade per Fwupd ein [3]. Zudem aktualisiert das Tool eine Menge an Software wie etwa Pi-hole, Tmux- und Vim-Plugins und vieles mehr. Eine Übersicht finden Sie auf Github [4].
Topgrade steht im AUR von Arch Linux zur Verfügung, und somit auch auf Manjaro und anderen Arch-Ablegern. NixOS und Void Linux bieten das Tool ebenfalls an. Auf der Github-Instanz des Projekts finden Sie den Quellcode sowie Binärpakete für die Architekturen x86_64, Aarch64 und ARMv7 sowie für Apple Darwin und Windows.
Topgrade benötigt das in vielen Distributionen bereits enthaltene Rust mindestens in Version 1.6.2. Sie überprüfen die Versionsnummer mit dem Befehl rustc --version. Bei Debian benötigen Sie mindestens Debian Testing, um Version 1.6.3 bereitzustellen. Bei Ubuntu genügt das Release 22.04, auch Fedora 37 bringt die passende Version mit. Sollte der Befehl bei Ihnen Rustc nicht finden, installieren Sie das Paket über den Paketmanager der verwendeten Distribution und überprüfen anschließend die Version.
Cargo-Installer
Der einfachste Weg zur Installation von Topgrade führt – ironischerweise am jeweiligen nativen Paketsystem vorbei – über den Rust-Paketmanager Cargo. Den müssen Sie auf den meisten Systemen zunächst samt einiger Abhängigkeiten über die Paketverwaltung installieren (Listing 1, Zeile 2 oder 4) und dann aktualisieren (Zeile 6).
Listing 1
Installation
### Cargo unter Debian einrichten $ sudo apt install cargo pkg-config libssl-dev ### Cargo unter Fedora einrichten $ sudo dnf install cargo pkg-config openssl-devel ### Cargo-Update $ cargo install cargo-update ### Topgrade einrichten $ cargo install topgrade
Als Nächstes richten Sie Topgrade selbst ein (Zeile 8). Der letzte Schritt des Build-Prozesses kann einige Minuten dauern. Anschließend ergänzen Sie den Suchpfad am Ende der Datei ~/.profile mit folgender Zeile (Abbildung 1):
export PATH=$PATH:$HOME/.cargo/bin
Abbildung 1: Der Build-Prozess erinnert Sie abschließend daran, das Cargo-Verzeichnis in den Pfad aufzunehmen.
Topgrades Konfigurationsdatei ~/.config/topgrade.toml erlaubt generelle sowie spezifische Einstellungen für einzelne Paketmanager. Dort legen Sie auch per Host-Name fest, welche entfernten Rechner Sie per SSH aktualisieren möchten. Voraussetzung dafür ist ein dort bereits installiertes Topgrade.
Sobald Sie dann den Befehl topgrade absetzen, führt die Anwendung die Befehle zur Aktualisierung bei allen auf Ihrem System entdeckten Paketmanagern aus. Sie beginnt dabei mit dem nativen Paketmanagement der Distribution, gefolgt von Flatpak und Snap sowie den weiteren Kandidaten (Abbildung 2).

Abbildung 2: Nach der nativen Aktualisierung und dem Upgrade der Flatpaks oder Snaps evaluiert Topgrade, ob es zu aktualisierende Firmware gibt.
Fazit
Topgrade ist kein Hexenwerk. Es stellt lediglich die Logik bereit, um alle vorhandenen Paketmanager zu erkennen und nacheinander auszuführen. Für Jünger der reinen Lehre, die ausschließlich das Paketmanagement der Distribution nutzen möchten, eignet sich Topgrade nicht. Verwenden Sie allerdings Flatpaks oder Snaps und betreiben einen Raspberry Pi oder einen Server mit Pi-hole oder anderen Diensten, dann erleichtert Topgrade die Administration deutlich.
In unseren Tests funktionierte die Systemaktualisierung via Topgrade unter Debian, Ubuntu und Fedora (Abbildung 3) ohne jedes Problem. Distrobox wurde als einzige Software nicht aufgefrischt. Da der Autor die Ursache nicht ergründen konnte, reichte er einen Bug-Report ein. (tle/jlu)

Abbildung 3: Die Aktualisierungsreihenfolge ist auf allen Systemen dieselbe. Hier handelt es sich um eine frische Installation von Fedora 38, sodass Topgrade nicht viel zu tun hat.
Infos
-
Topgrade: https://github.com/r-darwish/topgrade
-
Topgrade-rs: https://github.com/topgrade-rs/topgrade
-
LVFS: https://linuxnews.de/2021/03/03/lvfs-verteilt-25-mio-firmware-und-bios-versionen/
-
Unterstützte Paketmanager: https://github.com/r-darwish/topgrade/wiki/Step-list





