Gestore pacchetti GNU Guix 1.4 e distribuzione basata su di esso disponibile

Sono stati rilasciati il ​​gestore di pacchetti GNU Guix 1.4 e la distribuzione GNU/Linux basata su di esso. Per il download sono state generate immagini per l'installazione su USB Flash (814 MB) e l'utilizzo in sistemi di virtualizzazione (1.1 GB). Supporta il funzionamento su architetture i686, x86_64, Power9, armv7 e aarch64.

La distribuzione consente l'installazione sia come sistema operativo autonomo in sistemi di virtualizzazione, in contenitori e su apparecchiature convenzionali, e può essere lanciata in distribuzioni GNU/Linux già installate, fungendo da piattaforma per la distribuzione delle applicazioni. All'utente vengono fornite funzioni come la presa in considerazione delle dipendenze, build ripetibili, funzionamento senza root, ripristino delle versioni precedenti in caso di problemi, gestione della configurazione, clonazione di ambienti (creazione di una copia esatta dell'ambiente software su altri computer), ecc. .

Principali innovazioni:

  • Gestione migliorata degli ambienti software. Il comando “ambiente guix” è stato sostituito dal nuovo comando “shell guix”, che permette non solo di creare ambienti di build per gli sviluppatori, ma anche di utilizzare ambienti per familiarizzare con i programmi senza riflettersi nel profilo e senza eseguire “ installazione guix”. Ad esempio, per scaricare e avviare il gioco supertuxkart, puoi eseguire "guix shell supertuxkart - supertuxkart". Dopo il download, il pacchetto verrà salvato nella cache e al successivo avvio non sarà necessario riestrarlo.

    Per semplificare la creazione di ambienti per gli sviluppatori, la “shell guix” fornisce il supporto per i file guix.scm e manifest.scm che descrivono la composizione dell'ambiente (l'opzione “--export-manifest” può essere utilizzata per generare file). Per creare contenitori in cui viene emulata la classica gerarchia delle directory di sistema, la “shell guix” offre le opzioni “—container —emulate-fhs”.

  • Aggiunto il comando "guix home" per controllare l'ambiente domestico. Guix ti consente di definire tutti i componenti del tuo ambiente domestico, inclusi pacchetti, servizi e file che iniziano con un punto. Usando il comando "guix home", è possibile ricreare istanze dell'ambiente home descritto nella directory $HOME o in un contenitore, ad esempio, per trasferire il proprio ambiente su un nuovo computer.
  • Aggiunta l'opzione "-f deb" al comando "guix pack" per creare pacchetti deb separati che possono essere installati su Debian.
  • Per creare vari tipi di immagini di sistema (raw, QCOW2, CD/DVD ISO8660, Docker e WSL2), viene proposto un comando universale "guix system image", che consente di determinare il tipo di archiviazione, le partizioni e il sistema operativo per l'immagine creata .
  • Aggiunta l'opzione “—tune” ai comandi per la creazione dei pacchetti, che permette di specificare la microarchitettura del processore per la quale verranno abilitate ottimizzazioni specifiche (ad esempio, le istruzioni SIMD AVX-512 possono essere utilizzate sulle nuove CPU AMD e Intel) .
  • Il programma di installazione implementa un meccanismo per salvare automaticamente importanti informazioni di debug in caso di errore di installazione.
  • Il tempo di avvio dell'applicazione è stato ridotto utilizzando una cache durante il collegamento dinamico, che riduce le chiamate a stat e le chiamate di sistema aperte durante la ricerca di librerie.
  • È stata utilizzata una nuova versione del sistema di inizializzazione GNU Shepherd 0.9, che implementa il concetto di servizi temporanei (transienti) e la possibilità di creare servizi attivati ​​dall'attività di rete (nello stile dell'attivazione del socket systemd).
  • Aggiunta una nuova interfaccia per impostare la dimensione della partizione di swap nella configurazione del sistema operativo.
  • È stata ridisegnata l'interfaccia per l'impostazione di una configurazione di rete statica, che ora offre un analogo dichiarativo delle impostazioni nello stile del comando ip.
  • Aggiunti 15 nuovi servizi di sistema, tra cui Jami, Samba, fail2ban e Gitile.
  • Lanciato packages.guix.gnu.org per la navigazione dei pacchetti.
  • Sono state aggiornate le versioni dei programmi in 6573 pacchetti, sono stati aggiunti 5311 nuovi pacchetti. Tra le altre cose, versioni aggiornate di GNOME 42, Qt 6, GCC 12.2.0, Glibc 2.33, Xfce 4.16, Linux-libre 6.0.10, LibreOffice 7.4.3.2, Emacs 28.2. Rimossi oltre 500 pacchetti utilizzando Python 2.

Gestore pacchetti GNU Guix 1.4 e distribuzione basata su di esso disponibile

Ricordiamo che il gestore di pacchetti GNU Guix si basa sugli sviluppi del progetto Nix e, oltre alle tipiche funzioni di gestione dei pacchetti, supporta funzionalità come l'esecuzione di aggiornamenti transazionali, la possibilità di ripristinare gli aggiornamenti, lavorare senza ottenere privilegi di superutente, supportare profili legati ai singoli utenti, possibilità di installare contemporaneamente più versioni di un programma, strumenti di garbage collection (identificazione e rimozione delle versioni inutilizzate dei pacchetti). Per definire gli scenari di creazione dell'applicazione e le regole di formazione dei pacchetti, si propone di utilizzare un linguaggio specializzato di alto livello specifico del dominio e componenti API Guile Scheme, che consentono di eseguire tutte le operazioni di gestione dei pacchetti nel linguaggio di programmazione funzionale Scheme.

È supportata la possibilità di utilizzare pacchetti preparati per il gestore pacchetti Nix e inseriti nel repository Nixpkgs. Oltre alle operazioni con i pacchetti, è possibile creare script per gestire le configurazioni dell'applicazione. Quando un pacchetto viene creato, tutte le dipendenze ad esso associate vengono automaticamente scaricate e create. È possibile scaricare pacchetti binari già pronti dal repository o creare da testi sorgente con tutte le dipendenze. Sono stati implementati strumenti per mantenere aggiornate le versioni dei programmi installati organizzando l'installazione degli aggiornamenti da un repository esterno.

L'ambiente di compilazione dei pacchetti è formato sotto forma di un contenitore contenente tutti i componenti necessari per il funzionamento dell'applicazione, che consente di creare un insieme di pacchetti che possono funzionare indipendentemente dalla composizione dell'ambiente di sistema di base della distribuzione, in cui Guix viene utilizzato come componente aggiuntivo. Le dipendenze possono essere determinate tra i pacchetti Guix eseguendo la scansione degli hash dell'identificatore nella directory dei pacchetti installati per trovare la presenza di dipendenze già installate. I pacchetti vengono installati in un albero di directory o sottodirectory separato nella directory dell'utente, consentendogli di coesistere in parallelo con altri gestori di pacchetti e fornire supporto per un'ampia gamma di distribuzioni esistenti. Ad esempio, il pacchetto viene installato come /nix/store/452a5978f3b1b426064a2b64a0c6f41-firefox-108.0.1/, dove "452a59..." è l'identificatore univoco del pacchetto utilizzato per il monitoraggio delle dipendenze.

La distribuzione include solo componenti gratuiti e viene fornita con il kernel GNU Linux-Libre, ripulito dagli elementi non liberi del firmware binario. Per l'assemblaggio viene utilizzato GCC 12.2. Il gestore del servizio GNU Shepherd (precedentemente dmd) viene utilizzato come sistema di inizializzazione, sviluppato come alternativa a SysV-init con supporto delle dipendenze. Il demone di controllo Shepherd e le utilità sono scritti in Guile (una delle implementazioni del linguaggio Scheme), che viene utilizzato anche per definire i parametri per l'avvio dei servizi. L'immagine di base supporta il lavoro in modalità console, ma sono pronti per l'installazione 20526 pacchetti già pronti, inclusi componenti dello stack grafico basato su X.Org, gestori di finestre dwm e ratpoison, desktop GNOME e Xfce, nonché una selezione di grafica applicazioni.

Fonte: opennet.ru

Aggiungi un commento