En algunas situaciones necesitamos saber qué paquetes tenemos instalados en nuestro sistema Debian o Ubuntu. En este caso, utilizamos la herramienta dpkg, que nos dará la información que necesitamos.

El siguiente comando nos dara el estado actual de paquetes instalados con sus diferentes estados:

dpkg --get-selections

Los estados que podemos tener son los siguientes:

  • install: The package is selected for installation.
  • hold: A package marked to be on hold is not handled by dpkg, unless forced to do that with option –force-hold.
  • deinstall: The package is selected for deinstallation (i.e. we want to remove all files, except configuration files).
  • purge: The package is selected to be purged (i.e. we want to remove everything from system directories, even configuration files).

Si queremos filtrar los paquetes, podemos combinar la herramienta dpkg con la herramienta grep. Aquí tienes un ejemplo de cómo filtrar los paquetes relacionados con nginx:

$ dpkg --get-selections | grep nginx
libnginx-mod-http-geoip                         install
libnginx-mod-http-image-filter                  install
libnginx-mod-http-lua                           install
libnginx-mod-http-ndk                           install
libnginx-mod-http-xslt-filter                   install
libnginx-mod-mail                               install
libnginx-mod-stream                             install
nginx                                           install
nginx-common                                    install
nginx-core                                      install
python3-certbot-nginx                           install

Además, podría exportar el resultado con un comando a un fichero:

$ dpkg --get-selections > ~/packages.txt

dpkg -l

Una alternativa a la opción previa es usar dpkg -l que también listará los paquetes instalados con la versión, la arquitectura y una descripción. La diferencia con el comando anterior es que en este caso no tenemos el estado del paquete.

El ejemplo con nginx sería:

$ dpkg -l | grep nginx
ii  libnginx-mod-http-geoip2                1.18.0-6ubuntu14.1                      arm64        GeoIP2 HTTP module for Nginx
ii  libnginx-mod-http-image-filter          1.18.0-6ubuntu14.1                      arm64        HTTP image filter module for Nginx
ii  libnginx-mod-http-xslt-filter           1.18.0-6ubuntu14.1                      arm64        XSLT Transformation module for Nginx
ii  libnginx-mod-mail                       1.18.0-6ubuntu14.1                      arm64        Mail module for Nginx
ii  libnginx-mod-stream                     1.18.0-6ubuntu14.1                      arm64        Stream module for Nginx
ii  libnginx-mod-stream-geoip2              1.18.0-6ubuntu14.1                      arm64        GeoIP2 Stream module for Nginx
ii  nginx                                   1.18.0-6ubuntu14.1                      arm64        small, powerful, scalable web/proxy server
ii  nginx-common                            1.18.0-6ubuntu14.1                      all          small, powerful, scalable web/proxy server - common files
ii  nginx-core                              1.18.0-6ubuntu14.1                      arm64        nginx web/proxy server (standard version)
ii  python3-certbot-nginx                   1.21.0-1                                all          Nginx plugin for Certbot

apt list

Y finalmente tenemos una alternativa con apt para ver los paquetes instalados.

Este es el ejemplo con nginx.

$ apt list --installed | grep -i nginx
libnginx-mod-http-geoip2/jammy-updates,jammy-security,now 1.18.0-6ubuntu14.1 amd64 [instalado, automático]
libnginx-mod-http-image-filter/jammy-updates,jammy-security,now 1.18.0-6ubuntu14.1 amd64 [instalado, automático]
libnginx-mod-http-xslt-filter/jammy-updates,jammy-security,now 1.18.0-6ubuntu14.1 amd64 [instalado, automático]
libnginx-mod-mail/jammy-updates,jammy-security,now 1.18.0-6ubuntu14.1 amd64 [instalado, automático]
libnginx-mod-stream-geoip2/jammy-updates,jammy-security,now 1.18.0-6ubuntu14.1 amd64 [instalado, automático]
libnginx-mod-stream/jammy-updates,jammy-security,now 1.18.0-6ubuntu14.1 amd64 [instalado, automático]
nginx-common/jammy-updates,jammy-security,now 1.18.0-6ubuntu14.1 all [instalado, automático]
nginx-core/jammy-updates,jammy-security,now 1.18.0-6ubuntu14.1 amd64 [instalado, automático]
nginx/jammy-updates,jammy-security,now 1.18.0-6ubuntu14.1 amd64 [instalado]
python3-certbot-nginx/jammy,now 1.21.0-1 all [instalado]