Når det er sagt, hvis du kan følge NixOS-manualen, vil du have det godt. Du kan vælge et standard skrivebordsmiljø, hvis du vil, men sørg for at du er fortrolig med kommandolinjen og kan redigere en tekstfil til konfigurationsopgaver.
En stærk konfiguration
Evnen til at konfigurere NixOS er både en fordel og en udfordring. Traditionelle pakkeadministratorer bringer pakken ind i den etablerede LSB-struktur af filerne. I NixOS placerer installationsprogrammet filerne i butikken med en hash før den. Denne konvention lyder måske kompliceret, men den muliggør mange funktioner.
Når du installerer et program, forbereder pakkehåndtereren en mappe med alle filer og tilføjer links til de positioner, hvor de skal placeres. Det kopierer også afhængighederne i samme bibliotek og forbinder dem i strukturen. For at spore hvilke programmer der har brug for hvilke afhængigheder, bruges en profil. Med butikken og profilerne kan du have mange forskellige kombinationer af pakker.
Du kan også skifte over med et par kommandoer, og det er super nemt at rulle tilbage: Vælg bare den gamle generation ved næste genstart. Hvis du leger med konfigurationer, vil du ende med mange generationer. Du kan dog bruge nix-collect-garbage -d til at rydde opstartspartitionen (selvom du skal køre kommandoen nixos-rebuild!).
Håndtering af revisioner
I Nix Store, hvor al din software er gemt, har du en fil til hver eksekverbar. Ved første øjekast ser denne konvention ikke anderledes ud end dem, der er vedtaget af andre systemer; der er dog en stor forskel: Hver gang du opgraderer, tilføjes en ny binær og derefter linkes til din profil, hvilket meget hurtigt kan føre til spildt diskplads.
For at løse dette problem er der en anden affaldsindsamlingsmulighed, som er det samme program, der bruges med hele systemet. Hvis du kun har brug for gamle revisioner i en kort testperiode, kan du indstille systemctl til at køre med et jævnt interval. Desuden kan du spare diskplads ved hjælp af kommandoen 'nix-store -optimise', som finder identiske filer i butikken og linker filerne til den ene fil.
Opsætning af udviklingsmiljøer
Først synes det svært at udvikle software med dette system. Faktisk kan du starte en shell med et specifikt udviklingsmiljø hver gang. Når du vælger et miljø, installerer nix-shell det miljø, du har brug for, så du kan starte et specifikt miljø til et ulige sprog, du aldrig bruger, eller oprette en fil, der samler alt, hvad du normalt har brug for.
Docker og andre skyer
NixOS er et operativsystem, og Nix er en pakkehåndtering. De to arbejder sammen om at give en ligetil og reproducerbar konfigurationsproces. Med andre ord, hvis du opretter en komplet konfigurationsfil, der dækker alle dine behov, så kan du bruge den til din næste maskine.
Installationsproceduren starter med at detektere hardware. I det andet trin definerer du dit miljø og systempakker ved hjælp af konfigurationen.nix-fil. Når du har det rigtige indhold i filen, gendanner installationsprogrammet det samme system, når du bruger det på en anden maskine.
Denne funktionalitet er nyttig, fordi en ny disk kun har brug for filen til almindelige systemer for at genopbygge dit system (ud over din sikkerhedskopi af brugerfiler, selvfølgelig). Desuden har du til cloud computing en endnu større fordel: Mens de filer, du har brug for at skrive til et dockerbillede, er virkelig lange, er den tilsvarende fil til NixOS kort og nem at flytte mellem systemer. Derudover kan du bruge importfunktionen til at oprette specielle nix-filer til dine ulige konfigurationer og importere dem til din konfiguration.
Billede, snap og flatpak
Mens NixOS har mange strålende måder at køre dine applikationer på og adskille dem fra hinanden, leveres en masse software på andre måder. Appimages og Flatpak er nemme at bruge til at distribuere pakker. Heldigvis har NixOS pakker til håndtering af disse formater, og du kan installere disse pakker til at køre dine foretrukne AppImages og Flatpaks. Du kan definere pakkerne i din konfiguration.nix-fil, og få dem tilgængelige, når du har brug for dem.
Konklusion
NixOs virker skræmmende, fordi det ikke har noget grafisk installationsprogram, og du skal oprette en konfigurationsfil. Men kun i NixOS indstiller du de samme værdier i begge tilfælde. For at sikkerhedskopiere et NixOS-system, ikke brugerfilerne, er der kun brug for en enkelt fil. Med denne fil genskaber systemet pakkerne og indstillingerne. Desuden leverer NixOS en indbygget metode til at køre en shell i et bestemt miljø: Brug bare den samme filtype! I filens standard.nix, kan du definere alle dine biblioteker og afhængigheder og derefter køre nix-shell i den mappe.
Dette system har meget potentiale. Prøv det: Du kan starte med din egen distribution og nix pakkehåndtering.