c't 4/2024
S. 140
Praxis
Nix-Paketmanager
Bild: KI Midjourney | Collage c‘t

Bedarfsgerecht paketiert

Pakete mit Nix managen und bauen, Teil 3

Der Paketmanager Nix verpackt Programme nicht nur für andere Nix-Nutzer, sondern auch in verschiedene Arten von Binaries und Docker-Container. So genießen Entwickler seine Vorteile, ohne Anwender mit Nix zu behelligen. Außerdem zeigt dieser Teil der Artikelserie, wie Sie durch binäre Caches die Arbeit mit Nix beschleunigen.

Von Jacek Galowicz

Die ersten beiden Artikel zum Paketbau mit Nix [1,2] mündeten in einer „Flake“-Datei, die ein kleines C++- und ein Rust-Beispielprogrämmchen verwaltet. Nix-Nutzer können die Programme damit unter Linux und macOS auf Intel- und ARM-Prozessoren bauen, ausführen und installieren. Außerdem prüft ein pre-commit-Hook bei jeder Codeänderung, ob alle Dateien die Formatierungsregeln einhalten und ob Tools für die statische Analyse Probleme erkennen. Ein passender Workflow im CI-System (Continuous Integration) von GitHub prüft all dies auch nach jedem Push und bei jedem Pull-Request automatisch. Nix kümmert sich um alle genannten Dinge und ist die einzige Abhängigkeit, die dafür installiert sein muss.

Diesen Stand der Flake finden Sie über ct.de/ydkj. Den einzigen Unterschied gegenüber der im vergangenen Artikel beschriebenen Datei stellt die neue Zeile nixpkgs-fmt.enable = true; dar. Sie aktiviert eine Formatierungsprüfung für Nix-Dateien (die den auf c’t-Spaltenbreite gequetschten Code der Flake aus dem Artikel zu Recht moniert hätte).

Kommentieren