A cosa serve dpkg?

19

La mia domanda è semplice - voglio sapere di più su dpkg - che cosa fa?

    
posta Ten-Coin 08.08.2012 - 17:31

3 risposte

15

Come è stato detto, dpkg è uno strumento di sistema di basso livello per estrarre, analizzare, decomprimere e installare o rimuovere i file .deb. Tuttavia, è meglio usare Software Centre o Gdebi per installare o rimuovere i file .deb che sono stati ottenuti da altre fonti perché questi due programmi hanno una risoluzione delle dipendenze.

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

Gli script letti da dpkg all'interno di ogni file .deb sono importanti in quanto forniscono informazioni al programma riguardo l'installazione, la rimozione e la configurazione dei pacchetti. Quindi quando guardi in /var/log/dpkg.log ci sono molti dettagli dettagliati su 'trigger' e pacchetti che attraversano varie fasi di disimballaggio e configurazione. Nel suo blog, Raphael Hertzog (che è uno sviluppatore e manutentore Debian chiave del pacchetto dpkg ) spiega di più sui trigger dpkg e il modo in cui dpkg ispeziona e configura i pacchetti.

Ora stiamo entrando nel vivo di ciò che dpkg fa; gestisce con competenza i pacchetti Debian, piuttosto che le loro dipendenze. Con dpkg-deb , ad esempio, è possibile eseguire varie azioni di analisi e estrazione manuale dei file dagli archivi .deb; vedere man dpkg-deb per ulteriori informazioni.

Lo stato di ogni pacchetto è elencato in /var/lib/dpkg/status , che può essere utilizzato con grep per controllare un particolare pacchetto. Dpkg può anche essere chiamato per riconfigurare particolari pacchetti che sono stati configurati (vedi man dpkg-reconfigure ):

sudo dpkg-reconfigure <package>

O fare una configurazione di tutti i pacchetti non configurati se c'è stato 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 dpkg e apt-get , vedi i capitoli 5 e 6 del Manuale di Debian , che è la migliore discussione disponibile. Inserisci man dpkg nel tuo terminale o visualizza le manpage di Ubuntu online per vedere tutti i molti opzioni disponibili, come usare dpkg -l per elencare i pacchetti attualmente installati.

    
risposta data user76204 19.08.2012 - 02:09
4

dpkg è un modo da linea di comando per installare da .deb o rimuovere pacchetti già installati. Ad esempio se hai un file .deb nella tua home directory, l'esecuzione di dpkg -i yourpackage.deb installerà quel pacchetto per te. Trovo che questo sia utile per me perché a volte quando si fa clic su un file .deb carica il Software Center di Ubuntu ma non lo installa mai realmente o presenta problemi.

    
risposta data unknownone 09.08.2012 - 20:49
4

Come sempre, il comando man è un ottimo punto di partenza.
man dpkg può 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 in pratica apt-get senza risoluzione delle dipendenze, ed è usato per installare file .deb.

Ti avverto comunque che la disinstallazione dei pacchetti usando dpkg, nella maggior parte dei casi, NON è raccomandata. È meglio utilizzare un gestore di pacchetti che gestisca le dipendenze, per garantire che il sistema sia in uno stato coerente.

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

Puoi leggere ulteriori informazioni a riguardo nella guida del server e altrove

    
risposta data LnxSlck 08.08.2012 - 17:54

Leggi altre domande sui tag