Medan du kan köra applikationer under NixOS eftersom de följer ovanstående standard är filerna inte där de skulle vara i ett annat system. Utvecklarna av NixOS och GNU Guix har starka åsikter om detta system, och de har kommit med smarta sätt att följa det.
Ett annat system
Ditt programvarulagringssystem påverkar funktionaliteten på ett sätt som är mycket djupare än det verkar vid första anblicken. För att programvaran ska hitta de filer den behöver använder NixOS symlänkar. Varje applikation har sin egen katalog som innehåller den körbara filen och länkar till biblioteken som kör den.
Med detta organisationssystem kan du ha olika filer och versioner installerade samtidigt. Som standard ska alla paket och deras beroenden kompileras under installationen. Det kräver dock mycket tid och processorkraft för att göra det vid varje installation, det finns cachar.
Laddar ner
Med NixOS finns det alltid mer än ett sätt att göra något. Liksom andra distributioner, med NixOS, har du en ISO på ett USB-minne. Du har val angående hur du vill installera NixOS på din distribution. Innan vi diskuterar detta ämne mer detaljerat är det dock viktigt att förstå att det finns två lite förvirrande delar av denna process.
För det första skiljer sig Nix från NixOS, och du måste förstå skillnaden mellan Nix, pakethanteraren och NixOS, som konfigurerar ditt system. Du kan ladda ner Nix-pakethanteraren och använda den i ditt nuvarande system. Med den kan du behålla många versioner av applikationer på ditt system utan att de stör varandra.
För det andra, medan du inte kan deklarera partitioneringsschemat med NixOS, kan allt annat finnas kvar i en fil. De flesta användare lämnar den automatiskt skapade maskinvarukonfigurationsfilen ensam. När du först börjar kan du behålla dina paket deklarerade i filen, men med tiden kommer du antagligen att skapa separata filer som du importerar till din konfigurationsfil.
Partitionering
Innan installationen måste du partitionera dina enheter. I andra distributioner finns det standardvärden du kan acceptera; men med NixOS måste du göra din egen partitionering. Partitionering är inte särskilt komplicerat, men du kan stöta på problem när du måste ställa in din konfiguration för det partitioneringsschema du väljer. Det är viktigt att förstå att instruktionerna och skripten föredrar om dina filsystem är märkta korrekt.
Standardhandboken visar partitioneringskommandona. Observera att kommandona skiljer sig åt för en UEFI och en MBR-disk, och att ställa in fel värden kommer att orsaka många problem. Manualen föreslår att du använder värdena nedan för den första installationen, men det är väldigt enkelt att testa nya värden.
Standardpartitioner:
MBR:
parted / dev / sda - mkpart primary 1MiB -8GiB
parted / dev / sda - mkpart primary linux-swap -8GiB 100%
UEFI:
parted / dev / sda - mklabel gptparted / dev / sda - mkpart primary 512MiB -8GiB
parted / dev / sda - mkpart primära linux-swap -8GiB 100%
parted / dev / sda - mkpart ESP fat32 1MiB 512MiB
parted / dev / sda - set 3 esp on
Montering av partitionerna i MBR:
mkswap -L swap / dev / sda2mount / dev / disk / by-label / nixos
Montering av partitionerna i UEFI:
mount / dev / disk / by-label / nixos / mntmkdir -p / mnt / boot
mount / dev / disk / by-label / boot / mnt / boot
Nästa avsnitt visar hur du skapar din konfigurationsfil.
Konfigurationsfilen
När du har konfigurerat dina diskar kan du starta konfigurationsprocessen. Med NixOS konfigurerar du först och installerar sedan. Följande instruktioner förutsätter att du har startat med ISO, men du kan starta med chroot.
Med nixos-generera-config genererar systemet en standardkonfigurationsfil.
$ nixos-generera-config -root / mntDetta kommando skapar två filer: / mnt / etc / nixos / hardware-configuration.nix (du ändrar inte den här filen) och / mnt / etc / nixos / configuration.nix. Du kan redigera den andra filen i din favoritredigerare.
Vanligtvis ändras inte alternativen beroende på vilken metod som används för att starta. Du kan använda grub eller en annan startkonfiguration. Det finns många alternativ, men här är några standarder.
Lägg till den här raden endast för MBR:
känga.lastare.röja.device = "dev / sda";Lägg bara till dessa rader för UEFI:
känga.lastare.systemd-start.aktivera = sant;känga.lastare.efi.canTouchEfiVariables = true;
Ändra konfigurationsfilerna så lite som möjligt för att starta. Dessa värden finns i originalfilen: avmarkera dem bara och gör ändringar för att passa dina behov.
nätverk.värdnamn = "nixos";användare.användare.nixos =
isNormalUser = true;
extraGroups = "hjul"
miljö.systemPackages = med pkgs [
wget vim
];
tjänster.openssh.aktivera = sant;
Lägg till de paket som du vill använda som standardpaket. Alla standardpaket går i hakparenteserna med wget och vim. Du kan installera fler paket när systemet körs.
Byggnad
När din konfigurationsfil är korrekt kan du köra installationen.
$ nixos-installationDärefter kommer installationsprogrammet att be om ett root-lösenord som kommer att användas i det verkliga systemet. Alla program kommer att kompileras eller laddas ner från cache.nixpkgs.org och installeras sedan i nix-butiken på din dator. Sedan kan du starta om, och du bör få en inloggningsprompt.
$ omstartAnge nu ett lösenord för din användare med root. Användaren som du definierade i konfigurationsfilen kommer också att ha en hemkatalog.
Ny konfiguration
När du har slutfört stegen ovan kan du leka med konfigurationsfilen. När du ändrar något, prova det utan att installera det enligt följande:
$ nixos-ombyggnadstestNär du har nya värden som fungerar bra kör du kommandot ombyggnad:
$ nixos-ombyggnad-omkopplareNu ser du om du har ställt in startvärdena korrekt. Det är viktigt att notera att ändringarna i konfigurationen är reversibla. Du kan helt enkelt starta om och välja en äldre version, som kallas en generation, och försöka igen. Men varje konfiguration kräver diskutrymme, så se till att du är bekant med funktionen för insamling av skräp.
Slutsats
NixOS kräver några manuella steg för att ställa in, men du kan återgå till ett löpande system mycket snabbare än med andra system. Dessutom är versionskontroll enklare om du behöver många versioner av samma applikation eller om du behöver många versioner av samma bibliotek. Vid första anblicken kan det tycks finnas många begränsningar, men dessa begränsningar kan övervinnas med de mer avancerade delarna av systemet.