Differenze tra le versioni di "Appunti NixOS"
Riga 34: | Riga 34: | ||
Calcolare l'hash di un file | Calcolare l'hash di un file | ||
− | nix-prefetch-url | + | nix-prefetch-url url_del_file_da_scaricare/pacchetto.tgz |
[[Category: Howto]] | [[Category: Howto]] |
Versione delle 14:56, 7 mag 2023
Introduzione
NixOS è una distribuzione Linux basata sul gestore di pacchetti Nix che, a differenza dei tradizionali gestori di pacchetti, offre un approccio cosiddetto funzionale e dichiarativo. Nix permette infatti di creare ambienti isolati e indipendenti (installa i programmi in directory il cui nome viene generato univocamente tramite un hash crittografico) dove tutti i pacchetti e le rispettive dipendenze sono gestiti in modo sicuro e riproducibile. È anche possibile installare diverse versioni di un pacchetto senza che entrino in conflitto tra loro o con il sistema host.
Una delle caratteristiche principali di Nix e NixOS è la possibilità di effettuare rollback degli aggiornamenti. Questo significa che è possibile tornare a una versione precedente del sistema in caso di problemi o incompatibilità con le nuove versioni. Inoltre, grazie alla gestione dichiarativa dei pacchetti, è possibile condividere facilmente le configurazioni del sistema con altri utenti, rendendo semplice la collaborazione e la riproducibilità dell'ambiente.
Link utili
- Ricerca pacchetti
- Nix Cheatsheet (apt vs nix)
Comandi comuni
Cercare un pacchetto
nix-env -aqP | grep <package>
Si consiglia di configurare un alias su .bashrc del tipo alias nix-search='nix-env -qaP | grep'
Installare un pacchetto
nix-env --install <package>
Provare un pacchetto senza installarlo
nix-shell -p <package>
«Disinstallare» un pacchetto (in realtà rimuove solo il link)
nix-env --uninstall <package>
Eliminare le vecchie versioni dei pacchetti (compresi i pacchetti che non hanno più un link)
nix-collect-garbage -d
Aggiornare la lista dei repository
nix-channel --update
Aggiornare tutti i pacchetti
nix-env --upgrade
Calcolare l'hash di un file
nix-prefetch-url url_del_file_da_scaricare/pacchetto.tgz