- Veröffentlichungsdatum
nix-shell für die Entwicklung
- Autoren
- Name
- Thomas Waldecker
Es gibt viele verschiedene Methoden, wie man Entwicklungsumgebungen auf einem System konfiguriert. Als Docker modern war, hat man z.B. alles in Docker-Container gepackt.
Was sind die Anforderungen an die Verwaltung von Entwicklungsumgebungen?
- Effizienz Die Umgebung sollte schnell gestartet werden können, damit die Entwickler effektiv arbeiten können.
- Reproduzierbarkeit Die Umgebung sollte immer wieder identisch sein und reproduzierbar sein.
- Unabhängigkeit Die Umgebung sollte unabhängig von der Hardware oder Softwarekonfiguration des Hostsystems sein.
- Geschwindigkeit Die Abhängigkeiten sollten so schnell wie möglich geladen werden.
Mit einem einfachen shell.nix
Datei kann man diese Anforderungen erfüllen.
Hier ein Beispiel für eine shell.nix
Datei, welche nodejs und yarn installiert:
{ pkgs ? import <nixpkgs> {} }:
pkgs.mkShell {
nativeBuildInputs = with pkgs.buildPackages; [
nodejs_22
yarn-berry
];
}
Ausgeführt wird es dann mit nix-shell
. Und beendet werden kann diese Shell einfach mit exit
.
Es gibt Nix für Linux und macOS. Auf Windows kann man es mit WSL verwenden.
Die Konfiguration ist nicht ganz einfach, aber das Versprechen ein ganzes System per Code zu beschreiben und reproduzierbar zu halten ist enorm.
Das oben genannte Beispiel ist ein sehr einfacher Einsteg in Nix. Ich werde hier mehr über Nix schreiben, da ich von den Vorteilen überzeugt bin.