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.