dpkg(8) gestore a medio livello di pacchetti Debian

SINTASSI

dpkg [opzioni] azione

AVVERTIMENTO

Questo manuale è destinato agli utenti che desiderano capire le opzioni della riga di comando di dpkg e gli stati dei pacchetti con maggior dettagli rispetto a quelli forniti con dpkg --help. Esso non dovrebbe essere usato dai manutentori dei pacchetti che desiderano capire come dpkg installerà i loro pacchetti. Le descrizioni di quello che fa dpkg quando installa e rimuove i pacchetti, sono particolarmente inadeguate. Per informazioni dettagliate riguardo a questo, si è pregati di riferirsi all'argomento Package Management System sotto le debian-faq e nel sistema Info GNU. Per le informazioni riguardo la creazione di pacchetti Debian, vedere l'argomento Debian Package Management Tools nello stesso posto.

DESCRIZIONE

dpkg è uno strumento a medio livello per installare, costruire, rimuovere e gestire i pacchetti GNU/Linux Debian. L'interfaccia primaria e più amichevole per dpkg è dselect(8). dpkg è di per sé controllato interamente attraverso i parametri da linea di commando, che consistono esattamente di una azione e nessuna o più opzioni. Il parametro riferito all'azione comunica a dpkg che cosa fare e le opzioni controllano il comportamento dell'azione in alcuni modi. dpkg può anche essere usato come un'interfaccia (front-end) a dpkg-deb. Le azioni seguenti sono di dpkg-deb, e se sono incontrate dpkg avvia proprio dpkg-deb con i parametri che gli vengono forniti:
    -b, --build,
    -c, --contents,
    -I, --info,
    -f, --field,
    -e, --control,
    -x, --extract,
    -X, --vextract, e
    --fsys-tarfile.
Per le informazioni riguardo queste azioni, si è pregati di riferirsi alla pagina di manuale dpkg-deb(1).

INFORMAZIONI RIGUARDO AI PACCHETTI

dpkg gestisce alcune informazioni utili riguardo i pacchetti disponibili. Le informazioni si dividono in tre classi: states, selection states e flags. Questi valori sono destinati ad essere cambiati principalmente con dselect.

PACKAGE STATES (STATI DEL PACCHETTO)

installed (installato)
Il pacchetto è spachettato e correttamente configurato.
half-installed (semi-installato)
L'installazione del pacchetto è stata iniziata, ma per qualche motivo non è stata completata.
not-installed (non-inatallato)
Il pacchetto non è installato nel proprio sistema.
unpacked (spacchettato)
Il pacchetto è spacchettato, ma non configurato.
half-configured (semi-configurato)
Il pacchetto è spacchettato ed è stata avviata la configurazione, ma per qualche motivo non è ancora stata completata.
config-files (file di configurazione)
Solo i file di configurazione del pacchetto sono presenti nel sistema.

PACKAGE SELECTION STATES (STATI DI SELEZIONE DEL PACCHETTO)

install (installa)
Il pacchetto è selezionato per l'installazione.
deinstall (disinstalla)
Il pacchetto è selezionato per la disinstallazione (per esempio se si vuole rimuovere tutti i file, eccetto quelli di configurazione).
purge (epurazione)
Il pacchetto è selezionato per essere rimosso (per esempio se si vuole rimuovere ogni cosa, anche i file di configurazione).

PACKAGE FLAGS (FLAGS DEL PACCHETTO)

hold (tenere)
Un pacchetto segnato per essere su hold non viene manipolato da dpkg, a meno che non venga forzato a fare questo con l'opzione --force-hold.
reinst-required
Un pacchetto marcato con reinst-required è rotto e richiede la re-installazione. Questi pacchetti non possono essere rimossi, a meno che dpkg non venga forzato con l'opzione --force-reinstreq.

AZIONI

dpkg -i | --install package_file...
Installa il pacchetto. Se è specificata l'opzione --recursive o -R, invece del package_file si deve riferire a una directory. L'installazione consiste dei seguenti passaggi:
1. Estrazione dei file di controllo del nuovo pacchetto.
2. Se un'altra versione dello stesso pacchetto era installata prima della nuova installazione, viene eseguito lo script prerm del vecchio pacchetto.
3. Esecuzione dello script preinst, se è fornito dal pacchetto.
4. Spacchettamento dei nuovi file, e backup dei vecchi file nello stesso momento, così che, se qualcosa va storto, questi possano essere ripristinati.
5. Se un'altra versione dello stesso pacchetto era installata prima della nuova installazione, viene eseguito lo script postrm del vecchio pacchetto. Notare che questo script è eseguito dopo lo script preinst del nuovo pacchetto, perché i nuovi file sono scritti nello stesso momento in cui i vecchi file sono rimossi.
6. Configurazione del pacchetto. Vedere --configure per informazioni dettagliate riguardo a come questo viene fatto.
dpkg --unpack package_file ...
Spacchetta il pacchetto, ma non lo configura. Se l'opzione --recursive o -R è specificata, package_file si deve riferire a una directory invece di un file.
dpkg --configure package ... | -a | --pending
Riconfigura un pacchetto spacchettato. Se l'opzione -a o --pending è specificata invece di package, tutti i pacchetti spacchettati ma non configurati saranno configurati. La configurazione consiste dei seguenti passaggi:
1. Spacchettamento dei file di configurazione e, nello stesso momento, backup dei vecchi file di configurazione, così che, se qualcosa va storto, questi possano essere ripristinati.
2. Avvio dello script postinst, se fornito dal pacchetto.
dpkg -r | --remove | -P | --purge package ... | -a | --pending
Rimuove un pacchetto installato. L'azione -r o --remove rimuove ogni cosa eccetto i file di configurazione. Questo può evitare di dover riconfigurare il pacchetto se viene reinstallato successivamente. (I file di configurazione sono elencati nel file di controllo debian/conffiles) -P o --purge rimuove ogni cosa, inclusi i file di configurazione. Se è dato -a o --pending invece del nome pacchetto, allora tutti i pacchetti non spacchettati, ma segnati per essere rimossi o eliminati nel file /var/lib/dpkg/status, saranno rispettivamente rimossi o eliminati. La rimozione di un pacchetto consiste dei seguenti passaggi:
1. Esecuzione dello script prerm
2. Rimozione dei file installati
3. Esecuzione dello script postrm
dpkg -p|--print-avail package
Visualizza i dettagli riguardo al package, come trovati nel file /var/lib/dpkg/available.
dpkg --update-avail | --merge-avail Packages-file
L'update di dpkg e dselect fornisce informazioni su quali pacchetti sono disponibili. Con l'azione --merge-avail, le vecchie informazioni sono combinate con le informazioni dal Packages-file. Con l'azione --update-avail, le vecchie informazioni sono sostituite con le informazioni presenti nel Packages-file. Il Packages-file distribuito con Debian GNU/Linux è chiamato semplicemente Packages. Il dpkg tiene una sua memorizzazione dei pacchetti disponibili nel file /var/lib/dpkg/available.
dpkg -A | --record-avail package_file ...
Aggiorna le informazioni di dpkg e dselect sui pachetti disponibili, con le informazioni dal pacchetto package_file. Se l'opzione --recursive o -R è specificata, il package_file si deve riferire a una directory.
dpkg --forget-old-unavail
Elimina dalla propria 'memoria' i pacchetti non installati e non disponibili.
dpkg --clear-avail
Elimina ogni informazione esistente riguardo i pacchetti che sono ancora disponibili.
dpkg -l | --list package-name-pattern ...
Elenca i pacchetti forniti con il relativo pattern. Se nessun package-name-pattern è fornito, elenca tutti i pacchetti nel file /var/lib/dpkg/available. In package-name-pattern sono permessi tutti i normali wildchar della shell. (Sarà necessario 'quotare' package-name-pattern per evitare che la shell esegua l'espansione del filename. Per esempio, dpkg -l 'libc5*' fornirà una lista di tutti i pacchetti il cui nome inizia con "libc5".)
dpkg -s | --status package-name ...
Riporta lo stato di un pacchetto specificato. Questo visualizza semplicemente l'entrata nel database degli stati del pacchetto installato.
dpkg -C | --audit
Ricerca i pacchetti che sono stati installati nel proprio sistema solo parzialmente. dpkg suggerirà che cosa fare con questi pachetti per ottenere il loro funzionamento.
dpkg --get-selections [pattern...]
Fornisce una lista di pacchetti selezionati, e la scrive nello stdout.
dpkg --set-selections
Imposta le selezioni di pacchetti usando un file letto dallo stdin.
dpkg --yet-to-unpack
Ricerca i pacchetti selezionati per l'installazione, ma che per alcune ragioni non sono ancora stati installati.
dpkg -L | --listfiles package ...
Elenca i file installati nel proprio sistema dal pacchetto package. È comunque da notare che i file creati da script di installazione di uno specifico pacchetto non sono elencati.
dpkg -S | --search filename-search-pattern ...
Ricerca di un file dai pacchetti installati. Tutti i wildchar standard della shell possono essere usati nel percorso.
dpkg --print-architecture
Restituisce l'architettura del sistema (per esempio, "i386"). Questa opzione usa il gcc.
dpkg --print-gnu-build-architecture
Restituisce la versione GNU dell'architettura del sistema (per esempio, "i486").
dpkg --print-installation-architecture
Restituisce l'architettura del sistema per l'installazione.
dpkg --compare-versions ver1 op ver2
Compara i numeri di versione, dove op è un operatore binario. dpkg ritorna un segnale di successo (cioè risultato uguale a zero) se le condizioni specificate sono soddisfatte, altrimenti ritorna un segnale di insuccesso (risultato diverso da zero). Ci sono due gruppi di operatori, che differiscono per come trattano una assenza di versione in ver1 o ver2. I primi considerano la versione mancante come più vecchia di qualunque altra versione, e sono: lt le eq ne ge gt. Gli altri considerano la versione mancante come più recente di qualunque altra versione, e sono: lt-nl le-nl ge-nl gt-nl. Altri sono forniti solo per la compatibilità con la sintassi del file control: < << <= = >= >> >.
dpkg --command-fd <n>
Accetta una serie di comandi da un file descrittore di ingresso <n>. Nota: le opzioni addizionali impostate dalla linea di comando e attraverso questo file descrittore, non sono reimpostate per i comandi sucessivi eseguiti durante la stessa esecuzione.
dpkg --help
Visualizza un breve messaggio di aiuto.
dpkg --force-help
Fornisce un aiuto riguardo le opzioni --force-thing.
dpkg -Dh | --debug=help
Fornisce un aiuto sulle opzioni di debugging.
dpkg --licence | dpkg --license
Visualizza la licenza di dpkg.
dpkg --version
Visualizza le informazioni sulla versione di dpkg.
dpkg-deb-actions
Vedere dpkg-deb(1) per maggiori informazioni riguardo le seguenti azioni.
dpkg -b | --build directory [filename]
    Costruisce un pacchetto Debian GNU/Linux.
dpkg -c | --contents filename
    Elenca il contenuto di un pacchetto Debian GNU/Linux.
dpkg -e | --control filename [directory]
    Estrae le informazioni di controllo da un pacchetto.
dpkg -x | --extract filename directory
    Estrae i file contenuti in un pacchetto.
dpkg -f | --field  filename [control-field] ...
    Visualizza il/i campo/i del control file di un pacchetto.
dpkg --fsys-tarfile filename
    Visualizza il filesystem contenuto nel file tar da un pacchetto 
    Debian.
dpkg -I | --info filename [control-file]
    Mostra le informazioni riguardo a un pacchetto.
dpkg -X | --vextract filename directory
    Estrae e visualizza i nomi dei file contenuti da un pacchetto.

OPZIONI

Tutte le opzioni possono essere specificate sia dalla linea di comando che nel file di configurazione di dpkg /etc/dpkg/dpkg.cfg. Ogni linea nel file di configurazione è una opzione (esattamente come nella linea di comando, ma senza '-' davanti) o un commento (se inizia con un #).
--abort-after=number
Cambia il numero di errori oltre cui dpkg si arresterà. Il valore predefinito è 50.
-B|--auto-deconfigure
Quando un pacchetto è rimosso, c'è la possibilità che un altro pacchetto installato dipenda dal pacchetto rimosso. Specificando questa opzione si causerà la deconfigurazione automatica del pacchetto che dipende da quello rimosso.
-Doctal | --debug=octal
Imposta il debugging ON. octal è formato da un assemblaggio vettoriale (bitwise-orring) di valori della lista qui sotto (notare che questi valori possono cambiare nelle release future). -Dh o --debug=help visualizza questi valori di debugging.
numero  descrizione
    1   Informazioni utili generiche sullo stato di progresso
    2   Chiamate e stato dei mantainer scripts
   10   Output per ogni file processato
  100   Molto output per ogni file processato
   20   Output per ogni file di configurazione
  200   Molto output per ogni file di configurazione
   40   Dipendenze e conflitti
  400   Molto output per dipendenze e conflitti
 1000   Molte sciocchezze riguardo, ad esempio, la dpkg/info directory
 2000   Quantità folle di sciocchezze
--force-things | --no-force-things | --refuse-things
Forza (force) o rifiuta (refuse) (no-force e refuse significano la stessa cosa) di fare alcune cose. things è una lista, separata da virgole, di cose qui sotto specificate. --force-help visualizza un messagggio che le descrive. Le cose marcate con un (*) sono forzate di default. Avvertimento: Queste opzioni sono principalmente intese per un utilizzo da parte di soli esperti. Il loro utilizzo senza la piena conoscenza dei loro effetti potrebbe compromettere l'intero sistema. all: Commuta in on (o off) tutte le opzioni di forzatura auto-select(*): Seleziona i pacchetti per installarli e deseleziona i pacchetti per rimuoverli. downgrade(*): Installa un pacchetto, anche se la nuova versione di questo è già installata. configure-any: Configura anche tutti i pacchetti spacchettati ma non configurati da cui dipende il pacchetto corrente. hold: Processa i pacchetti anche se marcati con "hold". remove-reinstreq: Rimuove un pacchetto, anche se è rotto e marcato per la richiesta di re-installazione. Questo può causare, per esempio, che parti del pacchetto rimangano sul sistema, venendo poi dimenticate da dpkg. remove-essential: Rimuove un pacchetto, anche se è considerato essenziale. I pacchetti essenziali contengono la maggior parte dei comandi Unix fondamentali. Rimuovere questi pacchetti può portare l'intero sistema a cessare di funzionare, è quindi da usare con cautela. depends: Commuta tutti i problemi di dipendenza in messaggi di avvertimento. depends-version: Non si cura della versione quando verifica le dipendenze. conflicts: Installa il pacchetto, anche se è in conflitto con un altro pacchetto. Questo è pericoloso, usualmente causerà la sovrascrittura di alcuni file. confmiss: Installa sempre un file di configurazione mancante. Questo è pericoloso dato che non preserva cambiamenti o rimozioni operate al file. confnew: Se un file di configurazione è stato modificato installa sempre la nuova versione senza chiedere conferma; a meno che non sia stato dato anche --force-confdef, nel cui caso si considera valida l'azione predefinita. confold: Se un file di configurazione è stato modificato mantiene sempre la versione vecchia senza chiedere conferma; a meno che non sia stato dato anche --force-confdef, nel cui caso si considera valida l'azione predefinita. confdef: Se un file di configurazione è stato modificato si sceglie sempre l'azione predefinita. Se non c'è alcuna azione predefinita sarà chiesto all'utente cosa fare, a meno che non siano stati dati anche --force-confnew o --force-confold, nel cui caso saranno usate queste impostazioni per decidere sull'azione finale. overwrite: Sovrascrive un file di un pacchetto con un file di un altro pacchetto. overwrite-dir Sovrascrive una directory di un pacchetto con un file di un altro pacchetto. overwrite-diverted: Sovrascrive un file deviato con una versione non deviata. architecture: Processa anche i pacchetti con architettura sbagliata. bad-path: PATH è carente di programmi importanti, sono probabili problemi. not-root: Prova a installare/deinstallare cose anche non come root.
--ignore-depends=package,...
Ignora il controllo delle dipendenze per i pacchetti specificati (in realtà il controllo viene eseguito comunque, ma sono restituiti solo avvertimenti riguardo i conflitti e nient'altro).
--new | --old
Seleziona il formato nuovo o vecchio per i pacchetti binari. Questa è un'opzione di dpkg-deb(1).
--nocheck
Non legge o controlla il contenuto del control file mentre costruisce un pacchetto. Questa è un'opzione di dpkg-deb(1).
--no-act
Esegue tutto ciò che si suppone debba essere fatto, ma senza scrivere alcun cambiamento. È usato per vedere cosa succederebbe con l'azione specificata, senza modificare nulla realmente. Assicurarsi di dare --no-act prima del parametro relativo alla azione, altrimenti potrebbero riscontrarsi risultati non desiderati. (per esempio dpkg --purge foo --no-act epurerà prima il pacchetto foo per poi provare ad epurare il pacchetto --no-act, nonostante ci si possa in realtà attendere che non faccia nulla)
-R | --recursive
Si occupa ricorsivamente di tutti i files del tipo *.deb trovati nella directory specificata e nelle sue subdirectories. Può essere usato con le azioni -i, -A, --install, --unpack e --avail.
-G
Non installa un pacchetto se una nuova versione dello stesso pacchetto è già installata. Questo è un alias di --refuse-downgrade.
--root=dir | --admindir=dir | --instdir=dir
Cambia le directory di default. L'admindir di default è /var/lib/dpkg e contiene molti files che forniscono informazioni riguardo lo stato dei pacchetti installati o disinstallati, ecc. La instdir di default è / e si riferisce alla directory dove i pacchetti sono installati. instdir è anche la directory passata a chroot(2) prima dell'esecuzione degli script di installazione del package, significa che gli script vedono la instdir come una directory di root. Il cambiamento di root cambia instdir in dir e admindir in dir/var/lib/dpkg.
-O | --selected-only
Processa solamente i pacchetti che sono selezionati per l'installazione. La selezione attuale è fatta con dselect o da dpkg, quando gestisce i pacchetti. Per esempio, quando un pacchetto è rimosso (e quindi non più presente come installato), esso sarà marcato per l'installazione.
-E | --skip-same-version
Non installa il pacchetto se la stessa versione è già installata.
--status-fd <n>
Invia informazioni sullo stato di un pacchetto al file descrittore <n>. Questo può essere dato molte volte. Gli aggiornamenti dello stato hanno la forma `status: <pkg>: <pkg qstate>'.

FILE

/etc/dpkg/dpkg.cfg
File di configurazione con le opzioni di default. Gli altri file elencati di seguito si trovano nelle loro directory di default, vedere l'opzione --admindir su come cambiare la locazione di questi file.
/var/lib/dpkg/available
Lista dei pacchetti disponibili.
/var/lib/dpkg/status
Fornisce gli stati dei pacchetti disponibili. Questo file contiene informazioni riguardo se un pacchetto è marcato per la rimozione oppure no, se è installato oppure no, etc. Vedere la sezione INFORMAZIONI RIGUARDO I PACCHETTI per ulteriori informazioni. I seguenti file sono componenti di un pacchetto binario. Vedere deb(5) per ulteriori informazioni riguardo questi file:
control
conffiles
preinst
postinst
prerm
postrm

VARIABILI D'AMBIENTE

DPKG_NO_TSTP
Si definisca questa variabile se si preferisce che quando dpkg deve eseguire una uscita su shell esegua una shell nuova piuttosto che sospendersi.
SHELL
dpkg verrà eseguito in una nuova shell.
COLUMNS
Imposta il numero di colonne che dpkg dovrebbe usare mentre visualizza un testo formattato. Correntemente questa variabile è usata solo da -l.

ESEMPI

Per elencare i pacchetti relativi all'editor vi:
dpkg -l '*vi*'
Per vedere le entrate nel file /var/lib/dpkg/available su due pacchetti:
dpkg --print-avail elvis vim | less
Per cercare la lista dei pacchetti da se stessi:
less /var/lib/dpkg/available
Per rimuovere il pacchetto elvis installato:
dpkg -r elvis
Per installare un pacchetto, prima è necessario trovarlo in un archivio o in un CDROM. Il file "available" mostra che il pacchetto vim si trova nella sectione "editors":
cd /cdrom/hamm/hamm/binary/editors dpkg -i vim_4.5-3.deb
Per fare una copia locale degli stati di selezione pacchetti:
dpkg --get-selections >myselections
È possibile trasferire questo file su un altro computer ed installarlo lì con:
dpkg --set-selections <myselections
Notare che effettivamente questo non installerà o rimuoverà nessun pacchetto, ma imposterà solamente gli stati di selezione sui pacchetti richiesti. Sarà necessaria qualche altra applicazione per effettivamente scaricare ed installare i pacchetti richiesti. Di norma si può constatare come dselect(8) fornisca un modo più conveniente per modificare gli stati di selezione dei pacchetti.

BUGS

--no-act fornisce in genere meno informazioni di quanto potrebbe essere utile.

AUTORI

Vedere /usr/share/doc/dpkg/THANKS per la lista delle persone che hanno
contribuito a dpkg .
Traduzione in italiano a cura di Hugh Hartmann <[email protected]>
Revisione a cura di Francesco Grani <[email protected]>