Podczas gdy możesz uruchamiać aplikacje pod NIXOS, ponieważ podążają za powyższym standardem, pliki nie są tam, gdzie byłyby w innym systemie. Twórcy Nixos i GNU Guix mają mocne opinie na temat tego systemu i wymyślili sprytne sposoby przestrzegania tego.
Inny system
Twój system przechowywania oprogramowania wpływa na funkcjonalność w sposób znacznie głębszy, niż się wydaje. Aby oprogramowanie mogło znaleźć potrzebne pliki, Nixos używa SymLinks. Każda aplikacja ma swój własny katalog, który zawiera wykonywalny i linki do bibliotek, które ją uruchamiają.
Dzięki temu systemowi organizacji możesz mieć zainstalowane jednocześnie różne pliki i wersje. Domyślnie wszystkie pakiety i ich zależności powinny się skompilować podczas instalacji. Jednak wymaga to dużo czasu i mocy obliczeniowej, aby to zrobić przy każdej instalacji, są pamięci podręczne.
Ściąganie
Z Nixos zawsze jest więcej niż jeden sposób, aby coś zrobić. Podobnie jak inne dystrybucje, z Nixos, masz ISO na patyku USB. Masz możliwości opcji dotyczących zainstalowania NIXOS w swojej dystrybucji. Jednak zanim 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 i Nixos, który konfiguruje Twój system. Możesz pobrać menedżer pakietów NIX i użyć go w bieżącym systemie. Dzięki temu możesz przechowywać wiele wersji aplikacji w systemie bez ich ingerowania.
Po drugie, z Nixos, chociaż nie można zadeklarować schematu partycjonowania, wszystko inne można pozostać w jednym pliku. Większość użytkowników pozostawia sam automatycznie utworzony plik konfiguracyjny sprzętowy. Kiedy zaczniesz, możesz przekazać swoje pakiety zadeklarowane w pliku, ale z czasem prawdopodobnie wykonasz osobne pliki, które zaimportujesz do pliku konfiguracyjnego.
Partycjonowanie
Przed instalacją musisz podzielić swoje dyski. W innych dystrybucjach istnieją wartości domyślne; Jednak w przypadku Nixos musisz wykonać własne partycjonowanie. Partycjonowanie nie jest bardzo złożone, ale możesz wpaść w kłopoty, gdy musisz ustawić konfigurację dla wybranego schematu partycjonowania. Ważne jest, aby zrozumieć, że instrukcje i skrypty wolą, jeśli systemy plików są poprawnie oznaczone.
Standardowa instrukcja pokazuje polecenia partycjonowania. Zauważ, że polecenia różnią się dla dysku UEFI i MBR, a ustawienie niewłaściwych wartości spowoduje wiele problemów. Podręcznik sugeruje użycie wartości podanych poniżej dla początkowej instalacji, ale naprawdę łatwo jest przetestować nowe wartości.
Standardowe partycje:
MBR:
rozdzielone /dev /sda - mklabel msdos
rozdzielone /dev /sda -MKPART Primary 1MIb -8gib
rozstany /dev /sda -MKPART Primary Linux -SWAP -8GIB 100%
Uefi:
rozstał się /dev /sda - mklabel gpt
rozstany /dev /sda -MKPART podstawowy 512MIB -8GIB
rozstany /dev /sda -MKPART Primary Linux -SWAP -8GIB 100%
rozstany /dev /sda - mkpart esp fat32 1 MIB 512 MIB
rozdzielone /dev /sda - ustawiaj 3 esp na
Montaż partycji w MBR:
MKSWAP -L swap /dev /sda2
Mount/dev/disp/by-label/nixos
Montaż partycji w UEFI:
Mount/dev/disp/by-label/nixos/mnt
mkdir -p /mnt /boot
Mount/dev/disk/by-label/boot/mnt/boot
Następna sekcja pokaże, jak utworzyć plik konfiguracyjny.
Plik konfiguracyjny
Po skonfigurowaniu dysków możesz rozpocząć proces konfiguracji. Za pomocą Nixos konfigurujesz najpierw, a następnie instalujesz. Poniższe instrukcje zakładają, że uruchomiłeś się za pomocą ISO, ale możesz uruchomić się z Chroot.
Z Nixos-Generate-Config system generuje standardowy plik konfiguracyjny.
$ Nixos-Generate-Config -root /MNT
To polecenie tworzy dwa pliki:/mnt/etc/nixos/sprzęt-konfiguracja.Nix (nie zmienisz tego pliku) i/mnt/etc/nixos/konfiguracja.nic. Możesz edytować drugi plik w swoim ulubionym edytorze.
Zwykle opcje nie zmieniają się w zależności od metody używanej do uruchomienia. Możesz użyć Grub lub innej konfiguracji rozruchu. Istnieje wiele opcji, ale oto kilka standardów.
Dodaj tę linię tylko dla MBR:
uruchomić.ładowarka.żarcie.device = "dev/sda";
Dodaj te linie tylko dla UEFI:
uruchomić.ładowarka.SystemD-Boot.enable = true;
uruchomić.ładowarka.Efi.CantouchEgivariables = true;
Zmień pliki konfiguracyjne jak najmniej, aby rozpocząć. Wszystkie te wartości znajdują się w oryginalnym pliku: po prostu je pominąć i wprowadzić zmiany, aby pasowały do twoich potrzeb.
Networking.hostName = "nixos";
użytkownicy.użytkownik.Nixos =
isnormaluser = true;
extragroups = „Wheel”
środowisko.Systempackages = z PKGS [
wget vim
];
usługi.OpenSsh.enable = true;
Dodaj pakiety, których chcesz użyć jako standardowych pakietów. Wszystkie standardowe pakiety trafia do kwadratowych nawiasów z WGET i VIM. Możesz zainstalować więcej pakietów po uruchomieniu systemu.
Budynek
Po poprawnym pliku konfiguracyjnym możesz uruchomić instalację.
$ Nixos-install
Następnie instalator poprosi o hasło root, które zostanie użyte w prawdziwym systemie. Wszystkie programy zostaną skompilowane lub pobrane z pamięci podręcznej.Nixpkgs.org, a następnie zainstalowany w sklepie NIX na komputerze. Następnie możesz ponownie uruchomić i powinieneś uzyskać monit za login.
$ reboot
Teraz podaj hasło dla użytkownika za pomocą roota. Użytkownik zdefiniowany w pliku konfiguracyjnym będzie miał również katalog domowy.
Nowa konfiguracja
Po ukończeniu powyższych kroków możesz bawić się plik konfiguracyjnym. Kiedy coś zmienisz, wypróbuj go bez instalowania w następujący sposób:
Test $ Nixos-Rebuild
Gdy masz nowe wartości, które działają dobrze, uruchom polecenie przebudowy:
$ Nixos-Rebuild Switch
Teraz zobaczysz, czy prawidłowo ustawiłeś wartości rozruchu. Należy zauważyć, że zmiany konfiguracji są odwracalne. Możesz po prostu zrestartować i wybrać starszą wersję, która nazywa się pokoleniem, i spróbować ponownie. Jednak każda konfiguracja wymaga miejsca na dysku, więc upewnij się, że znasz funkcję zbierania śmieci.
Wniosek
Nixos wymaga kilku ręcznych kroków, ale możesz powrócić do działającego systemu znacznie szybciej niż w przypadku innych systemów. Ponadto kontrola wersji jest łatwiejsza, jeśli potrzebujesz wielu wersji tej samej aplikacji lub potrzebujesz wielu wersji tych samych bibliotek. Na pierwszy rzut oka może się wydawać wiele ograniczeń, ale ograniczenia te można pokonać za pomocą bardziej zaawansowanych części systemu.