3 581
contributi
m (aggiunti elenchi, e altre modifiche minori, ultima verifica e rimosso stub) |
|||
Riga 1: | Riga 1: | ||
{{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]]. | ||
Normalmente infatti l'utente utilizza soltanto uno dei tanti programmi che fanno parte di APT, come per esempio [[apt-get]], senza ricorrere direttamente a <code>dpkg</code>, riservato agli utenti più esperti e per esigenze specifiche | Normalmente infatti l'utente utilizza soltanto uno dei tanti programmi che fanno parte di APT, come per esempio [[apt-get]], senza ricorrere direttamente a <code>dpkg</code>, riservato agli utenti più esperti e per esigenze specifiche. | ||
Si sconsiglia caldamente l'uso di questo strumento per l'installazione e la rimozione di pacchetti, salvo sia impossibile effettuare la stessa operazione con [[APT]], in quanto non gestisce le dipendenze e ciò potrebbe compromettere il funzionamento del sistema. Invece può essere impiegato senza rischi per ricerche sul contenuto dei pacchetti installati o | Questa guida vuole offire soltanto una panoramica generale agli usi più comuni di questo potente strumento, ma non ha alcuna pretesa di esaustività e si rimanda alle pagine di manuale per tutti gli altri dettagli. | ||
Si sconsiglia caldamente però l'uso di questo strumento per l'installazione e la rimozione di pacchetti, salvo sia impossibile effettuare la stessa operazione con [[APT]], in quanto non gestisce le dipendenze e ciò potrebbe compromettere il funzionamento del sistema. Invece può essere impiegato senza rischi per ricerche sul contenuto dei pacchetti installati o per visualizzare informazioni a essi relative, in genere agendo come frontend per le opzioni più comuni di <code>dpkg-query</code> e <code>dpkg-deb</code>, anch'essi contenuti nel pacchetto '''dpkg''', essenziale per il funzionamento di Debian. | |||
== Pacchetti installati == | == Pacchetti installati == | ||
In questa sezione sono raccolte tutte le azioni che possono essere svolte sui pacchetti precedentemente installati | In questa sezione sono raccolte tutte le azioni che possono essere svolte sui pacchetti precedentemente installati. | ||
=== Ricerche === | === Ricerche === | ||
Cerca il pacchetto che ha installato il file, utile per risalire al pacchetto di un eseguibile di cui non si ricorda la provenienza: | * Cerca il pacchetto che ha installato il file, utile per esempio per risalire al pacchetto di un eseguibile di cui non si ricorda la provenienza: | ||
<pre>$ dpkg --search /percorso/file</pre> | <pre>$ dpkg --search /percorso/file</pre> | ||
Riga 18: | Riga 20: | ||
<pre>$ dpkg -S /percorso/file</pre> | <pre>$ dpkg -S /percorso/file</pre> | ||
Restituisce la lista dei file installati nel sistema da un dato pacchetto: | * Restituisce la lista dei file installati nel sistema da un dato pacchetto: | ||
<pre>$ dpkg --listfiles nomepacchetto</pre> | <pre>$ dpkg --listfiles nomepacchetto</pre> | ||
(forma abbreviata: <code>-L</code>) | (forma abbreviata: <code>-L</code>) | ||
Cerca tutti i nomi di pacchetti corrispondenti al pattern scelto (con caratteri jolli: *, ?, [...]) tra quelli precedentemente installati, mostrandone lo stato, la versione e l'architettura: | * Cerca tutti i nomi di pacchetti corrispondenti al pattern scelto (con caratteri jolli: *, ?, [...]) tra quelli precedentemente installati, mostrandone lo stato, la versione e l'architettura: | ||
<pre>$ dpkg --list "pattern"</pre> | <pre>$ dpkg --list "pattern"</pre> | ||
(forma abbreviata: <code>-l</code>) | (forma abbreviata: <code>-l</code>) | ||
Riga 32: | Riga 34: | ||
=== Verifiche === | === Verifiche === | ||
Restituisce la lista dei pacchetti installati solo parzialmente o presenti in uno stato inconsistente, suggerendo le azioni da compiere per la risoluzione del problema: | * Restituisce la lista dei pacchetti installati solo parzialmente o presenti in uno stato inconsistente, suggerendo le azioni da compiere per la risoluzione del problema: | ||
<pre>$ dpkg --audit</pre> | <pre>$ dpkg --audit</pre> | ||
(forma abbreviata: <code>-C</code>) | (forma abbreviata: <code>-C</code>) | ||
Verifica l'integrità di ciò che è stato installato da uno o più pacchetti (dopo aver controllato la consistenza dei metadati con il comando precedente): | * Verifica l'integrità di ciò che è stato installato da uno o più pacchetti (dopo aver controllato la consistenza dei metadati con il comando precedente): | ||
<pre>$ dpkg --verify nomepacchetto</pre> | <pre>$ dpkg --verify nomepacchetto</pre> | ||
(forma abbreviata: <code>-V</code>) | (forma abbreviata: <code>-V</code>) | ||
Riga 49: | Riga 51: | ||
{{Warningbox | Per rimuovere software installato tramite [[APT]] o <code>dpkg</code> si consiglia di ricorrere sempre ad APT, per esempio tramite [[apt-get]], perché gestisce anche le dipendenze. Utilizzare direttamente <code>dpkg</code> può invece lasciare il sistema in uno stato incoerente, anche se in genere non è permessa la rimozione di pacchetti da cui altri ancora dipendono, senza forzarla esplicitamente con un'opzione.}} | {{Warningbox | Per rimuovere software installato tramite [[APT]] o <code>dpkg</code> si consiglia di ricorrere sempre ad APT, per esempio tramite [[apt-get]], perché gestisce anche le dipendenze. Utilizzare direttamente <code>dpkg</code> può invece lasciare il sistema in uno stato incoerente, anche se in genere non è permessa la rimozione di pacchetti da cui altri ancora dipendono, senza forzarla esplicitamente con un'opzione.}} | ||
Rimuove un pacchetto, se non esistono altri pacchetti installati che dipendono da esso, ma senza rimuovere le sue dipendenze: | * Rimuove un pacchetto, se non esistono altri pacchetti installati che dipendono da esso, ma senza rimuovere le sue dipendenze: | ||
<pre># dpkg --remove nomepacchetto</pre> | <pre># dpkg --remove nomepacchetto</pre> | ||
(forma abbreviata: <code>-r</code>) | (forma abbreviata: <code>-r</code>) | ||
Riga 56: | Riga 58: | ||
<pre># apt-get autoremove</pre> | <pre># apt-get autoremove</pre> | ||
Rimuove il pacchetto e anche i relativi file di configurazione del sistema: | * Rimuove il pacchetto e anche i relativi file di configurazione del sistema: | ||
<pre># dpkg --purge nomepacchetto</pre> | <pre># dpkg --purge nomepacchetto</pre> | ||
(forma abbreviata: <code>-P</code>) | (forma abbreviata: <code>-P</code>) | ||
Riga 85: | Riga 87: | ||
Si noti che lo stato ''auto'' o ''manual'' (se il pacchetto era installato automaticamente o manualmente) non è registrato, in quanto <code>dpkg</code> non si occupa delle dipendenze e non può conoscere se un pacchetto è stato installato solo per soddisfarle. | Si noti che lo stato ''auto'' o ''manual'' (se il pacchetto era installato automaticamente o manualmente) non è registrato, in quanto <code>dpkg</code> non si occupa delle dipendenze e non può conoscere se un pacchetto è stato installato solo per soddisfarle. | ||
=== Lista | === Lista dei pacchetti del sistema === | ||
Restituisce la lista tutti i pacchetti precedentementi installati, accompagnati dal loro stato: | Restituisce la lista tutti i pacchetti precedentementi installati, accompagnati dal loro stato: | ||
<pre>$ dpkg --get-selections</pre> | <pre>$ dpkg --get-selections</pre> | ||
Riga 116: | Riga 118: | ||
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. | ||
=== | === Cambia lo stato dei pacchetti === | ||
È sufficiente creare manualmente la lista dei pacchetti di cui modificare lo stato, con quello nuovo da assegnare, per esempio bloccando futuri aggiornamenti con ''hold'', e poi importarla. | È sufficiente creare manualmente la lista dei pacchetti di cui modificare lo stato, con quello nuovo da assegnare, per esempio bloccando futuri aggiornamenti con ''hold'', e poi importarla. | ||
Riga 124: | Riga 126: | ||
<pre># apt-mark hold nomepacchetto1 ...</pre>}} | <pre># apt-mark hold nomepacchetto1 ...</pre>}} | ||
Blocca il futuro aggiornamento di un pacchetto: | * Blocca il futuro aggiornamento di un pacchetto: | ||
<pre># echo nomepacchetto hold | dpkg --set-selections</pre> | <pre># echo nomepacchetto hold | dpkg --set-selections</pre> | ||
Rimuove il blocco del pacchetto: | * Rimuove il blocco del pacchetto: | ||
<pre># echo nomepacchetto install | dpkg --set-selections</pre> | <pre># echo nomepacchetto install | dpkg --set-selections</pre> | ||
Blocca il futuro aggiornamento di più pacchetti: | * Blocca il futuro aggiornamento di più pacchetti: | ||
<pre># printf "%s hold\n" nomepacchetto1 ... nomepacchettoN | dpkg --set-selections</pre> | <pre># printf "%s hold\n" nomepacchetto1 ... nomepacchettoN | dpkg --set-selections</pre> | ||
Rimuove il blocco di più pacchetti: | * Rimuove il blocco di più pacchetti: | ||
<pre># printf "%s install\n" nomepacchetto1 ... nomepacchettoN | dpkg --set-selections</pre> | <pre># printf "%s install\n" nomepacchetto1 ... nomepacchettoN | dpkg --set-selections</pre> | ||
Riga 144: | Riga 146: | ||
Per i comandi relativi a un pacchetto deb <code>dpkg</code> agisce come un frontend alle opzioni più comuni di <code>dpkg-deb</code>. | Per i comandi relativi a un pacchetto deb <code>dpkg</code> agisce come un frontend alle opzioni più comuni di <code>dpkg-deb</code>. | ||
Visualizza informazioni sul pacchetto deb: | * Visualizza informazioni sul pacchetto deb: | ||
<pre>$ dpkg --info pacchetto.deb</pre> | <pre>$ dpkg --info pacchetto.deb</pre> | ||
(forma abbreviata: <code>-I</code>) | (forma abbreviata: <code>-I</code>) | ||
Mostra il contenuto del pacchetto deb: | * Mostra il contenuto del pacchetto deb: | ||
<pre>$ dpkg --contents pacchetto.deb</pre> | <pre>$ dpkg --contents pacchetto.deb</pre> | ||
(forma abbreviata: <code>-c</code>) | (forma abbreviata: <code>-c</code>) | ||
Estrae il contenuto del pacchetto deb nella cartella scelta: | * Estrae il contenuto del pacchetto deb nella cartella scelta: | ||
<pre>$ dpkg --vextract pacchetto.deb directory</pre> | <pre>$ dpkg --vextract pacchetto.deb directory</pre> | ||
(forma abbreviata: <code>-X</code>) | (forma abbreviata: <code>-X</code>) | ||
Riga 175: | Riga 177: | ||
{{Warningbox | Le istruzioni presentate in questa sezione possono compromettere il funzionamento del sistema, e l'uso è sconsigliato, salvo si sia utenti esperti nell'uso di [[APT]], si presti molta attenzione a quello che si sta facendo, e non ci sia altro modo di risolvere il proprio problema.}} | {{Warningbox | Le istruzioni presentate in questa sezione possono compromettere il funzionamento del sistema, e l'uso è sconsigliato, salvo si sia utenti esperti nell'uso di [[APT]], si presti molta attenzione a quello che si sta facendo, e non ci sia altro modo di risolvere il proprio problema.}} | ||
Se si vuole forzare una versione di un pacchetto che comporta il [[downgrade]], oppure ignorare delle dipendenze, è necessario ricorrere a <code>dpkg</code>, specificando le opzioni <code>--force-*</code> relative, che si possono leggere sul manuale di <code>dpkg</code>. | Se si vuole forzare una versione di un pacchetto che comporta il [[downgrade]], oppure ignorare delle dipendenze, è necessario ricorrere a <code>dpkg</code>, specificando le opzioni <code>--force-*</code> relative, che si possono leggere sul manuale di <code>dpkg</code>. Si consideri che gli altri casi di conflitti, rispetto a quelli trattati in seguito, sono ancora più pericolosi da forzare, ed è probabile che portino alla sovrascrittura di file gestiti da altri pacchetti, potenzialmente compromettendo l'integrità del sistema. | ||
Per esempio per forzare il [[downgrade]] di un pacchetto, dopo aver recuperato una versione precedente | * Per esempio per forzare il [[downgrade]] di un pacchetto, dopo aver recuperato una versione precedente: | ||
<pre># dpkg --install --force-downgrade pacchetto.deb</pre> | <pre># dpkg --install --force-downgrade pacchetto.deb</pre> | ||
E al solito in seguito all'installazione con <code>dpkg</code> è necessario avvalersi di [[APT]] per sistemare le dipendenze: | E al solito in seguito all'installazione con <code>dpkg</code> è necessario avvalersi di [[APT]] per sistemare le dipendenze: | ||
<pre># apt-get --fix-broken install</pre> | <pre># apt-get --fix-broken install</pre> | ||
Si consiglia però di tentare prima il [[downgrade]] con [[APT]] attraverso il [[pinning]], in quanto con <code>dpkg --force-downgrade</code> non avviene nessun controllo di sicurezza sulle dipendenze e il sistema potrebbe risultare inusabile, a seconda dell'importanza del pacchetto. | |||
* Può succedere anche che l'installazione di un pacchetto sia impedita, perché un altro sarebbe reso non funzionante da esso. In tal caso si può forzarne l'installazione con: | |||
<pre># dpkg --install --force-breaks pacchetto.deb | |||
# apt-get --fix-broken install</pre> | |||
Si noti che è molto pericoloso, se mette fuori uso un pacchetti essenziali, ed è sempre raccomandabile effettuare invece una scelta tra i pacchetti con [[APT]]. | |||
== Architetture == | == Architetture == | ||
Riga 194: | Riga 194: | ||
=== Visualizza informazioni === | === Visualizza informazioni === | ||
Visualizza l'architettura di default dei pacchetti Debian che saranno installati, in base all'immagine scelta in fase di installazione: | * Visualizza l'architettura di default dei pacchetti Debian che saranno installati, in base all'immagine scelta in fase di installazione: | ||
<pre>$ dpkg --print-architecture</pre> | <pre>$ dpkg --print-architecture</pre> | ||
Visualizza tutte le altre architetture che possono essere selezionate per l'installazione, ossia tutte quelle aggiunte in seguito manualmente: | * Visualizza tutte le altre architetture che possono essere selezionate per l'installazione, ossia tutte quelle aggiunte in seguito manualmente: | ||
<pre>$ dpkg --print-foreign-architectures</pre> | <pre>$ dpkg --print-foreign-architectures</pre> | ||
contributi