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]