Cómo listar y filtrar paquetes en Centos

Aprendemos a mostrar cómo listar y filtrar paquetes en Centos. Esto puede ser muy útil si queremos instalar los mismos paquetes, con sus respectivas versiones, en otro host; o si deseamos reinstalar nuestro sistema.

También nos puede servir para verificar si un paquete instalado, contar el número de paquetes instalados o averiguar la versión de un paquete dado.

Estos tips, también se pueden utilizar en sistemas RHEL o Scientific Linux

Listar paquetes instalados con Yum

YUM, acrónicmo en inglés de “Yellowdog Updates Modified”, es el administrador de paquetes de RHEL, Centos y Scientific Linux. Lo podemos utilizar para descargar, instalar, eliminar, consultar y administrar paquetes de software RPM. Todo esto desde los repositorios oficiales o de terceros.

Para listar los paquetes instalados en un sistema podemos utilizar el siguiente comando y parámetros:

  1. sudo yum list installed

Se imprimirá en pantalla una lista de todos los paquetes instalados, incluida la información sobre las versiones y el repositorio de los paquetes.

  1. [root@servcentos]# yum list installed | less
  2. Complementos cargados:fastestmirror
  3. Paquetes instalados
  4. GeoIP.x86_64                          1.5.0-13.el7                     @anaconda
  5. NetworkManager.x86_64                 1:1.12.0-8.el7_6                 @updates
  6. NetworkManager-libnm.x86_64           1:1.12.0-8.el7_6                 @updates
  7. NetworkManager-team.x86_64            1:1.12.0-8.el7_6                 @updates
  8. NetworkManager-tui.x86_64             1:1.12.0-8.el7_6                 @updates
  9. acl.x86_64                            2.2.51-14.el7                    @anaconda
  10. aic94xx-firmware.noarch               30-6.el7                         @anaconda
  11. alsa-firmware.noarch                  1.0.28-2.el7                     @anaconda
  12. alsa-lib.x86_64                       1.1.6-2.el7                      @anaconda
  13. alsa-tools-firmware.x86_64            1.1.0-1.el7                      @anaconda
  14. apr.x86_64                            1.4.8-3.el7_4.1                  @base
  15. apr-util.x86_64                       1.5.2-6.el7                      @base
  16. audit.x86_64                          2.8.4-4.el7                      @anaconda
  17. audit-libs.x86_64                     2.8.4-4.el7                      @anaconda
  18. authconfig.x86_64                     6.2.8-30.el7                     @anaconda
  19. basesystem.noarch                     10.0-7.el7.centos                @anaconda
  20. bash.x86_64                           4.2.46-31.el7                    @anaconda
  21. bind-libs-lite.x86_64                 32:9.9.4-72.el7                  @anaconda
  22. bind-license.noarch                   32:9.9.4-72.el7                  @anaconda
  23. binutils.x86_64                       2.27-34.base.el7                 @anaconda
  24. biosdevname.x86_64                    0.7.3-1.el7                      @anaconda
  25. (...)

Como la lista es muy extensa, para poder consultarla más fácilmente, podemos combinar la salida, con comandos como “less” o “more”

  1. sudo yum list installed | less

Para saber si un paquete específico está instalado, podemos filtrar la salida con el comando ‘grep’

Por ejemplo, para saber si el paquete de descompresión está en nuestro sistema:

  1. sudo yum list installed | grep unzip

Con el resultado:

  1. [root@servcentos]# sudo yum list installed | grep unzip
  2. unzip.x86_64                          6.0-19.el7                       @base

Listar paquetes instalados con RPM

En Centos podemos usar el comando rpm, con la opción ‘-q’ , para consultar los paquetes. En el siguiente ejemplo, listaremos todos los paquetes instalados:

  1. sudo rpm -qa

A diferencia de yum, rpm nos mostrará solo los nombre de los paquetes.

Para consultar si un paquete determinado está instalado, debemos pasar el nombre del paquete utilizando el parámetro “-q”. Como en el siguiente ejemplo:

  1. sudo rpm -q tmux

Si el paquete está instalado nos devolverá un mensaje similar al siguiente:

  1. [root@servcentos]# sudo rpm -q tmux
  2. tmux-1.8-4.el7.x86_64

En caso contrario:

  1. [root@servcentos]# sudo rpm -q tmux
  2. el paquete tmux no está instalado

Crear una lista de paquetes instalados

Para saber que paquetes tenemos instalados en el sistema, podemos utilizar la salida estándar hacia un fichero, como sigue:

  1. sudo rpm -qa > packages_list.txt

De esta manera podemos utilizar dicho fichero, para realizar una instalación en otro host:

  1. sudo yum -y install $(cat packages_list.txt)

Contar el número de paquetes instalados

Para saber cuántos paquetes están instalados en el sistema, podemos combinar el comando con la herramienta “wc”, que se encarga de contar.

  1. sudo rpm -qa | wc -l

En mi caso:

  1. [root@servcentos]# sudo rpm -qa | wc -l
  2. 361

Espero que estos apuntes os puedan servir en algún momento.

Fuentes consultadas:

Linuxsize.com – How to list installed packages on Centos