Paketmanager Nix ausprobiert, Teil 3: Bedarfsgerecht paketieren

Nix verpackt Programme für andere Nix-Nutzer sowie in Binaries und Docker-Container. Wir zeigen, wie Sie durch binäre Caches die Arbeit mit Nix beschleunigen.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht
, KI Midjourney  Collage c‘t

(Bild: KI Midjourney | Collage c‘t)

Lesezeit: 21 Min.
Von
  • Jacek Galowicz
Inhaltsverzeichnis

Die ersten beiden Artikel zum Paketbau mit Nix 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.

Mehr zum Thema Softwareentwicklung

Den einzigen Unterschied gegenüber der im zweiten Teil der Artikelreihe beschriebenen Datei stellt die neue Zeile nixpkgs-fmt.enable = true; dar. Sie aktiviert eine Formatierungsprüfung für Nix-Dateien.

In diesem Artikel zeigen wir, wie Sie aus Nix noch ein Stück mehr Entwicklerkomfort herauskitzeln und vor allem, wie Sie die gebauten Pakete um Docker-Images und Cross-Kompilate erweitern. Das geht unkompliziert und ohne bereits funktionierende Pakete und Workflows zu behindern. Wie gehabt zieht die CI automatisch mit, wenn sie ebenfalls Nix nutzt.