Co robi menedżer pakietów Nixos?
Większość menedżerów pakietów używa pliku zawierającego kod wykonywalny lub źródłowy. Następnie obliczają, czego potrzebuje w systemie, a następnie upewniają się, że istnieje. W Nix sprawy działają bardzo podobnie. Duża różnica polega na tym, że Nix tworzy wszystkie pliki i kompiluje je w razie potrzeby, a następnie umieścić je w jednym miejscu; Sklep Nix. Pierwsze pytanie, które masz, brzmi: „Czy pliki nie będą miały tej samej nazwy?„System unika tego, mając jeden katalog dla każdej wersji i nazywając wszystkie pliki z skrótem. Aby aplikacja „czuć się jak w domu”, wszystkie zależności są następnie powiązane z ich poprawnymi katalogami za pomocą zwykłych symboli. Profil śledzi, która wersja działa każdy użytkownik.
Instalacje użytkowników NIXOS
Dzięki temu systemowi możesz mieć zainstalowane różne wersje w katalogu każdego użytkownika. Jeśli są takie same u kilku użytkowników, administrator może pozwolić Nixowi na ponowne łączenie plików binarnych, więc tylko jeden istnieje. Jest to przydatne w oszczędzaniu miejsca na dysku. Możesz także tworzyć określone środowiska dla każdej wersji pakietu. Jest to szczególnie przydatne, gdy chcesz przetestować nową wersję lub opracować oprogramowanie.
Instalowanie dla wspólnej dystrybucji
W przypadku najczęstszych platform można zainstalować NIX, menedżer pakietów z prostym skryptem. Ten skrypt jest dostępny na stronie NIX. Skrypt będzie wymagał dostępu użytkownika root, ale jeśli jesteś bardzo świadomy bezpieczeństwa, powinieneś przeczytać skrypt przed użyciem. Jeśli chcesz uniknąć używania korzenia w skrypcie, po prostu utwórz katalog /NIX w swoim systemie.
$ sh <(curl -L https://nixos.org/nix/install)
Jeśli nie masz dostępu do root lub po prostu super ostrożnie, możesz mieć NIX jako menedżera pakietów tylko użytkownika.
$ sh <(curl -L https://nixos.org/nix/install) -no-daemon
Ten binarny działa dobrze dla większości, jeśli nie wszystkich, dystrybucji. Platformy to x8664, i?86, AARCH64 i x8664-Darwin, które obejmują prawie wszystkie dostępne platformy. Jeśli używasz innych platform, prawdopodobnie możesz użyć kodu źródłowego i zbudować własny. Po zakończeniu instalacji będziesz mieć kilka nowych poleceń.
Dodanie pierwszego programu do Nixos
Aby zainstalować oprogramowanie i ustawić, gdy można go użyć, masz NIX-ENV. Opcja instalacji (-I) jest najczęstsza, ponieważ używasz go zawsze i umieszczasz pakiet jako argument.
$ Nix -env -i Firefox
Wygląda to tak samo jak w innych dystrybucjach, podobnie jak argument zapytania. Instalacja zajmie jednak trochę czasu. Powodem jest to, że musi on skompilować oprogramowanie, chyba że w pamięci podręcznej NIX jest wersja wstępnie skompilowana. Osiągnięcie pamięci podręcznej nie zawsze jest bardzo szybkie. Istnieje różnica, którą powinieneś zwrócić uwagę; Możesz wybrać wersję! Jeśli chcesz specjalnej wersji, musisz znaleźć dostępne przy użyciu wyrażeń regularnych.
$ nix -env -qa 'firefox.*”
Otrzymasz listę wszystkich dostępnych pakietów. Możesz go zainstalować w ten sam sposób, ale używając wartości na liście.
$ Nix-ENV -Install 'Firefox-78.4.0ser '-Preserve instaled
Może to zawieść, jeśli masz już zainstalowaną wersję. Opcja „-Preserve-instaled” nie usunie zainstalowanej wersji. Możesz skończyć z dwiema wersjami tego samego priorytetu, które możesz naprawić, ustawiając priorytet.
$ NIX-ENV -Set-Flag Priorytet 2 'Firefox-82.0.2 '
Teraz uruchomisz starą wersję następnym razem, gdy zaczniesz Firefox. Aby zmienić, który uruchomisz, możesz odpowiednio ustawić priorytet. Możesz także uruchomić skorupę, aby wybrać binarny. To jest opcja programisty, a poleceniem jest Nix-Shell.
Aktualizacja Nixos
Po zbiorze oprogramowania chcesz być na bieżąco. Tak samo jak zawsze, używasz tego samego polecenia z argumentem. Ale musisz także informować kanał. Poleceniem jest kanał Nix.
$ Nix -Channel -update
To odczytuje aktualne wersje wszystkich dostępnych pakietów. Następnie możesz rozpocząć aktualizację oprogramowania za pomocą NIX-ENV.
$ nix -env -upgrade
Taka aktualizacja uaktualni twoją starą wersję oprogramowania. W tym przypadku stary Firefox zostanie zastąpiony najnowszą wersją. Możesz tego nie chcieć z jakiegokolwiek powodu, zwykle rozwoju.
Usuwanie aplikacji z Nixos
Usunięcie aplikacji jest równie proste, z małym zastrzeżeniem. Żadne aplikacje nie są usuwane przez polecenie Usuń.
$ Nix-ENV -Unstall 'Firefox-78.4.0ser '
To polecenie usunie linki do bieżącej kompilacji tej wersji Firefox. Wszystkie pliki zawsze pozostaną na dysku. Masz dostępne wersje do wycofania. Rolot oznacza, że wracasz do korzystania z starej wersji. Może to być przydatne, jeśli wypróbowałeś najnowsze i ma nieprzewidziane problemy.
$ Nix -ENV -Rollback
Cofasz całe pokolenie, co oznacza wszystkie programy, które zostały zaktualizowane od ostatniego pokolenia. Opcja uruchamia dwa polecenia; ta lista, a następnie przełącza się na stare pokolenia. Wszystkie zainstalowane pakiety istnieją w pokoleniu na dysku.
Nixos Roll-Back i czyszczenie
Funkcja cofania doprowadzi do użycia wielu przestrzeni na dysku starych. Możesz to wyczyścić (musisz to wyczyścić!). Kiedy masz wystarczająco długi okres, według własnego wyboru, możesz również wyczyścić te stare pokolenia, aby zaoszczędzić miejsce na dysku.
$ Nix-ENV -Delete-Generations Old
Dzięki temu poleceniu usuwasz wszystkie pokolenia z wyjątkiem dwóch ostatnich. Możesz iść tam iz powrotem na liście z bardziej złożonymi parametrami, aby pozostawić konkretne pokolenie, które najlepiej dla Ciebie działało. O ile nie masz wielu projektów testowych lub rozwojowych, które potrzebują wielu wersji do testowania, powinieneś użyć zaplanowanego usunięcia wszystkich starych pokoleń.
Prosty skrypt, który utrzymuje generacje w czystości.
$ Nix-Collect-Garbage
Powinieneś również skonfigurować kolekcjoner, aby działał automatycznie za pomocą systemów lub innych systemów.
Wniosek
Nix Package Manager to potężny system, który może sprawić, że uruchamiasz złożone środowiska programistyczne na komputerze. Możesz również użyć go, aby utrzymać porządek oprogramowania i mieć prosty sposób na odzyskanie nowej maszyny, jeśli wystąpi katastrofa awarii dysku.