A cosa serve dpkg?


21

La mia domanda è semplice: voglio saperne di più su dpkg: cosa fa?


Questo è stato modificato almeno due volte per migliorare la chiarezza - per quanto valga la pena tenere aperto (purché non sia un duplicato) perché ha generato almeno una buona risposta.
belacqua

1
dovresti visitare prima: en.wikipedia.org/wiki/Dpkg
Pandya,

Risposte:


17

Come è stato detto, dpkgè uno strumento di sistema di basso livello per estrarre, analizzare, decomprimere e installare o rimuovere i file .deb. Tuttavia, è meglio utilizzare Software Centreo Gdebiinstallare o rimuovere i file .deb acquisiti da altre fonti poiché questi due programmi hanno una risoluzione delle dipendenze.

Tuttavia, ciò che non è stato spiegato è l' anatomia di un aggiornamento usando dpkge apt-get. Se, ad esempio, chiamiamo apt-getper installare cheese, l'albero delle dipendenze viene analizzato e vengono recuperati i file necessari apt-get, che poi li passa dpkgper estrarre, analizzare e installare nelle posizioni corrette e configurarli secondo gli script al loro interno.

Gli script letti dpkgall'interno di ciascun file .deb sono importanti in quanto forniscono informazioni al programma in merito all'installazione, rimozione e configurazione dei pacchetti. Quindi, quando guardi dentro, /var/log/dpkg.logci sono molti dettagli dettagliati su "trigger" e pacchetti che attraversano varie fasi di decompressione e configurazione. Nel suo blog, Raphael Hertzog (che è uno sviluppatore Debian chiave e manutentore del dpkgpacchetto) spiega di più sui trigger di dpkg e sul modo in cui dpkgispeziona e configura i pacchetti.

Ora stiamo arrivando al cuore di ciò che dpkgfa; gestisce abilmente i pacchetti Debian, piuttosto che le loro dipendenze. Con dpkg-deb, ad esempio, è possibile eseguire varie azioni nell'analisi e nell'estrazione manuale dei file dagli archivi .deb; vedere man dpkg-debper ulteriori informazioni.

Lo stato di ciascun pacchetto è elencato in /var/lib/dpkg/status, che può essere utilizzato con grepper verificare un pacchetto specifico. Dpkgpuò anche essere chiamato per riconfigurare particolari pacchetti che sono stati configurati (vedi man dpkg-reconfigure):

sudo dpkg-reconfigure <package>

Oppure per effettuare una configurazione di tutti i pacchetti non configurati se si è verificato un problema con un aggiornamento e la configurazione di alcuni pacchetti è ancora in sospeso:

sudo dpkg --configure -a

Per un ottimo tutorial che si concentra su dpkge apt-get, vedere i capitoli 5 e 6 del Manuale Debian , che è la migliore discussione disponibile. Entra man dpkgnel tuo terminale o visualizza le manpage di Ubuntu online per vedere tutte le molte opzioni disponibili, come usare dpkg -lper elencare i pacchetti attualmente installati.


4

dpkg è un modo da riga di comando per installare da un .deb o rimuovere pacchetti già installati. Ad esempio, se nella directory home fosse presente un file .deb, l'esecuzione dpkg -i yourpackage.debinstallerà quel pacchetto. Trovo questo utile almeno per me perché a volte quando si fa clic su un file .deb carica Ubuntu Software Center ma non lo installa mai o ha problemi.


4

Come sempre, il mancomando è un ottimo punto di partenza.
man dpkgpuò darti tutte le opzioni, tuttavia:

dpkg è un gestore di pacchetti per sistemi basati su Debian. Può installare, rimuovere e creare pacchetti, ma a differenza di altri sistemi di gestione dei pacchetti non può scaricare e installare automaticamente i pacchetti e le loro dipendenze.

Quindi sostanzialmente è apt-get senza risoluzione delle dipendenze, ed è usato per installare i file .deb.

Ti avverto però: la disinstallazione dei pacchetti utilizzando dpkg, nella maggior parte dei casi, NON è consigliata. È meglio utilizzare un gestore di pacchetti che gestisce le dipendenze, per garantire che il sistema sia in uno stato coerente.

Ad esempio, utilizzando dpkg -r zipè possibile rimuovere il pacchetto zip, ma eventuali pacchetti che dipendono da esso verranno comunque installati e potrebbero non funzionare più correttamente.

Puoi leggere qualcosa in più nella guida del server e altrove .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.