rilascio del gestore di pacchetti e la distribuzione GNU/Linux GuixSD (Guix System Distribution) basata su di esso. Il cambiamento significativo del numero di versione è dovuto al completamento di tutti , fissati per la creazione di una release significativa. Il rilascio rappresenta una sintesi di sette anni di lavoro sul progetto ed è considerato pronto per l'uso quotidiano. Per il download le immagini per l'installazione su USB Flash (243 MB) e per l'uso nei sistemi di virtualizzazione (474 MB). È supportato il funzionamento su architetture i686, x86_64, armv7 e aarch64.
La distribuzione consente l'installazione sia come nei sistemi di virtualizzazione, nei contenitori e su hardware comune, sia in distribuzioni GNU/Linux già installate, fungendo da piattaforma per il deployment di applicazioni. All'utente sono fornite funzioni come la gestione delle dipendenze, build ripetibili, funzionamento senza root, rollback a versioni precedenti in caso di problemi, gestione della configurazione, clonazione degli ambienti (creazione di una copia esatta dell'ambiente software su altri computer) e altro ancora.
Principali :
- È stato aggiunto un nuovo , funzionante in modalità testuale;
- una nuova immagine per macchine virtuali, adatta sia per familiarizzare con la distribuzione che per creare ambienti di lavoro per lo sviluppo;
- Sono stati aggiunti nuovi servizi di sistema: cups-pk-helper, imap4d, inputattach, localed, nslcd, zabbix-agent e zabbix-server;
- Sono state aggiornate le versioni dei programmi in 2104 pacchetti, aggiunti 1102 nuovi pacchetti. Tra cui sono state aggiornate le versioni di clojure 1.10.0, cups 2.2.11, emacs 26.2, gcc 8.3.0, gdb 8.2.1, ghc 8.4.3,
gimp 2.10.10, glibc 2.28, gnome 3.28.2, gnupg 2.2.15, go 1.12.1,
guile 2.2.4, icecat 60.6.1-guix1, icedtea 3.7.0, inkscape 0.92.4,
libreoffice 6.1.5.2, linux-libre 5.0.10, mate 1.22.0, ocaml 4.07.1,
octave 5.1.0, openjdk 11.28, python 3.7.0, rust 1.34.0, r 3.6.0,
sbcl 1.5.1, shepherd 0.6.0, xfce 4.12.1 e xorg-server 1.20.4; - Il gestore di servizi GNU Shepherd è stato aggiornato alla versione , in cui è implementata la modalità di funzionamento dei servizi one-shot, in cui il servizio viene contrassegnato come arrestato subito dopo l'avvio riuscito, cosa che potrebbe essere necessaria per eseguire lavori temporanei prima di altri servizi, ad esempio per eseguire la pulizia o l'inizializzazione;
- Per il comando «guix package» sono stati aggiunti alias tipici di altri gestori di pacchetti come «install», «remove», «upgrade» e «search». Per cercare un pacchetto si può utilizzare il comando «guix search», per installarlo «guix install», e per aggiornare «guix pull» e «guix upgrade»;
- Il gestore di pacchetti è stato dotato di un indicatore di progresso per le operazioni e di evidenziazione colorata per i messaggi diagnostici. Per impostazione predefinita, la maggior parte dei comandi ora viene eseguita senza output dettagliato sullo schermo, che può essere attivato con l'opzione separata «-v» (—verbosity);
- Nel gestore dei pacchetti guix è stata aggiunta una nuova comando «guix system delete-generations» e le opzioni «guix pack —save-provenance», «guix pull —news», «guix environment —preserve», «guix gc —list-roots», «guix gc —delete-generations», «guix weather —coverage»;
- Sono state aggiunte nuove opzioni «—with-git-url» e «—with-branch»;
- Nel sistema sono stati aggiunti campi di configurazione «keyboard-layout» per definire la disposizione della tastiera, «xorg-configuration» per impostare il server X, «label» per l'etichetta della partizione e «essential-services» per definire i servizi essenziali;
- È stato aggiunto il comando «guix pack -RR» per creare archivi tar con eseguibili portabili, che possono essere eseguiti sia relativamente ai percorsi nello spazio dei nomi dell'utente, sia relativamente a PRoot;
- In «guix pull» è stato garantito il caching dei pacchetti per accelerare le operazioni di ricerca per nome ed è stato integrato il pacchetto «glibc-utf8-locales»;
- È stata garantita la piena ripetibilità (bit a bit) delle immagini ISO generate dal comando «guix system»;
- Come gestore di accesso è stato utilizzato GDM invece di SLiM;
- È stata interrotta la supporto per la compilazione di Guix utilizzando Guile 2.0.
Ricordiamo che il gestore di pacchetti GNU Guix si basa sui risultati del progetto e oltre alle tipiche funzioni di gestione dei pacchetti supporta funzionalità come l'esecuzione di aggiornamenti transazionali, la possibilità di ripristinare aggiornamenti, l'operabilità senza privilegi di superutente, il supporto per profili legati a singoli utenti, la possibilità di installare più versioni della stessa applicazione simultaneamente, strumenti per la pulizia dei pacchetti (identificazione e rimozione di versioni inutilizzate). Per definire gli scenari di assemblaggio delle applicazioni e le regole di creazione dei pacchetti, si consiglia di utilizzare un linguaggio di programmazione di alto livello specializzato e i componenti dell'API Guile Scheme, che consentono di eseguire tutte le operazioni di gestione dei pacchetti in un linguaggio di programmazione funzionale Scheme.
È possibile utilizzare pacchetti preparati per il gestore di pacchetti Nix e ospitati nel repository
. Oltre alle operazioni con i pacchetti, è possibile creare script per la gestione della configurazione delle applicazioni. Durante la creazione del pacchetto, tutte le dipendenze correlate vengono scaricate e costruite automaticamente. È possibile caricare pacchetti binari già pronti dal repository o costruirli dai sorgenti con tutte le dipendenze. Sono stati implementati strumenti per mantenere le versioni dei programmi installati aggiornate tramite l'organizzazione dell'installazione di aggiornamenti da un repository esterno.
L'ambiente di raccolta per i pacchetti si forma come un contenitore che contiene tutti i componenti necessari per il funzionamento delle applicazioni, il che consente di creare un insieme di pacchetti in grado di operare senza considerare la composizione dell'ambiente di sistema di base della distribuzione in cui Guix è utilizzato come estensione. Tra i pacchetti Guix è possibile definire dipendenze, utilizzando la scansione degli hash identificativi nella directory dei pacchetti installati per cercare la presenza di dipendenze già installate. I pacchetti vengono installati in un albero di directory separato o in una sottocartella nella directory dell'utente, permettendo così la loro coesistenza parallela con altri gestori di pacchetti e garantendo supporto a una vasta gamma di distribuzioni esistenti. Ad esempio, un pacchetto viene installato come /nix/store/f42d5878f3a0b426064a2b64a0c6f92-firefox-66.0.0/, dove «f42d58...» è un identificatore unico del pacchetto utilizzato per gestire le dipendenze.
La distribuzione include solo componenti liberi e viene fornita con il kernel GNU Linux-Libre, liberato da elementi non liberi nei binari del firmware. Per la compilazione viene utilizzato GCC 8.3. Come sistema di init è utilizzato un gestore di servizi. (), sviluppato come alternativa a SysV-init con supporto per le dipendenze. Il demone di gestione e gli strumenti di Shepherd sono scritti in Guile (una delle implementazioni del linguaggio Scheme), che viene utilizzato anche per definire i parametri di avvio dei servizi. L'immagine di base supporta il funzionamento in modalità console, ma per l'installazione 9714 pacchetti pronti, tra cui i componenti dello stack grafico basato su X.Org, i window manager dwm e ratpoison, l'ambiente desktop Xfce, nonché una selezione di applicazioni grafiche.
Fonte: opennet.ru
