6 999
contributi
S3v (discussione | contributi) m (corretto "precedente" in template) |
|||
(11 versioni intermedie di 2 utenti non mostrate) | |||
Riga 1: | Riga 1: | ||
{{APT | |||
|precedente=APT-Cacher NG | |||
|successivo=gdebi | |||
}} | |||
{{Versioni_compatibili}} | {{Versioni_compatibili}} | ||
== Introduzione == | == Introduzione == | ||
Dpkg è il package manager di Debian, che si occupa dell'installazione, della configurazione e della rimozione di tutto il software disponibile nella forma di [[pacchetto|pacchetti deb]]. Ogni pacchetto ha delle dipendenze, in forma di altri pacchetti che devono essere presenti nel sistema, che sono controllati e installati automaticamente da [[APT]], una suite di programmi che si avvale di <code>dpkg</code> come package manager e aggiunge funzionalità per rendere trasparente la gestione delle dipendenze e lo scaricamento dei pacchetti dai [[repository]]. | Dpkg è il package manager di Debian, che si occupa dell'installazione, della configurazione e della rimozione di tutto il software disponibile nella forma di [[pacchetto|pacchetti deb]]. Ogni pacchetto ha delle dipendenze, in forma di altri pacchetti che devono essere presenti nel sistema, che sono controllati e installati automaticamente da [[APT]], una suite di programmi che si avvale di <code>dpkg</code> come package manager e aggiunge funzionalità per rendere trasparente la gestione delle dipendenze e lo scaricamento dei pacchetti dai [[repository]]. | ||
Riga 130: | Riga 133: | ||
=== Esporta e importa la lista dei pacchetti === | === Esporta e importa la lista dei pacchetti === | ||
{{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 | {{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 il login su un terminale virtuale (<code>tty1</code>, <code>tty2</code>, ...).}} | ||
Si noti che questo meccanismo non funziona tra diverse versioni di Debian e nemmeno tra diverse architetture, o in presenza di diversi driver. È da utilizzare soltanto per ripristinare una configurazione precedente sullo stesso PC o al limite tra due PC quasi identici. Ed è raccomandabile che si tratti di una Debian stable senza altri repository, per via dei cambiamenti che potrebbero avvenire ai pacchetti delle altre [[release]]. | Si noti che questo meccanismo non funziona tra diverse versioni di Debian e nemmeno tra diverse architetture, o in presenza di diversi driver. È da utilizzare soltanto per ripristinare una configurazione precedente sullo stesso PC o al limite tra due PC quasi identici. Ed è raccomandabile che si tratti di una Debian stable senza altri repository, per via dei cambiamenti che potrebbero avvenire ai pacchetti delle altre [[release]]. | ||
==== Esporta ==== | ==== Esporta ==== | ||
Per esportare la lista dei pacchetti installati è sufficiente una | 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 | 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 | ||
$ apt-mark showmanual > lista_manual.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 | Si devono salvare i quattro 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 | 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 quattro 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 | 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]]: | ||
<pre># apt-get dselect-upgrade</pre> | <pre># apt-get dselect-upgrade</pre> | ||
E infine per riassegnare gli stati ''auto'' ai pacchetti | E infine per riassegnare gli stati ''auto'' e ''manual'' ai pacchetti installati, e rimuovere quelli non necessari, si utilizzano [[apt-mark]] e [[apt-get]]: | ||
<pre># apt-mark auto $(cat lista_auto.txt)</pre> | <pre># apt-mark auto $(cat lista_auto.txt) | ||
# apt-mark manual $(cat lista_manual.txt) | |||
# apt-get autoremove</pre> | |||
A questo punto, se tutto è andato a buon fine, sul PC sono installati tutti e soli i pacchetti presenti al momento dell'esportazione, con gli stessi stati. | A questo punto, se tutto è andato a buon fine, sul PC sono installati tutti e soli i pacchetti presenti al momento dell'esportazione, con gli stessi stati. | ||
Riga 229: | Riga 238: | ||
== Modifiche ai file installati o ai loro permessi == | == Modifiche ai file installati o ai loro permessi == | ||
Un [[pacchetto]] contiene i file che verranno installati sul proprio sistema, ed eventuali cambiamenti apportati a questi file potrebbero essere sovrascritti da [[APT]] alla successiva installazione o al successivo aggiornamento. In questa sezione vedremo come apportare cambiamenti permanenti con [[privilegi di | Un [[pacchetto]] contiene i file che verranno installati sul proprio sistema, ed eventuali cambiamenti apportati a questi file potrebbero essere sovrascritti da [[APT]] alla successiva installazione o al successivo aggiornamento. In questa sezione vedremo come apportare cambiamenti permanenti con [[privilegi di amministrazione]], segnalandoli al package manager <code>dpkg</code> in modo che siano ripristinati a ogni aggiornamento e nuova installazione. | ||
{{Warningbox | Entrambe le operazioni possono rendere inutilizzabile il sistema, se si sposta o si modifica un file necessario, e compromettere quello delle altre applicazioni. L'uso di questi comandi sono pertanto consigliati ai soli utenti esperti, e sempre prestando molta attenzione.}} | {{Warningbox | Entrambe le operazioni possono rendere inutilizzabile il sistema, se si sposta o si modifica un file necessario, e compromettere quello delle altre applicazioni. L'uso di questi comandi sono pertanto consigliati ai soli utenti esperti, e sempre prestando molta attenzione.}} | ||
Riga 240: | Riga 249: | ||
Per tutte le opzioni si rimanda al manuale (<code>man dpkg-divert</code>). | Per tutte le opzioni si rimanda al manuale (<code>man dpkg-divert</code>). | ||
{{ | {{Box | Nota | Si ricorda che per i file di configurazione quest'operazione non è necessaria, in quanto non sono sovrascritti di default da [[APT]], senza chiedere conferma all'amministratore durante un aggiornamento, e quelli rigenerati dispongono quasi sempre di metodi specifici per la loro personalizzazione. | ||
Inoltre piuttosto che sovrascrivere degli eseguibili di sistema è consigliabile aggiungere nuovi file, con lo stesso nome, in <code>/usr/local/bin</code> (oppure <code>/usr/local/sbin</code>) per nascondere quelli presenti in <code>/bin</code> e <code>/usr/bin</code> (oppure <code>/sbin</code> e <code>/usr/sbin</code>) nella quasi totalità dei casi.}} | Inoltre piuttosto che sovrascrivere degli eseguibili di sistema è consigliabile aggiungere nuovi file, con lo stesso nome, in <code>/usr/local/bin</code> (oppure <code>/usr/local/sbin</code>) per nascondere quelli presenti in <code>/bin</code> e <code>/usr/bin</code> (oppure <code>/sbin</code> e <code>/usr/sbin</code>) nella quasi totalità dei casi.}} | ||
Riga 362: | Riga 371: | ||
{{Autori | {{Autori | ||
|Autore=[[Utente:HAL 9000|HAL 9000]] | |Autore= [[Utente:HAL 9000|HAL 9000]] 12:22, 21 apr 2015 (CEST) | ||
|Verificata_da= | |Verificata_da= | ||
|Numero_revisori=0 | |Numero_revisori=0 |
contributi