Nix, NixOS, Nixpkgs, co to wszystko jest?

Do jednych z ciekawszych narzędzi do zarządzania projektem lub całym systemem jest Nix, menedżer pakietów wykorzystujący w pełni funkcyjny język o tej samej nazwie. Działa na wszystkich *NIX systemach, z głównym nastawieniem na Linuxa. Za jego pomocą dzięki małemu plikowi, który często jest mniejszy od standardowego CMakeLists, można zarządzać pakietami, budowaniem, uruchamianiem oraz całym środowiskiem projektu.

A co z tym zarządzaniem systemem?

Nix pozwala utworzyć plik konfiguracyjny dla użytkownika, dzięki czemu można przywrócić swoje środowisko do stanu podobnego jak ten z innej dystrybucji, ponieważ pakiety z Nixpkgs działają wszędzie.

Nixpkgs? A to co?

Jest to po prostu repozytorium z pakietami dla Nix oraz NixOS. Wewnątrz niego umeiszczone są pliki konfiguracyjne języka Nix, w których znajdują się configi bardzo podobne do tych, które można dać do projektu. Różnią się jedynie tym, że pobierają gotowe programy ze stron, weryfikują je oraz w niektórych przypadkach kompilują, gdy nie ma dostępnych wersji zbudowanych wcześniej.

A ten NixOS? Brzmi jak system.

Właściwie to jest dystrybucja Linuxa, która od innych różni się wiele. Pierwszym zauważalną różnicą może być brak instalacji pakietów w sposób, jaki ma to miejsce na innych dystrybucjach. Oczywiście, jest nix-env, ale jest niezalecany, ponieważ nie zostawia po sobie śladu w konfiguracji systemu. Tak, systemu, ponieważ tutaj poza tym dla jednego nużytkownika znanym z Nixa, jest także plik konfiguracyjny dla całego systemu. Instalacja NixOS’a również jest inna, niż każdej innej dystrybucji. Większość rzeczy, takie jak dyski, bootloader, użytkownicy lub strefa czasowa definiuje się właśnie w nim.

Jak to działa w praktyce?

Powiem krótko: wygodnych rozwiązań do każdej z rzeczy, które oferuje Nix, jest bardzo mało, a tu mamy najlepsze do wszystkiego, na co tylko pozwala. Przykładowo przy projektach, gdy wykorzystujemy Nixa do budowania ich, możemy jednym poleceniem zbudować projekt, wskoczyć do środowiska z pobranymi zależnościami lub wyczyścić niepotrzebne pliki po ukończeniu go. W dodatku mamy do dyspozycji Nixpkgs, które obecnie jest większe od AUR.

Podsumowanie

Nix jest bardzo wygodnym narzędziem przy programowaniu, ale także przy codziennym używaniu systemu. Polecam zapoznać się z nim każdemu, kto ma troszkę większe doświadczenie z Linuxem.

Avatar photo Nastolatka zafascynowana technologią, w wolnym czasie programuję, robię cuda z elektroniką i muzykę. Twitter Tweet