Wyszukiwanie w witrynie

Nix - czysto funkcjonalny menedżer pakietów dla systemu Linux


Nix to potężny, czysto funkcjonalny system zarządzania pakietami, przeznaczony do niezawodnego i powtarzalnego zarządzania pakietami, wydany na warunkach licencji GNU LGPLv2.1. Jest to główny system zarządzania pakietami w NixOS, mniej znanej dystrybucji Linuksa.

Nix oferuje atomowe aktualizacje i wycofywanie zmian, wiele wersji instalacji pakietów, zarządzanie pakietami dla wielu użytkowników i łatwą konfigurację środowisk kompilacji pakietu, niezależnie od języków programowania i narzędzi używanych przez programistę.

W Nix pakiety są budowane z funkcjonalnego języka pakietów zwanego „wyrażeniami Nix”. To funkcjonalne podejście do zarządzania pakietami gwarantuje, że instalacja lub aktualizacja jednego pakietu nie spowoduje uszkodzenia innych pakietów.

Nix obsługuje także wielu użytkowników, co oznacza, że zwykli (lub nieuprzywilejowani) użytkownicy systemu mogą bezpiecznie instalować pakiety, a każdy użytkownik jest identyfikowany poprzez profil (zbiór pakietów w sklepie Nix, który pojawia się w PATH użytkownika).

W przypadku, gdy jeden użytkownik zainstalował pakiet, a inny użytkownik spróbuje zainstalować ten sam pakiet, pakiet nie zostanie zbudowany ani pobrany po raz drugi.

Obecnie obsługuje Linux (i686, x86_64) i Mac OS X (x86_64). Jest jednak dość przenośny, można go wypróbować na większości platform obsługujących wątki POSIX i posiadających kompilator C++ 11.

W tym artykule pokażemy, jak zainstalować (w trybie wielu użytkowników) i używać menedżera pakietów Nix w systemie Linux. Omówimy niektóre podstawowe zadania związane z zarządzaniem pakietami w odniesieniu do powszechnie używanych narzędzi.

Jak zainstalować Menedżera pakietów Nix w systemie Linux

Zainstalujemy najnowszą wersję Nix (v2.1.3 w momencie pisania tego tekstu) w trybie wielu użytkowników. Na szczęście istnieje gotowy skrypt instalacyjny, który możesz uruchomić z powłoki jako zwykły użytkownik, używając następującego polecenia curl w swoim systemie.

sh <(curl https://nixos.org/nix/install) --daemon

Uruchomienie powyższego polecenia spowoduje pobranie najnowszego binarnego archiwum nix i wylądujesz na ekranie instalacji nix dla wielu użytkowników, jak pokazano na zrzucie ekranu.

Aby wyświetlić szczegółową listę wydarzeń podczas procesu instalacji, wpisz y i naciśnij Enter. Jeśli jesteś zadowolony i gotowy, aby kontynuować, wpisz y i naciśnij Enter.

Skrypt będzie wywoływał polecenie sudo wiele razy, jeśli zajdzie taka potrzeba. Musisz zezwolić mu na używanie sudo, odpowiadając na y i naciskając Enter.

Instalator przeprowadzi następnie kilka testów i wygeneruje raport konfiguracji Nix, utworzy użytkowników kompilacji o identyfikatorach użytkowników 30001 i 30032 oraz grupę o identyfikatorze grupy 30000. Wpisz y, aby kontynuować po wyświetleniu monitu. Skonfiguruje grupy kompilacji dla różnych użytkowników kompilacji, tworząc podstawową strukturę katalogów Nix.

Zmodyfikuje plik /etc/bashrc (oraz /etc/zshrc dla zsh), jeśli istnieją. Pamiętaj, że najpierw tworzy kopię zapasową wspomnianych plików z rozszerzeniem .backup-before-nix, a instalator tworzy również plik /etc/profile.d/nix.sh.

Instalator skonfiguruje także usługę nix-daemon i usługę gniazda nix-daemon, załaduje jednostkę systemową dla nix-daemon i uruchomi dwie wyżej wymienione usługi.

Po zakończeniu instalacji musisz otworzyć nowe okno terminala, aby rozpocząć korzystanie z Nix. Alternatywnie zamknij i otwórz ponownie powłokę, aby zastosować ostatnie zmiany. Następnie pobierz plik /etc/profile.d/nix.sh (ponieważ nie jest to plik startowy powłoki, otwarcie nowej powłoki nie spowoduje jego pobrania).

source /etc/profile.d/nix.sh

Następnie uruchom następujące polecenie, aby pobrać niektóre ścieżki z oficjalnej strony projektu, wymagane do działania Nix. Po pobraniu i skopiowaniu wszystkich ścieżek do właściwych lokalizacji zobaczysz podsumowanie typu instalacji systemu i nix, jak pokazano na zrzucie ekranu.

nix-shell -p nix-info --run "nix-info -m"

Jak korzystać z Menedżera pakietów Nix w systemie Linux

W Nix zarządzanie pakietami odbywa się za pomocą narzędzia nix-env. Służy do instalowania, aktualizowania i usuwania/kasowania pakietów oraz do sprawdzania, jakie pakiety są zainstalowane lub dostępne do instalacji.

Wszystkie pakiety znajdują się w kanale Nix, który jest adresem URL wskazującym repozytorium zawierające zarówno kolekcje wyrażeń Nix, jak i wskaźnik do binarnej pamięci podręcznej.

Domyślnym kanałem jest Nixpkgs, a lista subskrybowanych kanałów jest przechowywana w ~/.nix-channels. Możesz je wyświetlić za pomocą poniższego polecenia (brak wyjścia oznacza brak kanałów) .

nix-channel --list

Aby dodać kanał Nix, użyj następującego polecenia.

nix-channel --add https://nixos.org/channels/nixpkgs-unstable

Zanim zainstalujesz jakiekolwiek pakiety, zacznij od aktualizacji kanału Nix; przypomina to uruchomienie apt update w menedżerze pakietów APT.

nix-channel --update

Za pomocą następującego polecenia możesz sprawdzić, jakie pakiety są dostępne do instalacji.

nix-env -qa

W tym przykładzie zainstalujemy serwer Apache Tomcat za pomocą poprzedniego polecenia w połączeniu z grep, aby sprawdzić, czy pakiet jest dostępny do zainstalowania, jak pokazano.

nix-env -qa | grep "apache-tomcat"

Aby zainstalować pakiet, użyj następującego polecenia, określając wersję pakietu, na przykład apache-tomcat-9.0.2.

nix-env -i apache-tomcat-9.0.2

W systemie lokalnym Nix przechowuje pakiety w sklepie Nix, który domyślnie jest katalogiem /nix/store, gdzie każdy pakiet ma swój własny, unikalny podkatalog. Na przykład pakiety apache-tomcat są przechowywane w:

/nix/store/95gmgnxlrcpkhlm00fa5ax8kvd6189py-apache-tomcat-9.0.2

W tej ścieżce losowe znaki 95gmgnxlrcpkhlm00fa5ax8kvd6189py stanowią unikalny identyfikator pakietu uwzględniający wszystkie jego zależności.

Możesz wyświetlić listę zainstalowanych pakietów za pomocą następującego polecenia.

nix-env -q

Aby zaktualizować pakiet apache-tomcat, możesz użyć przełącznika aktualizacji -u, jak pokazano.

nix-env -u apache-tomcat

Jeśli chcesz usunąć/wymazać apache-tomcat, użyj flagi -e. W tym przypadku pakiet nie jest natychmiast usuwany z systemu, a jedynie pozostaje nieużywany. Jest to przydatne, ponieważ chcesz przywrócić zmiany lub może to nastąpić w profilach innych użytkowników.

nix-env -e apache-tomcat

Po usunięciu pakietu możesz wyczyścić śmieci za pomocą narzędzia nix-collect-garbage.

nix-collect-garbage

Jak usunąć Menedżera pakietów Nix w systemie Linux

Aby odinstalować Nix, usuń za jednym razem wszystkie pliki powiązane z Nix.

sudo rm -rf /etc/profile/nix.sh /etc/nix /nix ~root/.nix-profile ~root/.nix-defexpr ~root/.nix-channels ~/.nix-profile ~/.nix-defexpr ~/.nix-channels

W systemach z systemem systemd uruchom następujące polecenia, aby zatrzymać wszystkie usługi związane z Nix i je wyłączyć.

sudo systemctl stop nix-daemon.socket
sudo systemctl stop nix-daemon.service
sudo systemctl disable nix-daemon.socket
sudo systemctl disable nix-daemon.service
sudo systemctl daemon-reload

Ponadto musisz usunąć wszelkie odniesienia do Nixa z tych plików: /etc/profile, /etc/bashrc i /etc/zshrc >.

Aby uzyskać więcej informacji, zobacz strony podręcznika powyższych narzędzi, które sprawdziliśmy.

man nix-channel
man nix-env

Dokumentację Menedżera pakietów Nix można znaleźć na stronie projektu: https://nixos.org/nix/.

Streszczenie

Nix to czysto funkcjonalny menedżer pakietów przeznaczony do niezawodnego i powtarzalnego zarządzania pakietami. Zapewnia interesującą koncepcję zarządzania pakietami, bardzo odmienną od powszechnie używanych narzędzi w systemie Linux, takich jak YUM, APT i wiele innych.

W tym artykule pokazaliśmy, jak zainstalować nix w trybie wielu użytkowników i omówiliśmy, jak zarządzać pakietami za pomocą Nix. Podziel się z nami swoimi przemyśleniami lub zadaj pytania za pomocą poniższego formularza komentarza. Na koniec w nadchodzącym artykule wyjaśnimy więcej poleceń zarządzania pakietami Nix. Do tego czasu pozostań w kontakcie.