Hoewel je applicaties onder NixOS kunt uitvoeren omdat ze de bovenstaande standaard volgen, zijn de bestanden niet waar ze zouden zijn in een ander systeem. De ontwikkelaars van NixOS en GNU Guix hebben een uitgesproken mening over dit systeem en ze hebben slimme manieren bedacht om eraan te voldoen.
Een ander systeem
Uw softwareopslagsysteem beïnvloedt de functionaliteit op een manier die veel dieper gaat dan het op het eerste gezicht lijkt. Om de software de bestanden te laten vinden die het nodig heeft, gebruikt NixOS symlinks. Elke toepassing heeft zijn eigen map die het uitvoerbare bestand bevat en koppelingen naar de bibliotheken die het uitvoeren.
Met dit organisatiesysteem kunt u tegelijkertijd verschillende bestanden en versies installeren. Standaard moeten alle pakketten en hun afhankelijkheden worden gecompileerd tijdens de installatie. Het vereist echter veel tijd en verwerkingskracht om dit bij elke installatie te doen, er zijn caches.
Downloaden
Met NixOS is er altijd meer dan één manier om iets te doen. Net als bij andere distributies heb je met NixOS een ISO op een USB-stick. Je hebt keuzes over hoe je NixOS op je distributie wilt installeren. Voordat we dit onderwerp in meer detail bespreken, is het echter belangrijk om te begrijpen dat er twee enigszins verwarrende delen van dit proces zijn:.
Ten eerste is Nix anders dan NixOS, en je moet het verschil begrijpen tussen Nix, de pakketbeheerder en NixOS, die je systeem configureert. U kunt de Nix-pakketbeheerder downloaden en gebruiken op uw huidige systeem. Hiermee kunt u vele versies van applicaties op uw systeem houden zonder dat ze met elkaar interfereren.
Ten tweede, met NixOS, hoewel je het partitieschema niet niet kunt declareren, kan al het andere in één bestand worden achtergelaten. De meeste gebruikers laten het automatisch aangemaakte hardwareconfiguratiebestand met rust. Wanneer u voor het eerst begint, kunt u uw pakketten gedeclareerd in het bestand houden, maar na verloop van tijd zult u waarschijnlijk afzonderlijke bestanden maken die u in uw configuratiebestand importeert.
Verdeling
Voor de installatie moet u uw schijven partitioneren. In andere distributies zijn er standaardwaarden die u kunt accepteren; met NixOS moet je echter je eigen partitionering doen. Partitioneren is niet erg ingewikkeld, maar u kunt in de problemen komen wanneer u uw configuratie moet instellen voor het partitioneringsschema dat u kiest. Het is belangrijk om te begrijpen dat de instructies en scripts er de voorkeur aan geven dat uw bestandssystemen correct zijn gelabeld.
De standaardhandleiding toont de partitioneringscommando's. Merk op dat de commando's verschillen voor een UEFI- en een MBR-schijf, en het instellen van de verkeerde waarden zal veel problemen veroorzaken. De handleiding stelt voor om de onderstaande waarden te gebruiken voor de eerste installatie, maar het is heel eenvoudig om nieuwe waarden te testen.
Standaard partities:
MBR:
parted /dev/sda -- mkpart primaire 1MiB -8GiB
parted /dev/sda -- mkpart primaire linux-swap -8GiB 100%
UEFI:
parted /dev/sda -- mklabel gptparted /dev/sda -- mkpart primaire 512MiB -8GiB
parted /dev/sda -- mkpart primaire linux-swap -8GiB 100%
parted /dev/sda -- mkpart ESP fat32 1MiB 512MiB
parted /dev/sda -- set 3 esp on
De partities in MBR aankoppelen:
mkswap -L swap /dev/sda2mount /dev/disk/by-label/nixos
De partities in UEFI aankoppelen:
mount /dev/disk/by-label/nixos /mntmkdir -p /mnt/boot
mount /dev/disk/by-label/boot /mnt/boot
Het volgende gedeelte laat u zien hoe u uw configuratiebestand kunt maken.
Het configuratiebestand
Zodra u uw schijven hebt ingesteld, kunt u het configuratieproces starten. Met NixOS configureer je eerst en installeer je. De volgende instructies gaan ervan uit dat je hebt opgestart met behulp van de ISO, maar je zou kunnen opstarten met chroot.
Met nixos-generate-config genereert het systeem een standaard configuratiebestand.
$ nixos-generate-config -root /mntDit commando maakt twee bestanden: /mnt/etc/nixos/hardware-configuration.nix (u wijzigt dit bestand niet) en /mnt/etc/nixos/configuration.nix. U kunt het tweede bestand in uw favoriete editor bewerken.
Meestal veranderen de opties niet, afhankelijk van de methode die wordt gebruikt om op te starten. Je kunt grub of een andere opstartconfiguratie gebruiken. Er zijn veel opties, maar hier zijn enkele normen:.
Voeg deze regel alleen toe voor MBR:
laars.lader.eten.apparaat = "dev/sda";Voeg deze regels alleen toe voor UEFI:
laars.lader.systemd-boot.inschakelen = waar;laars.lader.ef.canTouchEfiVariables = waar;
Verander de configuratiebestanden zo min mogelijk om te starten. Deze waarden staan allemaal in het originele bestand: verwijder commentaar en breng wijzigingen aan om aan uw behoeften te voldoen.
netwerken.hostnaam = "nixos";gebruikers.gebruiker.nix =
isNormalUser = waar;
extraGroups = " wiel"
milieu.systemPackages = met pkgs [
wget vim
];
Diensten.openssh.inschakelen = waar;
Voeg de pakketten toe die u als standaardpakketten wilt gebruiken. Alle standaardpakketten staan tussen vierkante haken met wget en vim. U kunt meer pakketten installeren zodra het systeem draait.
Gebouw
Zodra uw configuratiebestand correct is, kunt u de installatie uitvoeren.
$ nixos-installatieVervolgens zal het installatieprogramma om een root-wachtwoord vragen dat op het echte systeem zal worden gebruikt. Alle programma's worden gecompileerd of gedownload uit de cache.nixpkgs.org en vervolgens geïnstalleerd in de nix store op uw computer. Vervolgens kunt u opnieuw opstarten en zou u een inlogprompt moeten krijgen.
$ opnieuw opstartenGeef nu een wachtwoord op voor uw gebruiker met root. De gebruiker die u in het configuratiebestand hebt gedefinieerd, heeft ook een thuismap.
Nieuwe configuratie
Nadat u de bovenstaande stappen hebt voltooid, kunt u spelen met het configuratiebestand. Als je iets verandert, probeer het dan als volgt uit zonder het te installeren:
$ nixos-rebuild-testZodra u nieuwe waarden hebt die goed werken, voert u de opdracht rebuild uit:
$ nixos-rebuild-schakelaarNu zul je zien of je de opstartwaarden correct hebt ingesteld. Het is belangrijk op te merken dat de wijzigingen in de configuratie omkeerbaar zijn. Je kunt gewoon opnieuw opstarten en een oudere versie kiezen, die een generatie wordt genoemd, en het opnieuw proberen. Elke configuratie vereist echter schijfruimte, dus zorg ervoor dat u bekend bent met de garbagecollection-functie.
Conclusie
NixOS vereist een paar handmatige stappen om in te stellen, maar je kunt veel sneller terugkeren naar een werkend systeem dan met andere systemen. Bovendien is versiebeheer eenvoudiger als u veel versies van dezelfde toepassing nodig heeft of als u veel versies van dezelfde bibliotheken nodig heeft. Op het eerste gezicht lijken er veel beperkingen, maar deze beperkingen kunnen worden overwonnen met de meer geavanceerde onderdelen van het systeem.