Introduzione

In questa guida, spiegheremo come elencare e filtrare i pacchetti installati su Debian. Ti mostreremo anche come verificare se è installato un pacchetto specifico, contare i pacchetti installati e scoprire la versione di un pacchetto installato.

Sapere come elencare i pacchetti installati sul proprio sistema basato su Debian può essere utile nelle situazioni in cui è necessario installare gli stessi pacchetti su un altro computer o se si desidera reinstallare il sistema.

Elencare i pacchetti installati con Apt

Apt è un'interfaccia a riga di comando per il sistema di gestione dei pacchetti e combina le funzionalità più comunemente utilizzate da apt-get e apt-cache include un'opzione per elencare i pacchetti installati.

Per elencare tutti i pacchetti installati sul tuo sistema esegui il seguente comando:

sudo apt list --installed
Listing... Done
adduser/stable,stable,now 3.118 all [installed]
apt-transport-https/stable,stable,now 1.8.2 all [installed]
apt-utils/stable,stable,now 1.8.2 amd64 [installed]
apt/stable,stable,now 1.8.2 amd64 [installed]
aptitude-common/stable,stable,now 0.8.11-7 all [installed,automatic]
aptitude/stable,stable,now 0.8.11-7 amd64 [installed]
base-files/stable,stable,now 10.3+deb10u3 amd64 [installed]
base-passwd/stable,stable,now 3.5.46 amd64 [installed]
bash-completion/stable,stable,now 1:2.8-6 all [installed]
bash/stable,stable,now 5.0-4 amd64 [installed]
bind9-host/stable,stable,now 1:9.11.5.P4+dfsg-5.1 amd64 [installed]
bsdmainutils/stable,stable,now 11.1.2+b1 amd64 [installed]
bsdutils/stable,stable,now 1:2.33.1-0.1 amd64 [installed]
bzip2/stable,stable,now 1.0.6-9.2~deb10u1 amd64 [installed]
ca-certificates/stable,stable,now 20190110 all [installed,automatic]
cloud-guest-utils/stable,stable,now 0.29-1 all [installed,automatic]
cloud-image-utils/stable,stable,now 0.29-1 all [installed,automatic]
cloud-init/stable,stable,now 18.3-6 all [installed]
cloud-initramfs-growroot/stable,stable,now 0.18.debian7 all [installed]
cloud-utils/stable,stable,now 0.29-1 all [installed]
console-setup-linux/stable,stable,now 1.193~deb10u1 all [installed,automatic]
console-setup/stable,stable,now 1.193~deb10u1 all [installed]
coreutils/stable,stable,now 8.30-3 amd64 [installed]
cpio/stable,stable,now 2.12+dfsg-9 amd64 [installed]

.....

Il comando visualizzerà un elenco di tutti i pacchetti installati, comprese le informazioni sulle versioni e sull'architettura dei pacchetti. La colonna più a destra nell'output mostra se il pacchetto è stato installato automaticamente come dipendenza di un altro pacchetto.

Poiché l'elenco dei pacchetti è lungo, è una buona idea convogliare l'output al comando less per semplificare la lettura:

sudo apt list --installed | less

Per scoprire se è installato un pacchetto specifico, utilizzare il comando grep per filtrare l'output. Ad esempio, per scoprire se il pacchetto tmux è installato sul sistema, digitare:

sudo apt list --installed | grep tmux
tmux/stable,now 2.3-4 amd64 [installed]

In questo caso, sul mio sistema, l'output mostra che ho installato tmux 2.3-4 sul sistema.

Elencare i pacchetti installati con dpkg-query

dpkg-query è una riga di comando che può essere utilizzata per visualizzare informazioni sui pacchetti elencati nel database dpkg.

Per ottenere un elenco di tutti i pacchetti installati digitare:

sudo dpkg-query -l | less
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                           Version                      Architecture Description
+++-==============================-============================-============-===============================================================================
ii  adduser                        3.118                        all          add and remove users and groups
ii  apt                            1.8.2                        amd64        commandline package manager
ii  apt-transport-https            1.8.2                        all          transitional package for https support
ii  apt-utils                      1.8.2                        amd64        package management related utility programs
ii  aptitude                       0.8.11-7                     amd64        terminal-based package manager
ii  aptitude-common                0.8.11-7                     all          architecture independent files for the aptitude package manager
ii  base-files                     10.3+deb10u3                 amd64        Debian base system miscellaneous files
ii  base-passwd                    3.5.46                       amd64        Debian base system master password and group files

...

Il comando visualizzerà un elenco di tutti i pacchetti installati, comprese le versioni dei pacchetti, l'architettura e una breve descrizione.

Puoi filtrare l'output dpkg-query -l usando il comando grep:

sudo dpkg-query -l | grep package_name_to_search

Creare un elenco di tutti i pacchetti installati

Il seguente comando memorizzerà l'elenco di tutti i pacchetti installati sul tuo sistema Debian in un file chiamato packages_list.txt:

sudo dpkg-query -f '${binary:Package}\n' -W > packages_list.txt

Ora che hai l'elenco, puoi installare gli stessi pacchetti sul tuo nuovo server con:

sudo xargs -a packages_list.txt apt install

Contare il numero di pacchetti installati

Per scoprire quanti pacchetti sono installati sul tuo sistema puoi usare lo stesso comando di quando crei un elenco di pacchetti ma invece di reindirizzare l'output su un file puoi reindirizzarlo al comando wc per contare le righe:

sudo dpkg-query -f '${binary:Package}\n' -W | wc -l

L'output mostrerà il numero di pacchetti installati:

388

Conclusione

In questo tutorial, hai imparato come elencare e filtrare i pacchetti installati sul tuo sistema Debian.