Appena terminata l’installazione di NixOS, potrai trovare la tua configurazione nella cartella /etc/nixos. Qua ci troverai due file Nix:

  1. configuration.nix: il file principale di configurazione del sistema dove definisci servizi, pacchetti installati, utenti, opzioni di sistema e impostazioni globali; avrà già al suo interno le impostazioni di sistema di base (come il bootloader da usare, il fuso orario, il locale, ecc.) e
  2. hardware-configuration.nix: viene generato automaticamente durante l’installazione, contiene le impostazioni specifiche dell’hardware (filesystem, dispositivi di storage, driver e supporto hardware di base); di norma non viene quasi mai toccato.

nano è installato di default, quindi per modificare il configuration.nix da linea di comando ci basta eseguire il comando:

sudoedit configuration.nix

Configurazione iniziale

Controllo di versione

Come già detto, secondo me il primo passo da fare è impostare subito un controllo di versione sui file di configurazione tramite Git. Per farlo, nel file configuration.nix, aggiungiamo il pacchetto git alla lista dell’opzione environment.systemPackages:

environment.systemPackages = with pkgs; [
  git
  ...
];

Quindi salviamo il file con Ctrl+X, scriviamo Y per confermare le modifiche e premiamo Invio per confermare il file su cui vogliamo scrivere.

Ora abbiamo modificato per la prima volta la nostra configurazione, ma le modifiche non sono state ancora applicate (infatti, se proviamo a usare il comando git nel terminale, ci restituisce un errore): per applicare le modifiche, dobbiamo effettuare un rebuild con

sudo nixos-rebuild switch

Attenzione: connessione a Internet durante un rebuild

Assicurati di essere conness* a Internet nel momento in cui effettui un rebuild in cui c’è bisogno della connessione per operazioni come scaricare e installare nuovi pacchetti.

Dopo il rebuild avremo creato una nuova generazione la cui configurazione contiene il pacchetto di Git: ora possiamo usarlo e impostare un controllo di versione sulla cartella della configurazione.

Se ora provi a spegnere il computer e riaccenderlo, vedrai che nel bootloader ti propone di scegliere tra due generazioni: la prima è quella creata al momento dell’installazione, la seconda è quella creata adesso con l’ultimo rebuild (e che conterrà anche Git). In questo modo, ogni volta che accendi il computer, puoi scegliere con quale generazione avviarlo.

Modificare la propria configurazione

Installare un nuovo pacchetto

NixOS è basato sul package manager Nix e la lista dei pacchetti disponibili per quest’ultimo è definita nel Nixpkgs.

Per installare un nuovo pacchetto, basta cercarli nel motore di ricerca di Nixpkgs disponibile qui, selezionare il canale corretto e