NixOS Γ¨ il mio sistema operativo principale dal 2024 e ho deciso di scrivere questa nota sul mio Giardino Digitale per divulgare tutto ciΓ² che ho imparato nel corso di questi anni sul β¨magico mondoβ¨ diΒ NixOSΒ e permettere a chiunque ne possa essere interessato di superare facilmente tutti gli ostacoli che ho dovuto affrontare anche io nellβusarlo.
Senza girarci troppo intorno, diciamoci le cose così come stanno. Si sa che ogni utente di Linux cerca di vendere la propria distribuzione Linux in uso come se fosse la panacea per tutti i mali di questo mondo, cercando di convincere chiunque lo ascolti di avere il cazzo più marmoreo fra tutti perché la propria distribuzione Linux è quella perfetta.
Proprio per queste ragioni, con questa nota non voglio assolutamente insinuare che NixOS sia la distribuzione perfetta, ma semplicemente offrire il mio punto di vista da utente di NixOS sulle sue peculiaritΓ e i motivi che mi hanno spinto a sceglierla e che tuttβora mi fanno desistere dal passare stabilmente ad altre distribuzioni.
Introduzione a NixOS
Ma quindi, cosβΓ¨ NixOS e perchΓ© dovrei usarlo?
Innanzitutto, partiamo col dire che NixOS Γ¨ una distribuzione Linux basata sul package manager Nix. Inizialmente Nix era disponibile per sistemi UNIX-like, ma cβerano molti dubbi sul fatto che si potesse creare a tutti gli effetti un sistema operativo basato su di esso.
Tuttavia, Eelco Dolstra (il creatore di Nix) precisò già a suo tempo che i moderni metodi di gestione delle configurazioni dei sistemi operativi, esattamente come per la distribuzione del software, erano parecchio caotici: i file di configurazione, così come i pacchetti, erano sparsi per tutto il file system
Definizione: NixOS
NixOS Γ¨ una distribuzione Linux basata sul package manager Nix. Γ un sistema operativo dichiarativo, ossia la configurazione del sistema Γ¨ dichiarata in file scritti in linguaggio Nix e gode delle proprietΓ di riproducibilitΓ e di indistruttibilitΓ .
Attenzione: usa NixOS se hai familiaritΓ con Linux
Essendo NixOS una distribuzione Linux (anche abbastanza peculiare, data la sua caratteristica di essere dichiarativa), questa nota Γ¨ rivolta a chi ha giΓ un minimo di esperienza con altre distribuzioni piΓΉ βpopolariβ, come Ubuntu o Debian. Nel caso tu fossi completamente novizio nel mondo di Linux, ti consiglio di prendere un poβ di dimestichezza con altre distribuzioni prima di tentare di usarlo, in modo da poter padroneggiare piΓΉ facilmente i concetti espressi in questa nota.
Concetti chiave di NixOS
Ogni volta che in NixOS vogliamo apportare una modifica alla configurazione del sistema operativo, come lβinstallazione di un nuovo pacchetto, non si interviene direttamente sul sistema in esecuzione, ma si aggiorna la configurazione dichiarativa e si avvia un rebuild del sistema.
Definizione: rebuild
In NixOS, il rebuild Γ¨ il processo con cui il sistema operativo viene ricostruito a partire dalla configurazione dichiarata, lasciando inalterate le versioni precedenti.
Ogni rebuild produce una nuova generazione.
Definizione: generazione
InΒ NixOS, unaΒ generazioneΒ Γ¨ una versione del sistema operativo risultante da una sua specifica configurazione, ottenuta da un rebuild.
Ogni generazione viene salvata in memoria e ciΓ² permette allβutente, durante la fase di avvio del sistema, di accedere a qualsiasi configurazione salvata precedentemente
Potremmo dire che, con un rebuild, possiamo ottenere unβistantanea (la generazione) della nostra configurazione.
Osservazione: il salvataggio delle varie generazioni assicura l'indistruttibilitΓ
Se si effettua unΒ rebuildΒ che in qualche modo βrompeβ il sistema operativo e ne impedisce perfino lβavvio, basta tornare allβultimaΒ generazioneΒ ancora funzionante salvata in memoria e ripartire da lΓ¬ risolvendo gli errori, assicurando cosΓ¬ lβindistruttibilitΓ del sistema.
Diversamente, con altri sistemi operativi, se ne viene compromesso perfino lβavvio bisogna necessariamente trovare lβorigine del problema e provare a ripararlo, altrimenti lβalternativa Γ¨ reinstallare il sistema operativo da zero e ripartire da capo con la sua configurazione.
Consiglio: usa un controllo di versione con NixOS
Dato che ogniΒ generazioneΒ salva con sΓ© anche i file che lβhanno generata, ti consiglio di impostare appena possibile (preferibilmente subito dopo lβinstallazione di NixOS) un controllo di versione sui file di configurazione, in modo da poter sempre facilmente recuperare leΒ generazioniΒ precedenti.
Fonti
- π Drake Rossman, How to dualboot Windows and NixOS, Drake Rossmanβs Blog.
- πΉ Vimjoyer,Β NixOS beginner guide, YouTube.
- πΉ Ampersand, Full NixOS Guide: Everything You Need to Know in One Place!, YouTube.