Se sei su un sistema basato su Debian o Debian (come Ubuntu), ci sono alte probabilità che potresti aver incontrato pacchetti .deb. Questi sono pacchetti Debian e la riga di comando di Linux offre comandi/strumenti integrati per gestire questo tipo di pacchetti. Uno di questi strumenti è dpkg , di cui parleremo qui in questo tutorial.
Ma prima di farlo, vale la pena ricordare che tutti gli esempi in questo tutorial sono stati testati su una macchina Ubuntu 16.04LTS.
Comando Linux dpkg
Lo strumento dpkg è fondamentalmente un gestore di pacchetti per sistemi basati su Debian/Debian. Di seguito è riportata la sua sintassi:
dpkg ACTIONS
O
dpkg [options] filename
Ed ecco come lo spiega la pagina man:
dpkg is a tool to install, build, remove and manage Debian packages.
The primary and more user-friendly front-end for dpkg is aptitude(1).
dpkg itself is controlled entirely via command line parameters, which
consist of exactly one action and zero or more options. The action-
parameter tells dpkg what to do and options control the behavior of the
action in some way.
dpkg can also be used as a front-end to dpkg-deb(1) and dpkg-query(1).
The list of supported actions can be found later on in the ACTIONS sec?
tion. If any such action is encountered dpkg just runs dpkg-deb or
dpkg-query with the parameters given to it, but no specific options are
currently passed to them, to use any such option the back-ends need to
be called directly.
Di seguito sono riportati alcuni esempi in stile domande e risposte che dovrebbero darti una buona idea di base su come funziona dpkg.
Q1. Come installare un pacchetto usando dpkg?
Puoi farlo usando l'opzione della riga di comando -i.
dpkg -i [package-name]
Ad esempio:
dpkg -i google-chrome-stable_current_amd64.deb
Ecco quali sono tutti i passaggi coinvolti nel processo di installazione:
1. Extract the control files of the new package.
2. If another version of the same package was installed before
the new installation, execute prerm script of the old package.
3. Run preinst script, if provided by the package.
4. Unpack the new files, and at the same time back up the old
files, so that if something goes wrong, they can be restored.
5. If another version of the same package was installed before
the new installation, execute the postrm script of the old pack?
age. Note that this script is executed after the preinst script
of the new package, because new files are written at the same
time old files are removed.
6. Configure the package. See --configure for detailed informa?
tion about how this is done.
Q2. Come rimuovere un pacchetto già installato utilizzando dpkg?
Questo può essere fatto usando l'opzione della riga di comando -r.
dpkg -r [package-name]
Ad esempio:
dpkg -r googler_3.3.0-1_all.deb
Ecco cosa dice la pagina man su questa opzione:
Removing of a package consists of the following steps:
1. Run prerm script
2. Remove the installed files
3. Run postrm script
T3. Come elencare tutti i pacchetti installati nel sistema?
Per questo, puoi usare l'opzione della riga di comando -l.
dpkg -l
Ad esempio, ecco l'output di questa opzione della riga di comando prodotta sul mio sistema:
Q4. Come fare in modo che dpkg elenchi il contenuto di un pacchetto?
Questo può essere fatto usando il flag --contents.
dpkg --contents [package name]
Ad esempio:
Q5. Come decomprimere un pacchetto usando dpkg?
Potrebbero esserci momenti in cui vorresti semplicemente decomprimere il pacchetto, non configurarlo. Bene, dpkg fornisce anche un'opzione per questo:--unpack.
dpkg --unpack [package-name]
Se in seguito desideri configurare un pacchetto già decompresso, puoi farlo utilizzando l'opzione della riga di comando --configure.
dpkg --configure [package-name]
Di seguito è riportato ciò che la pagina man dice su questa opzione:
Configuring consists of the following steps:
1. Unpack the conffiles, and at the same time back up the old
conffiles, so that they can be restored if something goes wrong.
2. Run postinst script, if provided by the package.
Q6. Come verificare se un pacchetto è installato o meno?
Usa l'opzione della riga di comando -s per questo.
dpkg -s [package-name]
Ad esempio:
Q7. Come stampare l'architettura dei pacchetti installati da dpkg?
È possibile accedere a queste informazioni utilizzando l'opzione della riga di comando --print-architecture.
dpkg --print-architecture
Ad esempio, l'output del comando precedente prodotto sul mio sistema era:
amd64
Q8. Come eliminare un pacchetto utilizzando dpkg?
Abbiamo già discusso di come rimuovere un pacchetto usando il comando dpkg. Puoi anche eliminare un pacchetto, un processo che rimuove tutto, inclusi i conffiles. Questo può essere fatto usando l'opzione della riga di comando -P.
dpkg -P [package-name]
Ecco cosa ha da dire la pagina man su questa opzione:
Some configuration files might be unknown to dpkg because
they are created and handled separately through the configura?
tion scripts. In that case, dpkg won't remove them by itself,
but the package's postrm script (which is called by dpkg), has
to take care of their removal during purge. Of course, this only
applies to files in system directories, not configuration files
written to individual users' home directories.
Purging of a package consists of the following steps:
1. Remove the package, if not already removed. See --remove for
detailed information about how this is done.
2. Run postrm script.
Conclusione
Il comando dpkg offre una pletora di opzioni. Ciò di cui abbiamo discusso qui sono quelle opzioni che ti aiuteranno a iniziare con lo strumento. Una volta che hai finito di esercitarti, vai alla pagina man del comando per ulteriori informazioni.