dpkg [opzione...] azione
Questo manuale è pensato per gli utenti che desiderano conoscere più in dettaglio le opzioni per la riga di comando e gli stati dei pacchetti di dpkg, rispetto alle informazioni date da dpkg --help.
Non dovrebbe essere usato dai manutentori che vogliono capire come dpkg installerà i loro pacchetti. La descrizione di ciò che dpkg fa quando installa e rimuove pacchetti è particolarmente inadeguata.
dpkg è uno strumento per installare, compilare, rimuovere e gestire pacchetti Debian. L'interfaccia principale e più facile da usare per dpkg è aptitude(1). dpkg in sé è completamente controllato da parametri della riga di comando, che consistono di esattamente una azione e zero o più opzioni. Il parametro azione dice a dpkg cosa fare e le opzioni controllano in qualche modo il comportamento dell'azione.
dpkg può anche essere usato come frontend per dpkg-deb(1) e dpkg-query(1). L'elenco delle azioni supportate può essere trovato nella successiva sezione AZIONI. Se è presente una di tali azioni, dpkg esegue semplicemente dpkg-deb o dpkg-query con i parametri che sono stati specificati, ma attualmente non viene passata alcuna opzione specifica; per usare una di tali opzioni i backend devono essere invocati direttamente.
dpkg mantiene alcune informazioni utilizzabili sui pacchetti disponibili. Le informazioni sono divise in tre classi: stati, stati di selezione e contrassegni. Questi valori sono pensati per essere modificati principalmente con dselect.
L'installazione consiste dei seguenti passaggi:
1. Estrazione del file di controllo del nuovo pacchetto.
2. Se prima della nuova installazione era già installata un'altra versione dello stesso pacchetto, esecuzione dello script prerm del vecchio pacchetto.
3. Esecuzione dello script preinst, se il pacchetto ne fornisce uno.
4. Spacchettamento dei nuovi file e contemporaneamente esecuzione del backup di quelli vecchi, in modo che possano essere ripristinati se qualcosa va storto.
5. Se prima della nuova installazione era già installata un'altra versione dello stesso pacchetto, esecuzione dello script postrm del vecchio pacchetto. Notare che questo script è eseguito dopo lo script preinst del nuovo pacchetto, perché i nuovi file vengono scritti nello stesso momento in cui i vecchi file vengono rimossi.
6. Configurazione del pacchetto. Per informazioni dettagliate su come venga fatta, vedere --configure.
Per riconfigurare un pacchetto che è già stato configurato, usare invece il comando dpkg-reconfigure(8).
La configurazione consiste dei seguenti passaggi:
1. Spacchettamento dei file di configurazione e contemporaneamente esecuzione del backup di quelli vecchi, in modo che possano essere ripristinati se qualcosa va storto.
2. Esecuzione dello script postinst, se il pacchetto ne fornisce uno.
La rimozione di un pacchetto consiste dei seguenti passaggi:
1. Esecuzione dello script prerm
2. Rimozione dei file installati
3. Esecuzione dello script postrm
The output format is selectable with the --verify-format option, which by default uses the rpm format, but that might change in the future, and as such programs parsing this command output should be explicit about the format they expect.
Un comando più semplice per recuperare e aggiornare in una volta il file available è dselect update. Notare che questo file è per lo più inutile se non si usa dselect ma un frontend basato su APT; APT ha un proprio sistema per tenere traccia dei pacchetti disponibili.
The available file needs to be up-to-date for this command to be useful, otherwise unknown packages will be ignored with a warning. See the --update-avail and --merge-avail commands for more information.
-b, --build directory [archivio|directory]
Crea un pacchetto deb.
-c, --contents archivio
Elenca il contenuto di un pacchetto deb.
-e, --control nomefile [directory]
Estrae informazioni di controllo da un pacchetto.
-x, --extract archivio directory
Estrae i file contenuti nel pacchetto.
-X, --vextract archivio directory
Estrae e visualizza i file contenuti in un
pacchetto.
-f, --field archivio [campo-controllo...]
Mostra il campo di controllo o i campi di controllo
di un pacchetto.
--fsys-tarfile archivio
Mostra il file system del file tar contenuto in un
pacchetto Debian.
-I, --info archivio [file-controllo...]
Mostra informazioni su un pacchetto.
-l, --list modello-nome-pacchetto...
Elenca i pacchetti che corrispondono al modello specificato.
-s, --status nome-pacchetto...
Restituisce lo stato del pacchetto specificato.
-L, --listfiles nome-pacchetto...
Elenca i file installati nel sistema da nome-pacchetto.
-S, --search modello-ricerca-nomefile...
Cerca un nome file nei pacchetti installati.
-p, --print-avail nome-pacchetto...
Mostra i dettagli su nome-pacchetto, come presenti in
/var/lib/dpkg/available. Gli utenti di frontend basati su APT
dovrebbero invece usare apt-cache show nome-pacchetto.
All options can be specified both on the command line and in the
dpkg configuration file /etc/dpkg/dpkg.cfg or fragment files
(with names matching this shell pattern '[0-9a-zA-Z_-]*') on the
configuration directory /etc/dpkg/dpkg.cfg.d/. Each line in the
configuration file is either an option (exactly the same as the command line
option but without leading hyphens) or a comment (if it starts with a
#).
Numero Descrizione
1 Informazioni di utilità generale sul progresso
2 Invocazione e stato degli script dei manutentori
10 Output per ogni file elaborato
100 Molto output per ogni file elaborato
20 Output per ogni file di configurazione
200 Molto output per ogni file di configurazione
40 Dipendenze e conflitti
400 Molto output su dipendenze e conflitti
10000 Attivazione ed elaborazione dei trigger
20000 Molto output sui trigger
40000 Una quantità irragionevole di output sui trigger
1000 Molto ciance su, ad esempio, la directory dpkg/info
2000 Una quantità irragionevole di ciance
Forza o rifiuta (no-force e refuse hanno lo stesso significato) l'esecuzione di alcune operazioni. operazioni è una lista separata da virgole di operazioni specificate in seguito. --force-help visualizza un messaggio che le descrive. Le operazioni contrassegnate da (*) vengono forzate in modo predefinito.
Attenzione: queste opzioni sono pensate principalmente per essere usate solamente da esperti. Usarle senza aver pienamente compreso il loro effetto può danneggiare l'intero sistema.
all: abilita (o disabilita) tutte le opzioni di forzatura.
downgrade(*): installa un pacchetto anche se è già installata una versione più recente.
Warning: At present dpkg does not do any dependency checking on downgrades and therefore will not warn you if the downgrade breaks the dependency of some other package. This can have serious side effects, downgrading essential system components can even make your whole system unusable. Use with care.
configure-any: configura anche qualsiasi pacchetto, spacchettato ma non configurato, da cui dipende quello in considerazione.
hold: elabora i pacchetti anche quando contrassegnati come «bloccati».
remove-reinstreq: rimuove un pacchetto, anche se è difettoso e ha il contrassegno che richiede la reinstallazione. Questo può, ad esempio, far sì che parti del pacchetto rimangano sul sistema e vengano poi dimenticate da dpkg.
remove-essential: rimuove un pacchetto anche se è considerato essenziale. I pacchetti essenziali contengono per lo più i comandi Unix veramente fondamentali; la loro rimozione può far sì che l'intero sistema non funzioni più, perciò usarla con cautela.
depends: trasforma tutti i problemi di dipendenza in avvertimenti.
depends-version: non si preoccupa delle versioni quando controlla le dipendenze.
breaks: installa un pacchetto anche se ne rende difettoso un altro.
conflicts: installa, anche se va in conflitto con un altro pacchetto. Questo è pericoloso, perché di solito comporta la sovrascrittura di alcuni file.
confmiss: se un file di configurazione è mancante e la versione del pacchetto è cambiata, installa sempre il file di configurazione senza chiedere all'utente. Questo è pericoloso, perché significa non preservare una modifica (la rimozione) fatta al file.
confnew: se un file di configurazione è stato modificato e la versione del pacchetto è cambiata, installa sempre la nuova versione senza chiedere, a meno che non venga specificata anche --force-confdef, nel qual caso verrà privilegiata l'azione predefinita.
confnew: se un file di configurazione è stato modificato e la versione del pacchetto è cambiata, mantiene sempre la vecchia versione senza chiedere, a meno che non venga specificata anche --force-confdef, nel qual caso verrà privilegiata l'azione predefinita.
confdef: se un file di configurazione è stato modificato e la versione del pacchetto è cambiata, sceglie sempre l'azione predefinita senza chiedere all'utente. Se non c'è un'azione predefinita, si fermerà per chiedere all'utente, a meno che non sia stata specificata anche --force-confnew o --force-confold, nel qual caso userà quella per decidere l'azione definitiva.
confask: se un file di configurazione è stato modificato propone sempre di sostituirlo con la versione nel pacchetto, anche se la versione nel pacchetto non è cambiata. Se è stata specificata una qualsiasi delle opzioni --force-confmiss, --force-confnew, --force-confold o --force-confdef, allora quella verrà usata per decidere l'azione definitiva.
overwrite: sovrascrive il file di un pacchetto con quello di un altro.
overwrite-dir: sovrascrive la directory di un pacchetto con il file di un altro.
overwrite-diverted: sovrascrive una versione diversificata di un file con una che non è stata diversificata.
unsafe-io: non effettua operazioni di I/O sicure durante lo spacchettamento. Attualmente ciò implica non effettuare la sincronizzazione dei file system prima di rinominare i file; ciò determina una sostanziale diminuzione delle prestazioni in alcuni file system, sfortunatamente proprio quelli che richiedono l'I/O sicuro per il loro comportamento non affidabile che causa file di lunghezza zero in caso di bruschi crash del sistema.
Nota: per ext4, il principale colpevole, considerare invece l'uso dell'opzione di mount nodelalloc, che risolverà sia la diminuzione delle prestazioni, sia i problemi di sicurezza dei dati; per questi ultimi fa sì che il file system non produca file di lunghezza zero in caso di bruschi crash del sistema con software che non esegue sincronizzazioni prima delle singole azioni di rinomina.
Attenzione: usare questa opzione può migliorare le prestazioni al prezzo di perdita di dati: usare con cautela.
architecture: elabora anche i pacchetti con architettura sbagliata o senza architettura.
bad-version: elabora anche i pacchetti con versioni sbagliate.
bad-path: PATH manca di alcuni programmi importanti, perciò è probabile si verifichino problemi.
not-root: cerca di installare o disinstallare cose anche quando non è root.
bad-verify: installa un pacchetto anche se non supera il controllo di autenticità.
Assicurarsi di specificare --no-act prima del parametro di azione, oppure si potrebbero verificare risultati indesiderati. (Ad esempio, dpkg --purge pippo --no-act prima elimina completamente il pacchetto pippo e poi cerca di eliminare il pacchetto --no-act, anche se probabilmente ci si aspettava che non facesse nulla.)
Attenzione: tenere a mente che, a seconda dei percorsi esclusi, si può danneggiare l'intero sistema; usare con cautela.
I modelli glob usano gli stessi caratteri jolly usati nella shell, dove «*» corrisponde a qualsiasi sequenza di caratteri, inclusa la stringa vuota e anche «/». Ad esempio, '/usr/*/READ*' fa corrispondenza con '/usr/share/doc/package/README'. Come di consueto, «?» corrisponde a qualsiasi carattere singolo (incluso ancora una volta «/»). «[» inizia una classe di caratteri, che può contenere una lista di caratteri, intervalli e complementi. Vedere glob(7) per informazioni dettagliate sull'uso dei modelli glob. Nota: l'implementazione attuale può reincludere più directory e collegamenti simbolici di quanto necessario, per precauzione e per evitare possibili fallimenti durante lo spacchettamento; le versioni future potrebbero risolvere questo aspetto.
Può essere usato per rimuovere tutti i percorsi tranne alcuni specifici; un caso tipico è:
--path-exclude=/usr/share/doc/* --path-include=/usr/share/doc/*/copyright
per rimuovere tutti i file di documentazione tranne i file di copyright.
Queste due opzioni possono essere specificate più volte e intrecciate assieme. Vengono entrambe elaborate nell'ordine specificato, e l'ultima regola che corrisponde ad un nome di file determina la decisione.
The only currently supported output format is rpm, which consists of a line for every path that failed any check. The lines start with 9 characters to report the specific check results, a '?' implies the check could not be done (lack of support, file permissions, etc), '.' implies the check passed, and an alphanumeric character implies a specific check failed; the only functional check is an md5sum verification denoted with a '5' on the third character. The line is followed by a space and an attribute character (currently 'c' for conffiles), another space and the pathname.
Gli altri file elencati in seguito sono nelle loro directory predefinite; vedere l'opzione --admindir per sapere come modificare la posizione di questi file.
Ogni giorno viene fatto un backup del file di stato in /var/backups. Può essere utile se viene perso o diventa corrotto a causa di problemi con i file system.
I file seguenti sono componenti di un pacchetto binario. Per maggiori informazioni su di essi, vedere deb(5).
control conffiles preinst postinst prerm postrm triggers
--no-act normalmente fornisce meno informazioni di quanto sarebbe utile.
To list installed packages related to the editor vi(1)
(note that dpkg-query does not load the available file anymore
by default, and the dpkg-query --load-avail option should be
used instead for that):
dpkg -l '*vi*'
Per vedere le voci riguardanti due pacchetti in
/var/lib/dpkg/available:
dpkg --print-avail elvis vim | less
Per cercare direttamente nell'elenco dei pacchetti:
less /var/lib/dpkg/available
Per rimuovere un pacchetto elvis installato:
dpkg -r elvis
To install a package, you first need to find it in an archive or
CDROM. The available file shows that the vim package is in section
"editors":
cd /media/cdrom/pool/main/v/vim
dpkg -i vim_4.5-3.deb
Per fare una copia locale degli stati di selezione dei pacchetti:
dpkg --get-selections >mieselezioni
You might transfer this file to another computer, and after having
updated the available file there with your package manager frontend
of choice (see https://wiki.debian.org/Teams/Dpkg/FAQ for more details), for
example:
avail=`mktemp`
apt-cache dumpavail >"$avail"
dpkg --merge-avail "$avail"
rm "$avail"
you can install it with:
dpkg --clear-selections
dpkg --set-selections <mieselezioni
Notare che questo non installa o rimuove realmente nulla, ma imposta solamente lo stato di selezione dei pacchetti indicati. Sarà necessaria qualche altra applicazione per scaricare e installare effettivamente i pacchetti richiesti. Per esempio, eseguire apt-get dselect-upgrade.
Nelle situazioni normali, dselect(1) fornisce un metodo più comodo per modificare gli stati di selezione dei pacchetti.
Si possono ottenere funzionalità aggiuntive installando uno dei seguenti pacchetti: apt, aptitude e debsums.
aptitude(1), apt(1), dselect(1), dpkg-deb(1), dpkg-query(1), deb(5), deb-control(5), dpkg.cfg(5) e dpkg-reconfigure(8).
Vedere /usr/share/doc/dpkg/THANKS per l'elenco delle persone che hanno contribuito a dpkg.