Dpkg: differenze tra le versioni

→‎Esporta e importa la lista dei pacchetti: aggiunto --merge-avail per dpkg
(→‎Esporta e importa la lista dei pacchetti: aggiunto box per operazione non più supportata con --set-selections)
(→‎Esporta e importa la lista dei pacchetti: aggiunto --merge-avail per dpkg)
Riga 130: Riga 130:


=== Esporta e importa la lista dei pacchetti ===
=== Esporta e importa la lista dei pacchetti ===
{{Box | A partire da Debian 8 (Jessie) | Quest'operazione '''non''' funziona più dalla versione 1.17 di <code>dpkg</code>, presente a partire da Debian 8 ([[Jessie]]), in quanto <code>dpkg --set-selections</code> accetta esclusivamente nomi di pacchetti già noti al sistema e pertanto non può essere utilizzato per programmare nuove installazioni, a eccezione di pacchetti installati e poi rimossi, ma solo per rimuovere pacchetti precedentemente installati.
Si raccomanda invece l'uso combinato di [[apt-mark]] e [[apt-get]].}}
{{Warningbox | Quest'operazione è pericolosa e in caso di errori può causare il blocco e il malfunzionamento del sistema, rendendo necessaria anche una nuova installazione da zero. Non va eseguita se non si è utenti abbastanza esperti, e si consiglia l'uso di un ambiente minimale come una console virtuale.}}
{{Warningbox | Quest'operazione è pericolosa e in caso di errori può causare il blocco e il malfunzionamento del sistema, rendendo necessaria anche una nuova installazione da zero. Non va eseguita se non si è utenti abbastanza esperti, e si consiglia l'uso di un ambiente minimale come una console virtuale.}}


Riga 139: Riga 135:


==== Esporta ====
==== Esporta ====
Per esportare la lista dei pacchetti installati è sufficiente una redirezione su un file (in questo caso <code>lista_pacchetti.txt</code>):
Per esportare la lista dei pacchetti installati è sufficiente una ridirezione su un file (in questo caso <code>lista_pacchetti.txt</code>):
<pre>$ dpkg --get-selections > lista_pacchetti.txt</pre>
<pre>$ dpkg --get-selections > lista_pacchetti.txt</pre>
E per salvare anche lo stato è necessario ricorrere ad APT e creare un nuovo file con tale informazione, per esempio tramite [[apt-mark]] e una redirezione:
E per salvare anche lo stato è necessario ricorrere ad APT e creare un nuovo file con tale informazione, per esempio tramite [[apt-mark]] e una ridirezione:
<pre>$ apt-mark showauto > lista_auto.txt</pre>
<pre>$ apt-mark showauto > lista_auto.txt</pre>
Salviamo anche i metadati, per poter importare pacchetti che non fossero noti sulla macchina di destinazione, con [[apt-cache]] e sempre con una ridirezione:
<pre>$ apt-cache dumpavail > available.txt</pre>


Si devono salvare i due file .txt e conservarli, per quando si intende importare.
Si devono salvare i tre file .txt e conservarli, per quando si intende importare la lista di pacchetti e il loro stato.


==== Importa ====
==== Importa ====
Se si vuole importare tale stato in seguito, per replicare la configurazione precedentemente esportata sono sufficienti due comandi, nella stessa cartella dove si sono salvati i due file .txt nella fase di esportazione:
Se si vuole importare tale stato in seguito, per replicare la configurazione precedentemente esportata sono sufficienti due comandi, nella stessa cartella dove si sono salvati i due file .txt nella fase di esportazione:
<pre># dpkg --clear-selections
<pre># dpkg --merge-avail available.txt
# dpkg --clear-selections
# dpkg --set-selections < lista_pacchetti.txt</pre>
# dpkg --set-selections < lista_pacchetti.txt</pre>
Dove il primo comando imposta lo stato ''deinstall'' a tutti i pacchetti non essenziali installati nel sistema, per far sì che i pacchetti installati ma non presenti nella lista vengano rimossi, e il secondo importa la lista dei pacchetti da installare.
Dove il primo comando importa tutti i metadati dei pacchetti precedentemente esportati, in caso non fossero noti; il secondo comando imposta lo stato ''deinstall'' a tutti i pacchetti non essenziali installati nel sistema, per far sì che i pacchetti installati ma non presenti nella lista vengano rimossi; e il terzo comando importa la lista dei pacchetti da installare.


Per rendere effettive le modifiche, iniziando l'installazione e la rimozione dei pacchetti, è necessario ricorrere ad [[APT]]:
Per rendere effettive le modifiche, iniziando l'installazione e la rimozione dei pacchetti, è necessario ricorrere ad [[APT]]:
3 581

contributi