// HEISE ONLINE — LINUX & OPEN SOURCE
Shelly: Ein Werkzeug für Pacman, AUR, AppImages und Flatpak
Das Arch-Werkzeug Shelly wechselt von .NET zu Zig: Neue GUI, überarbeitete CLI und getrennte Flatpak-Unterstützung sollen es schlanker machen.
Das Paketwerkzeug Shelly ist in Version 3.0.0 erschienen. Die Entwickler haben Paketverwaltung, Kommandozeile, Schlüsselverwaltung und GTK4-Oberfläche weitgehend neu in Zig implementiert. Dadurch entfällt für die Hauptanwendung die verwaltete .NET-Laufzeit; zugleich kann Shelly native Bibliotheken direkter nutzen. Messwerte zu Startzeit und Ressourcenbedarf stehen allerdings noch aus.
Shelly ist ein grafisches und kommandozeilenbasiertes Werkzeug zur Verwaltung von Arch-Paketen. Es bindet neben den regulären Pacman-Repositories auch das Arch User Repository (AUR), AppImages und optional Flatpaks ein. Damit richtet sich das Projekt an Nutzer, die Software aus mehreren Quellen mit einer Oberfläche und einer Kommandozeile verwalten wollen.
Mit Version 3 ersetzt Shelly seine bisherige C#-/.NET-Codebasis weitgehend durch Zig. Die bekannten Programme shelly und shelly-ui bleiben erhalten. Hinter ihnen steht jedoch eine weitgehend neue Codebasis. Auch das Werkzeug für die Schlüsselverwaltung wurde umgestellt: Das eigenständige Programm heißt nun shelly-key statt shelly-keys.
Zig passt zu Shelly vor allem, weil die Software native Schnittstellen wie libalpm, GTK4 und libarchive ohne eine zusätzliche .NET-Interop-Schicht direkt ansprechen kann. libalpm ist die Bibliothek, auf der Pacman, der Paketmanager von Arch Linux, aufsetzt. Die neue Implementierung spart damit die bisherige Vermittlung zwischen verwaltetem .NET-Code und nativen Bibliotheken weitgehend ein.
Zig verwaltet zudem Speicher und Ressourcen explizit: Die Release Notes heben klarere Besitzverhältnisse und besser vorhersehbare Lebenszyklen für Ressourcen hervor. Das soll die technische Grundlage robuster und leichter wartbar machen.
Auch die grafische Anwendung haben die Entwickler in Zig neu geschrieben. Sie bietet weiterhin Paketansichten als Liste oder Raster. Hinzu kommen sortierbare Spalten, Filter für installierte Pakete sowie ausführlichere Angaben zu Paketquellen und Abhängigkeiten.
Für das AUR überarbeitet Shelly unter anderem die Auswahl optionaler Abhängigkeiten, Vorschauen für PKGBUILD-Dateien und die Anzeige der makepkg-Ausgabe. Vor AUR-Updates kann Shelly nun alle geänderten PKGBUILDs gesammelt zur Prüfung anzeigen, bevor die Transaktion beginnt. Ein PKGBUILD legt fest, wie ein AUR-Paket aus seinen Quellen gebaut wird. Die Vorschau hilft Nutzern daher, Änderungen vor dem Paketbau nachzuvollziehen.
Die Fortschrittsanzeige für Aktualisierungen und Transaktionen soll auch längere Vorgänge darstellen, ohne die Oberfläche zu blockieren. Wartungsfunktionen bündelt Shelly auf einer neuen Seite für Dienstprogramme. Dazu zählen die Synchronisierung der Paketdatenbanken, das Beheben veralteter Sperrdateien, die Cache-Bereinigung und das Entfernen verwaister Pakete.
Die CLI wurde ebenfalls von Grund auf neu geschrieben. Sie behält sowohl ausgeschriebene Befehle als auch Pacman-ähnliche Kurzoptionen. Ein gemeinsamer Befehlskatalog dient als Grundlage für Hilfe, Dokumentation und Shell-Vervollständigungen. Neben Fish und Zsh kann Shelly nun auch Vervollständigungen für Bash erzeugen.