Mens du kan kjøre applikasjoner under NixOS fordi de følger ovennevnte standard, er ikke filene der de ville vært i et annet system. Utviklerne av NixOS og GNU Guix har sterke meninger om dette systemet, og de har kommet med smarte måter å overholde det på.
Et annet system
Programvarelagringssystemet ditt påvirker funksjonaliteten på en måte som er mye dypere enn det ser ut ved første øyekast. For at programvaren skal finne filene den trenger, bruker NixOS symlinker. Hver applikasjon har sin egen katalog som inneholder den kjørbare filen og lenker til bibliotekene som kjører den.
Med dette organisasjonssystemet kan du ha forskjellige filer og versjoner installert samtidig. Som standard skal alle pakker og deres avhengighet kompileres under installasjonen. Imidlertid krever det mye tid og prosessorkraft å gjøre det ved hver installasjon, det er cacher.
Laster ned
Med NixOS er det alltid mer enn én måte å gjøre noe på. Som andre distribusjoner, med NixOS, har du en ISO på en USB-pinne. Du har valg om hvordan du vil installere NixOS på distribusjonen din. Før vi diskuterer dette emnet mer detaljert, er det imidlertid viktig å forstå at det er to litt forvirrende deler av denne prosessen.
For det første er Nix forskjellig fra NixOS, og du må forstå forskjellen mellom Nix, pakkehåndtereren og NixOS, som konfigurerer systemet ditt. Du kan laste ned Nix-pakkebehandling og bruke den på det nåværende systemet. Med den kan du beholde mange versjoner av applikasjoner på systemet ditt uten at de forstyrrer hverandre.
For det andre, med NixOS, mens du ikke kan erklære partisjoneringsskjemaet, kan alt annet være igjen i en fil. De fleste brukere lar den automatisk opprettede maskinvarekonfigurasjonsfilen være alene. Når du først starter, kan du beholde pakkene dine deklarert i filen, men over tid vil du sannsynligvis lage separate filer som du importerer til konfigurasjonsfilen din.
Oppdeling
Før installasjon må du partisjonere stasjonene dine. I andre distribusjoner er det standarder du kan godta; med NixOS må du imidlertid gjøre din egen partisjonering. Partisjonering er ikke veldig komplisert, men du kan støte på problemer når du må angi konfigurasjonen for partisjonsskjemaet du velger. Det er viktig å forstå at instruksjonene og skriptene foretrekker hvis filsystemene dine er merket riktig.
Standardhåndboken viser partisjoneringskommandoer. Merk at kommandoene er forskjellige for en UEFI og en MBR-disk, og innstilling av feil verdier vil føre til mange problemer. Håndboken foreslår at du bruker verdiene gitt nedenfor for den første installasjonen, men det er veldig enkelt å teste nye verdier.
Standard partisjoner:
MBR:
skilt / dev / sda - mkpart primær 1MiB -8GiB
delt / dev / sda - mkpart primær linux-swap -8GiB 100%
UEFI:
skilt / dev / sda - mklabel gptskilt / dev / sda - mkpart primær 512MiB -8GiB
delt / dev / sda - mkpart primær linux-swap -8GiB 100%
skilt / dev / sda - mkpart ESP fat32 1MiB 512MiB
parted / dev / sda - sett 3 esp på
Montering av skillevegger i MBR:
mkswap -L bytte / dev / sda2mount / dev / disk / by-label / nixos
Montering av skillevegger i UEFI:
mount / dev / disk / by-label / nixos / mntmkdir -p / mnt / boot
mount / dev / disk / by-label / boot / mnt / boot
Den neste delen viser deg hvordan du oppretter konfigurasjonsfilen.
Konfigurasjonsfilen
Når du har konfigurert diskene dine, kan du starte konfigurasjonsprosessen. Med NixOS konfigurerer du først og deretter installerer. Følgende instruksjoner antar at du har startet opp ved hjelp av ISO, men du kan starte med chroot.
Med nixos-generere-konfigurasjon genererer systemet en standard konfigurasjonsfil.
$ nixos-generer-config-root / mntDenne kommandoen oppretter to filer: / mnt / etc / nixos / hardware-configuration.nix (du endrer ikke denne filen) og / mnt / etc / nixos / konfigurasjon.nix. Du kan redigere den andre filen i favorittredigereren.
Vanligvis endres ikke alternativene avhengig av metoden som brukes til å starte opp. Du kan bruke grub eller en annen oppstartskonfigurasjon. Det er mange alternativer, men her er noen standarder.
Legg bare til denne linjen for MBR:
støvel.laster.grub.enhet = "dev / sda";Legg bare til disse linjene for UEFI:
støvel.laster.systemd-boot.aktivere = sant;støvel.laster.efi.canTouchEfiVariables = true;
Endre konfigurasjonsfilene så lite som mulig for å starte. Disse verdiene er alle i originalfilen: bare fjern kommentarene til dem og gjør endringer som passer dine behov.
nettverk.hostName = "nixos";brukere.bruker.nixos =
isNormalUser = true;
extraGroups = "hjul"
miljø.systemPackages = med pkgs [
wget vim
];
tjenester.openssh.aktivere = sant;
Legg til pakkene du vil bruke som standardpakker. Alle standardpakker går i parentes med wget og vim. Du kan installere flere pakker når systemet kjører.
Bygning
Når konfigurasjonsfilen din er riktig, kan du kjøre installasjonen.
$ nixos-installDeretter vil installatøren be om et root-passord som skal brukes på det virkelige systemet. Alle programmer blir samlet eller lastet ned fra hurtigbufferen.nixpkgs.org og deretter installert i nix-butikken på datamaskinen din. Deretter kan du starte på nytt, og du bør få en påloggingsprompt.
$ omstartNå, gi et passord for brukeren din ved hjelp av root. Brukeren du definerte i konfigurasjonsfilen vil også ha en hjemmekatalog.
Ny konfigurasjon
Når du har fullført trinnene ovenfor, kan du leke med konfigurasjonsfilen. Når du endrer noe, kan du prøve det uten å installere det på følgende måte:
$ nixos-gjenoppbygg testNår du har nye verdier som fungerer bra, kjører du gjenoppbyggingskommandoen:
$ nixos-gjenoppbygg bryterNå vil du se om du har satt oppstartverdiene riktig. Det er viktig å merke seg at endringene i konfigurasjonen er reversible. Du kan bare starte på nytt og velge en eldre versjon, som kalles en generasjon, og prøve på nytt. Imidlertid krever hver konfigurasjon diskplass, så sørg for at du er kjent med søppeloppsamlingsfunksjonen.
Konklusjon
NixOS krever noen manuelle trinn for å sette opp, men du kan gå tilbake til et løpende system mye raskere enn med andre systemer. Videre er versjonskontroll enklere hvis du trenger mange versjoner av samme applikasjon, eller hvis du trenger mange versjoner av de samme bibliotekene. Ved første øyekast kan det se ut til å være mange begrensninger, men disse begrensningene kan overvinnes med de mer avanserte delene av systemet.