Come utilizzare il gestore dei pacchetti Nixos?

Come utilizzare il gestore dei pacchetti Nixos?
Il pacchetto Nixos Manager è un sistema a sé stante. Puoi usarlo sotto qualsiasi distribuzione Linux.

Cosa fa il gestore dei pacchetti Nixos?

La maggior parte dei responsabili dei pacchetti utilizza un file che contiene il codice eseguibile o sorgente. Quindi calcolano ciò di cui ha bisogno sul sistema e poi si assicurano che esista. In Nix, le cose funzionano in modo molto simile. La grande differenza è che Nix crea tutti i file e li compila se necessario, quindi metterli in un posto; il Nix-Store. La prima domanda che hai potrebbe essere: "I file non avranno lo stesso nome?"Il sistema evita questo avendo una directory per ogni versione e nominando tutti i file con un hash. Per rendere l'applicazione "sentirsi a casa", tutte le dipendenze sono quindi collegate alle loro directory corrette utilizzando normali collegamenti similple. Un profilo tiene traccia di quale versione esegue ogni utente.

Installa da utente Nixos

Con questo sistema, puoi avere diverse versioni installate nella directory di ciascun utente. Se sono uguali in diversi utenti, l'amministratore può consentire a Nix di ri-collegare i binari, quindi esiste solo uno alla volta. Questo è utile per salvare lo spazio del disco. Puoi anche creare ambienti specifici per ogni versione del pacchetto. Ciò è particolarmente utile quando si desidera testare una nuova versione o sviluppare software.

Installazione per distribuzione comune

Per le piattaforme più comuni, è possibile installare Nix, il gestore di pacchetti con un semplice script. Questo script è disponibile sul sito Web Nix. Lo script avrà bisogno dell'accesso agli utenti root, ma se sei molto attento alla sicurezza, dovresti leggere lo script prima di usarlo. Se si desidera evitare di usare root nello script, basta creare la directory /Nix sul tuo sistema.

$ sh <(curl -L https://nixos.org/nix/install)

Se non hai accesso al root o semplicemente super cauto, puoi avere Nix come gestore di pacchetti solo utente.

$ sh <(curl -L https://nixos.org/nix/install) -no-daemon

Questo binario funziona bene per la maggior parte, se non per tutte le distribuzioni. Le piattaforme sono x8664, i?86, Aarch64 e X8664-Darwin, che coprono quasi tutte le piattaforme disponibili. Se usi altre piattaforme, probabilmente puoi utilizzare il codice sorgente e creare il tuo. Quando l'installazione è terminata, avrai un sacco di nuovi comandi.

Aggiunta del tuo primo programma a Nixos

Per installare software e impostare quando è possibile utilizzare, hai Nix-env. L'opzione di installazione (-i) è la più comune poiché lo usi sempre e metti un pacchetto come argomento.

$ Nix -env -I Firefox

Questo sembra lo stesso di altre distribuzioni, così anche l'argomento della query. L'installazione richiederà un po 'di tempo, però. Il motivo è che deve compilare il software a meno che non vi sia una versione pre-concilata nella cache Nix. Raggiungere la cache non è sempre molto veloce. C'è una differenza di cui dovresti prendere nota; Puoi scegliere una versione! Se desideri una versione speciale, devi trovare che sono disponibili utilizzando espressioni regolari.

$ nix -env -qa 'Firefox.*'

Riceverai un elenco di tutti i pacchetti disponibili. Puoi installarlo allo stesso modo ma utilizzando il valore nell'elenco.

$ nix-env -install 'Firefox-78.4.0ser ' -Prereserve -Installad

Questo può fallire se hai già una versione installata. Opzione '-Preserve-Installad' non cancellerà la versione installata. Puoi finire con due versioni della stessa priorità, che puoi correggere impostando la priorità.

$ nix-env -set-flag priorità 2 'Firefox-82.0.2 '

Ora eseguirai la vecchia versione la prossima volta che inizierai Firefox. Per cambiare quale si esegue, è possibile impostare la priorità di conseguenza. Puoi anche avviare un guscio per scegliere un binario. Questa è l'opzione di uno sviluppatore e il comando è Nix-shell.

Aggiornamento di Nixos

Una volta che hai una raccolta di software, vuoi rimanere aggiornato. Come sempre, usi lo stesso comando con un argomento. Ma devi anche tenere aggiornato il canale. Il comando è Nix-Channel.

$ nix -channel -update

Questo legge le versioni attuali di tutti i pacchetti disponibili. Successivamente, puoi avviare l'aggiornamento del software con Nix-ENV.

$ nix -env -upgrade

Un aggiornamento come questo aggiornerà la tua vecchia versione del software. In questo caso, il vecchio Firefox verrà sostituito con la versione più recente. Potresti non volerlo per qualsiasi motivo, di solito lo sviluppo.

Rimozione di applicazioni da Nixos

La rimozione delle applicazioni è altrettanto semplice, con un piccolo avvertimento. Nessuna applicazione viene rimossa da un comando Rimuovi.

$ Nix-env -Uninstall 'Firefox-78.4.0ser '

Questo comando rimuoverà i collegamenti alla build corrente di questa versione di Firefox. Tutti i file rimarranno sempre sul disco. Hai queste versioni disponibili per fare un rollback. Un rollback significa che torni a usare la vecchia versione. Questo può essere utile se hai provato il più nuovo e ha problemi imprevisti.

$ nix -env -rollback

Rollback un'intera generazione, il che significa che tutti i programmi che sono stati aggiornati dall'ultima generazione. L'opzione esegue due comandi; quell'elenco e poi passa a quelle vecchie generazioni. Tutti i pacchetti installati esistono in una generazione su disco.

Nixos roll-back e pulizia

La funzione di rollback porterà a un sacco di spazio su disco utilizzato da vecchie versioni. Puoi ripulirlo (devi ripulirlo!). Quando hai avuto un periodo abbastanza lungo, a tua scelta, puoi anche ripulire queste vecchie generazioni per salvare lo spazio su disco.

$ nix-env -delete-generazioni vecchie

Con questo comando, elimini tutte le generazioni tranne le due ultime. Puoi andare avanti e indietro nell'elenco con parametri più complessi per lasciare la generazione specifica che ha funzionato meglio per te. A meno che tu non abbia molti test o progetti di sviluppo che necessitano di molte versioni per i test, è necessario utilizzare una rimozione programmata di tutte le vecchie generazioni.

Un semplice script per mantenere pulito le tue generazioni viene fornito con un'installazione di pacchetti Nix.

$ Nix-Collect-Garbage

Dovresti anche impostare il collettore per eseguire automaticamente utilizzando SystemD o altri sistemi.

Conclusione

Nix Package Manager è un sistema potente che può farti eseguire ambienti di sviluppo complessi sulla tua macchina. Puoi anche usarlo per mantenere in ordine il tuo software e avere un modo semplice per recuperare su una nuova macchina, se si verifica la catastrofe di un crollo del disco.