Introduzione
dpkg
in Linux è il gestore di pacchetti principale per i sistemi basati su Debian e Debian, come Ubuntu. Lo strumento installa, compila, rimuove, configura e recupera le informazioni per i pacchetti Debian. Il comando funziona con i pacchetti in .deb formato.
Questa guida esplora il dpkg
sintassi e opzioni dei comandi attraverso vari esempi.
Prerequisiti
- Un sistema con un sistema operativo Debian o basato su Debian.
- Accesso alla riga di comando/terminale come sudo.
- Un .deb file per lavorare con gli esempi.
Sintassi del comando dpkg
La sintassi di base per dpkg
il comando è:
dpkg [options] action
Il comando accetta un'azione e zero o più opzioni.
Il dpkg
comando funge da front-end per i seguenti due strumenti:
1. Il dpkg-deb
comando, che mostra informazioni su .deb Pacchetti.
2. La dpkg-query
comando, che mostra le informazioni dal database dpkg.
Il dpkg
comando esegue azioni da dpkg-query
e dpkg-deb
. Pertanto, i seguenti due comandi mostrano lo stesso risultato:
dpkg -l
dpkg-query -l
L'azione -l
è una dpkg-query
azione che elenca tutti i pacchetti dal database dpkg. Il dpkg
il comando rileva le opzioni esterne ed esegue dpkg-query
automaticamente.
Opzioni comando dpkg
La tabella seguente fornisce brevi descrizioni delle opzioni e delle azioni comunemente utilizzate per dpkg
comando.
Sintassi | Digita | Descrizione |
---|---|---|
-i <package.deb> --install <package.deb> | Azione | Installa il pacchetto. |
--unpack <package.deb> | Azione | Decomprime il pacchetto senza configurazione. |
--configure <package> | Azione | Configura un pacchetto decompresso. |
-r <package> --remove <package> | Azione | Rimuove un pacchetto installato. Non rimuove i file di configurazione e altri dati. |
-P <package> --purge <package> | Azione | Elimina un pacchetto installato o rimosso. Elimina i file di configurazione e altri dati. |
--get-selections | Azione | Recupera i pacchetti con le selezioni correnti. |
--set-selections | Azione | Imposta gli stati di selezione dei file da un file letto dallo standard input. |
-b <directory> --build <directory> | Azione (da dpkg-deb) | Costruisce un .deb pacchetto. |
-c <package.deb> --contents <package.deb> | Azione (da dpkg-deb) | Elenchi contenuto della confezione. |
-I <package.deb> --info <package.deb> | Azione (da dpkg-deb) | Mostra informazioni su un pacchetto. |
-l <pattern> --list <pattern> | Azione (dalla query dpkg) | Elenca i pacchetti facendo corrispondere il modello. |
-L <package> --listfiles <package> | Azione (dalla query dpkg) | Elenca le posizioni dei file del pacchetto installato. |
-s <package> --status <package> | Azione (dalla query dpkg) | Mostra lo stato di un pacchetto installato. |
-S <pattern> --search <pattern> | Azione (dalla query dpkg) | Cerca un modello nei pacchetti installati. |
-R --recursive | Opzione | Gestisce ricorsivamente l'azione nella directory e nelle sottodirectory di destinazione. |
--log=<file> | Opzione | Registra gli aggiornamenti delle modifiche allo stato in un file. |
--no-act --dry-run --simulate | Opzione | Mostra l'output senza eseguire il commit delle modifiche. Utilizzare prima dell'azione. |
Le azioni che modificano il sistema, come l'installazione o la rimozione di pacchetti, richiedono privilegi sudo. Le opzioni basate sulle informazioni non richiedono privilegi utente speciali.
La gestione degli accessi privilegiati aiuta a proteggere il sistema impedendo agli utenti regolari di apportare modifiche a livello di sistema.
Esempi di comando dpkg
Se hai un .deb pacchetto, continuare con gli esempi seguenti. In caso contrario, scarica un semplice .deb pacchetto per i test, come il cowsay espediente da riga di comando.
Per ottenere il file, esegui quanto segue:
wget http://archive.ubuntu.com/ubuntu/pool/universe/c/cowsay/cowsay_3.03+dfsg2-4_all.deb
Conferma il .deb file scaricato elencando il contenuto della directory con il comando ls:
ls -l *.deb
L'output mostra il .deb pacchetto.
Installa pacchetto
Installa un pacchetto Debian con dpkg
comando e il -i
o --install
tag:
sudo dpkg -i <package.deb>
Ad esempio:
sudo dpkg -i cowsay_3.03+dfsg2-4_all.deb
Il comando richiede sudo per installare un .deb pacchetto.
Elenca i pacchetti conosciuti
Per elencare tutti i pacchetti conosciuti, usa il -l
tag:
dpkg -l
Il comando stampa i pacchetti in modalità pager. Naviga utilizzando i tasti freccia oppure usa lo spazio elencare per pagina. Premi q per uscire dalla lista. Le colonne elencano il nome, la versione, l'architettura e la descrizione di ogni pacchetto.
Le prime tre colonne forniscono una panoramica completa dello stato del pacchetto:
1. Selezione azione:
u
- Sconosciutoi
- Installah
- Tienir
- Rimuovip
- Elimina
2. Stato del pacchetto:
n
- Non installatoc
- File di configurazioneH
- Installato a metàU
- DisimballatoF
- Configurato a metàW
- In attesa di triggert
- Trigger in sospesoi
- Installato
3. Flag di errore:
R
- Necessaria la reinstallazione<empty>
- Nessun errore
Pertanto, uno stato del pacchetto "ii
" significa dpkg
installato correttamente il pacchetto selezionato per l'installazione senza errori.
Per recuperare un'istanza specifica dall'elenco, utilizza:
dpkg -l <package>
Ad esempio:
dpkg -l cowsay
Per elencare più pacchetti, separa ogni nome di pacchetto con uno spazio.
Rimuovi pacchetto
Per rimuovere un pacchetto Debian, utilizzare il seguente comando:
dpkg -r <package>
Ad esempio, per rimuovere il pacchetto cowsay, utilizzare:
sudo dpkg -r cowsay
Il -r
l'opzione non rimuove i file di configurazione. Utilizzare questa opzione durante la rimozione del software per la reinstallazione.
Pacchetto di eliminazione
Per eliminare un pacchetto, utilizza il -P
opzione:
sudo dpkg -P <package>
Ad esempio:
sudo dpkg -P cowsay
Il comando rimuove un pacchetto insieme a tutti i file di configurazione. Usa l'eliminazione per rimuovere del tutto un programma dal sistema.
Mostra contenuto pacchetto
Un .deb pacchetto contiene diversi file e directory, che indicano dove risiede il pacchetto dopo l'installazione o la decompressione.
Per visualizzare il contenuto del pacchetto, esegui:
dpkg -c <package.deb>
Ad esempio:
dpkg -c cowsay*
L'output mostra tutti i file e le directory in .deb file del pacchetto. Il pacchetto di esempio risiede in /usr/games/ e /usr/share/ dopo l'installazione o il disimballaggio.
Disimballare il pacchetto
Per decomprimere il pacchetto senza configurazione, utilizzare:
sudo dpkg --unpack <package.deb>
Ad esempio:
sudo dpkg --unpack cowsay*
Il comando decomprime tutti i file dal pacchetto.
Configura pacchetto
Per configurare un .deb decompresso pacchetto o riconfigurare un pacchetto installato, utilizzare:
dpkg --configure <package>
Ad esempio:
sudo dpkg --configure cowsay
La decompressione e la configurazione di un pacchetto Debian divide il processo di installazione in due passaggi.
Verifica se il pacchetto è installato
Per verificare se un pacchetto è installato, utilizza il -s
tag:
dpkg -s <package>
Ad esempio:
dpkg -s cowsay
Lo Stato la riga mostra se un pacchetto è installato.
Mostra informazioni sul pacchetto
Per mostrare le informazioni sul pacchetto direttamente da .deb file, utilizzare il seguente comando:
dpkg -I <package.deb>
Ad esempio:
dpkg -I cowsay*
Il comando mostra le informazioni sul pacchetto, come le dimensioni, le dipendenze e i riferimenti alla documentazione. Utilizzare questo metodo per controllare le informazioni sul pacchetto prima di installare un pacchetto.
Installa tutti i pacchetti da una directory
Usa il -R
opzione prima di -i
per installare i pacchetti in modo ricorsivo:
dpkg -R -i <directory>
Il comando installa tutti i pacchetti che si trovano nella directory e tutte le sottodirectory. Se più istanze dello stesso pacchetto vengono decompresse, si verifica una sola configurazione.
Elenca le posizioni dei file di pacchetto installati
Per elencare i file del pacchetto e la loro posizione, usa il -L
tag:
dpkg -L <package>
Ad esempio:
dpkg -L cowsay
L'output elenca tutte le directory e le posizioni dei file.
Ottieni le selezioni di pacchetti
Per recuperare i nomi dei pacchetti in base alla selezione, utilizzare:
dpkg --get-selections
L'elenco mostra i nomi dei pacchetti e il contrassegno di selezione.
Elenca i pacchetti installati
Per recuperare un elenco di pacchetti installati, utilizzare il comando seguente:
dpkg --get-selections | grep -v "deinstall" | awk '{ print $1 }'
Il comando esegue le seguenti operazioni:
grep
filtra i pacchetti contrassegnati da"deinstall"
.awk
stampa solo la prima colonna con i nomi dei pacchetti.
Utilizzare questo metodo quando è necessario un elenco di programmi installati.
Imposta le selezioni dei pacchetti
Imposta la selezione del pacchetto per un pacchetto nel seguente formato:
echo <package> <state> | dpkg --set-selections
Il comando prevede lo stato del pacchetto come input standard. Le condizioni possibili sono:
install
hold
deinstall
purge
unknown
Ad esempio, per interrompere l'aggiornamento di un pacchetto, utilizzare:
echo cowsay hold | sudo dpkg --set-selections
Il pacchetto è in stato di attesa, il che significa che il programma non riceve aggiornamenti automatici.
Cerca il pacchetto contenente i file
Per trovare un pacchetto contenente un file, utilizza il -S
opzione:
dpkg -S <pattern>
Ad esempio, cerca apt-get:
dpkg -S apt-get
L'output mostra apt-get appartiene all'apt pacchetto.
In alternativa, cerca un file specifico. Ad esempio:
dpgk -S gnu.cow
L'output mostra che il file appartiene al pacchetto cowsay.
Confronta le versioni
Il dpkg
Il comando offre uno strumento per confrontare i numeri di versione del programma. La sintassi è:
dpkg --compare-versions <version number> <comparison operator> <version number>
I possibili operatori di confronto sono:
lt
- Rigorosamente inferiore ale
- Minore o uguale aeq
- Ugualene
- Non ugualege
- Maggiore o uguale agt
- Rigorosamente maggiore di
dpkg
restituisce 0 (successo) per un confronto corretto e un valore diverso da zero per errore.
Ad esempio, confronta i seguenti numeri di versione:
dpkg --compare-versions 1.2-3 gt 1.1-4
echo $?
Il comando restituisce 0
, indicando che il numero della prima versione è maggiore della seconda.
Supporto multi-architettura
Tutti i pacchetti Debian contengono informazioni sull'architettura supportata. La restrizione garantisce che il sistema non finisca con i binari per un'architettura errata.
Alcune architetture supportano architetture diverse in modo nativo. Ad esempio, un amd64 (un sistema a 64 bit) supporta le installazioni i386 (un sistema a 32 bit).
Il dpkg
il comando corrisponde all'architettura dell'host. Recupera le informazioni con:
dpkg --print-architecture
Per vedere il supporto dell'architettura straniera, usa:
dpkg --print-foreign-architectures
Per aggiungere o rimuovere il supporto dell'architettura, usa:
sudo dpkg --add-architecture <architecture name>
sudo dpkg --remove-architecture <architecture name>
In entrambi i casi, le architetture straniere elencano immediatamente gli aggiornamenti con le modifiche.
Verifica la versione del comando dpkg
Per verificare quale versione di dpkg è in esecuzione nel sistema, utilizzare:
dpkg --version
L'output mostra la versione di dpkg insieme all'architettura.
Stampa guida
Per mostrare un semplice menu di aiuto, usa il seguente comando:
dpkg --help
Usa il comando man per trovare la documentazione completa.