← Katalog
E I A C

Nix

Infrastructure-as-Code

Powtarzalne buildy i środowiska z deklaratywnego, czystego opisu.

★ 13 000 LGPL-2.1 #iac#reproducible#packaging#dev-env

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.
  • flakes to dziś de facto standard; przypina wersje przez flake.lock.