Das Nachschlagewerk des Kurses. Begriffe und Befehle, auf die sich alle Lektionen beziehen. Zum Ausdrucken gemacht.
pkgs, aus dem du Pakete wie pkgs.git ziehst./nix/store. Jedes Bau-Ergebnis liegt unter
einem Pfad, dessen Hash sich aus allen Inputs ergibt – darum sind zwei
identische Inputs garantiert dasselbe Ergebnis. Quelle der Reproduzierbarkeit.name = wert;-Paaren in
{ … }. Wie ein JSON-Objekt – aber Werte dürfen Funktionen sein.flake.nix (definiert inputs &
outputs) und einer flake.lock. Standardisierter, gepinnter
Einstiegspunkt für reproduzierbare Builds & Dev-Shells.flake.lockinput auf einen exakten
Commit/Hash festnagelt. Commit it. Sie macht „funktioniert bei mir" zu
„funktioniert überall".pkgs.mkShell und betreten mit nix develop
(bzw. nix-shell beim klassischen Weg).mkShellpackages, nativeBuildInputs, inputsFrom und einen
shellHook entgegen.pkgs erweitert oder verändert – z. B. um ein eigenes
Paket oder eine gepatchte Version hinzuzufügen, ohne Nixpkgs zu forken.| Befehl | Wozu |
|---|---|
nix shell nixpkgs#git | Ein Paket ad hoc in eine temporäre Shell holen. |
nix run nixpkgs#hello | Ein Paket einmalig ausführen, ohne es zu installieren. |
nix develop | Die Dev-Shell aus devShells.default betreten. |
nix build | Ein packages.*-Output bauen; Ergebnis als ./result. |
nix flake init | Eine flake.nix aus einer Vorlage anlegen. |
nix flake show | Alle Outputs eines Flakes auflisten. |
nix flake update | Alle Inputs in flake.lock aktualisieren. |
nix flake metadata | Inputs & gepinnte Revisionen anzeigen. |
nix repl | Interaktiv Nix-Ausdrücke auswerten (zum Lernen Gold wert). |
nix search nixpkgs x | Nach Paketen suchen. |
/nix/store materialisieren.
Fehler in der Sprache passieren beim Auswerten; Fehler im Build beim Realisieren.