Chociaż możesz uruchamiać aplikacje pod NixOS, ponieważ są one zgodne z powyższym standardem, pliki nie są tam, gdzie byłyby w innym systemie. Twórcy NixOS i GNU Guix mają silne opinie na temat tego systemu i wymyślili sprytne sposoby na jego przestrzeganie.
Inny system
Twój system przechowywania oprogramowania wpływa na funkcjonalność w sposób znacznie głębszy, niż się wydaje na pierwszy rzut oka. Aby oprogramowanie mogło znaleźć potrzebne pliki, NixOS używa dowiązań symbolicznych. Każda aplikacja ma swój własny katalog, który zawiera plik wykonywalny i linki do bibliotek, które ją uruchamiają.
Dzięki temu systemowi organizacji możesz mieć jednocześnie zainstalowane różne pliki i wersje. Domyślnie wszystkie pakiety i ich zależności powinny się skompilować podczas instalacji. Wymaga to jednak dużo czasu i mocy obliczeniowej przy każdej instalacji, są pamięci podręczne.
Ściąganie
W NixOS zawsze jest więcej niż jeden sposób na zrobienie czegoś. Podobnie jak inne dystrybucje, w NixOS masz ISO na pamięci USB. Masz wybór, w jaki sposób chcesz zainstalować NixOS w swojej dystrybucji. Zanim jednak omówimy ten temat bardziej szczegółowo, ważne jest, aby zrozumieć, że istnieją dwie nieco mylące części tego procesu.
Po pierwsze, Nix różni się od NixOS i musisz zrozumieć różnicę między Nix, menedżerem pakietów, a NixOS, który konfiguruje twój system. Możesz pobrać menedżera pakietów Nix i używać go w bieżącym systemie. Dzięki niemu możesz przechowywać wiele wersji aplikacji w swoim systemie bez ich wzajemnego zakłócania.
Po drugie, w NixOS, chociaż nie możesz zadeklarować schematu partycjonowania, wszystko inne można zostawić w jednym pliku. Większość użytkowników pozostawia w spokoju automatycznie utworzony plik konfiguracji sprzętu. Kiedy zaczynasz, możesz zachować swoje pakiety zadeklarowane w pliku, ale z czasem prawdopodobnie utworzysz osobne pliki, które zaimportujesz do pliku konfiguracyjnego.
Partycjonowanie
Przed instalacją musisz podzielić dyski na partycje. W innych dystrybucjach istnieją wartości domyślne, które możesz zaakceptować; jednak w przypadku NixOS musisz wykonać własne partycjonowanie. Partycjonowanie nie jest zbyt skomplikowane, ale możesz mieć kłopoty, gdy musisz ustawić konfigurację dla wybranego schematu partycjonowania. Ważne jest, aby zrozumieć, że instrukcje i skrypty wolą, jeśli twoje systemy plików są poprawnie oznaczone.
Standardowa instrukcja pokazuje polecenia partycjonowania. Pamiętaj, że polecenia różnią się dla dysku UEFI i MBR, a ustawienie błędnych wartości spowoduje wiele problemów. Instrukcja sugeruje użycie podanych poniżej wartości do początkowej instalacji, ale naprawdę łatwo jest przetestować nowe wartości.
Przegrody standardowe:
MBR:
parted /dev/sda -- mkpart primary 1MiB -8GiB
parted /dev/sda -- mkpart podstawowy linux-swap -8GiB 100%
UEFI:
parted /dev/sda -- mklabel gptparted /dev/sda -- mkpart primary 512MiB -8GiB
parted /dev/sda -- mkpart podstawowy linux-swap -8GiB 100%
parted /dev/sda -- mkpart ESP fat32 1MiB 512MiB
parted /dev/sda -- ustaw 3 esp na
Montaż przegród w MBR:
mkswap -L swap /dev/sda2zamontować /dev/disk/według etykiety/nixos
Montaż partycji w UEFI:
montuj /dev/disk/według etykiety/nixos /mntmkdir -p /mnt/boot
zamontować /dev/disk/według etykiety/boot /mnt/boot
W następnej sekcji dowiesz się, jak utworzyć plik konfiguracyjny.
Plik konfiguracyjny
Po skonfigurowaniu dysków możesz rozpocząć proces konfiguracji. W NixOS najpierw konfigurujesz, a potem instalujesz. Poniższe instrukcje zakładają, że uruchomiłeś system za pomocą ISO, ale możesz uruchomić system za pomocą chroot.
Dzięki nixos-generate-config system generuje standardowy plik konfiguracyjny.
$ nixos-generate-config -root /mntTo polecenie tworzy dwa pliki: /mnt/etc/nixos/hardware-configuration.nix (nie zmieniasz tego pliku) i /mnt/etc/nixos/configuration.nic. Możesz edytować drugi plik w swoim ulubionym edytorze.
Zwykle opcje nie zmieniają się w zależności od metody użytej do rozruchu. Możesz użyć gruba lub innej konfiguracji rozruchu. Opcji jest wiele, ale oto kilka standardów.
Dodaj ten wiersz tylko dla MBR:
bagażnik.ładowarka.żarcie.urządzenie = "dev/sda";Dodaj te wiersze tylko dla UEFI:
bagażnik.ładowarka.systemd-boot.umożliwić = prawda;bagażnik.ładowarka.efi.canTouchEfiVariables = prawda;
Zmień pliki konfiguracyjne tak mało, jak to możliwe, aby rozpocząć. Wszystkie te wartości znajdują się w oryginalnym pliku: po prostu je odkomentuj i wprowadź zmiany, aby dopasować je do swoich potrzeb.
sieci.hostName = "nixos";użytkownicy.użytkownik.nixos =
isNormalUser = prawda;
extraGroups = " koło"
środowisko.pakiety systemowe = z pakietami [
wget vim
];
usługi.opensh.umożliwić = prawda;
Dodaj pakiety, których chcesz użyć jako pakiety standardowe. Wszystkie standardowe pakiety są umieszczane w nawiasach kwadratowych z wget i vim. Możesz zainstalować więcej pakietów po uruchomieniu systemu.
Budynek
Gdy plik konfiguracyjny jest poprawny, możesz uruchomić instalację.
$ nixos-instalacjaNastępnie instalator poprosi o hasło roota, które będzie używane w prawdziwym systemie. Wszystkie programy zostaną skompilowane lub pobrane z pamięci podręcznej.nixpkgs.org, a następnie zainstalowany w sklepie nix na twoim komputerze. Następnie możesz ponownie uruchomić komputer i powinieneś otrzymać monit o zalogowanie.
$ restartTeraz podaj hasło dla swojego użytkownika za pomocą root. Użytkownik zdefiniowany w pliku konfiguracyjnym będzie miał również katalog domowy.
Nowa konfiguracja
Po wykonaniu powyższych kroków możesz pobawić się plikiem konfiguracyjnym. Kiedy coś zmienisz, wypróbuj to bez instalowania w następujący sposób:
$ test odbudowy nixosaGdy masz nowe wartości, które działają dobrze, uruchom polecenie odbuduj:
$ przełącznik nixos-rebuildTeraz zobaczysz, czy poprawnie ustawiłeś wartości rozruchowe. Należy pamiętać, że zmiany w konfiguracji są odwracalne. Możesz po prostu zrestartować komputer, wybrać starszą wersję, nazywaną generacją, i spróbować ponownie. Jednak każda konfiguracja wymaga miejsca na dysku, więc upewnij się, że znasz funkcję odśmiecania collection.
Wniosek
NixOS wymaga kilku ręcznych czynności, aby skonfigurować, ale możesz wrócić do działającego systemu znacznie szybciej niż w przypadku innych systemów. Co więcej, kontrola wersji jest łatwiejsza, jeśli potrzebujesz wielu wersji tej samej aplikacji lub jeśli potrzebujesz wielu wersji tych samych bibliotek. Na pierwszy rzut oka może wydawać się, że istnieje wiele ograniczeń, ale te ograniczenia można przezwyciężyć za pomocą bardziej zaawansowanych części systemu.