Nix
Infrastructure-as-Code
Powtarzalne buildy i środowiska z deklaratywnego, czystego opisu.
Nix to menedżer pakietów i system buildów oparty na czystych, deklaratywnych wyrażeniach. Każdy artefakt jest funkcją swoich wejść, więc buildy są powtarzalne i izolowane — to samo wejście zawsze daje ten sam wynik, niezależnie od maszyny. Z flakes opisujesz środowiska deweloperskie, pakiety i całe systemy (NixOS) w jednym, wersjonowanym pliku.
Kiedy używać
- Chcesz identycznych środowisk dev/CI/prod, bez „u mnie działa”.
- Potrzebujesz powtarzalnych, audytowalnych buildów.
- Zarządzasz wieloma toolchainami bez konfliktów wersji.
Przykład użycia
# flake.nix — środowisko deweloperskie
{
outputs = { self, nixpkgs }: {
devShells.x86_64-linux.default =
with nixpkgs.legacyPackages.x86_64-linux;
mkShell { packages = [ nodejs_20 git ]; };
};
}
nix develop # wchodzisz w powłokę z dokładnie tymi narzędziami
Warto wiedzieć
- Krzywa wejścia jest stroma, ale powtarzalność jest bezkonkurencyjna.
flakesto dziś de facto standard; przypina wersje przezflake.lock.