Cómo enumerar los paquetes RPM instalados en Linux
Los comandos rpm se utilizan distribuciones basadas en rpm como CentOS, Fedora, Opensuse y RHEL. Las distribuciones modernas de Linux usan el administrador de paquetes yum y DNF, que tiene más funciones.
Este tutorial explica las opciones que se pueden agregar al comando rpm (Redhat Package Manager) para listar paquetes en Linux.
1) Lista de todos los paquetes instalados
Para consultar toda la base de datos de RPM, usaremos -qa
opción (consultar todo) para enumerar todos los paquetes instalados en Linux.
# sudo rpm -qa
Output grub2-tools-extra-2.02-0.65.el7.centos.2.x86_64 ncurses-base-5.9-14.20130511.el7_4.noarch libpipeline-1.2.3-3.el7.x86_64 kbd-misc-1.15.5-13.el7.noarch tuned-2.9.0-1.el7.noarch bash-4.2.46-30.el7.x86_64 info-5.1-5.el7.x86_64 ...
2) Lista de paquetes específicos instalados
Puede filtrar el rpm -qa
resultados usando el comando grep para listar paquetes específicos.
El siguiente comando mostrará una lista de paquetes específicos relacionados con ‘ssh’.
# rpm -qa | grep ssh
sample output openssh-clients-7.4p1-16.el7.x86_64 openssh-7.4p1-16.el7.x86_64 openssh-server-7.4p1-16.el7.x86_64 libssh2-1.4.3-10.el7_2.1.x86_64
Utilice el siguiente comando para encontrar la fecha de instalación de un paquete específico
# rpm -q --last openssh openssh-5.3p1-118.1.el6_8.x86_64 Wed 01 Mar 2017 08:30:12 PM UTC
3) Lista de información detallada sobre un paquete
Para mostrar información detallada sobre el paquete, como la versión, el lanzamiento, el tamaño de la fecha de instalación y la firma, use la opción qi. Por ejemplo, verifiquemos la información detallada del paquete ‘openssh’
# rpm -qi openssh
4) Listar el paquete instalado consultando un archivo
Nosotros instalamos ssh
desde el openssh-server-5.3p1-84.1.el6.x86_64
paquete. Nosotros podemos usar -qf
opción (archivo de consulta) con el comando rpm en un archivo de configuración.
El siguiente ejemplo enumerará el nombre del paquete relacionado con el archivo (‘/ etc / ssh / sshd_config’) mencionado el comando:
# rpm -qf /etc/ssh/sshd_config
output openssh-server-7.4p1-16.el7.x86_64
5) Mostrar todos los archivos instalados por un paquete
Usaremos -ql
opción con el comando rpm para mostrar todos los archivos de este paquete instalado en el sistema.
# rpm -ql openssh-server-7.4p1-16.el7.x86_64
output /etc/pam.d/sshd /etc/ssh/sshd_config /etc/sysconfig/sshd /usr/lib/systemd/system/sshd-keygen.service /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sshd.socket /usr/lib/systemd/system/sshd@.service /usr/lib64/fipscheck/sshd.hmac /usr/libexec/openssh/sftp-server /usr/sbin/sshd /usr/sbin/sshd-keygen /usr/share/man/man5/moduli.5.gz /usr/share/man/man5/sshd_config.5.gz /usr/share/man/man8/sftp-server.8.gz /usr/share/man/man8/sshd.8.gz /var/empty/sshd
6) Enumere solo los archivos de configuración del paquete
Usaremos -qc
opción con rpm
comando para mostrar el archivo de configuración relacionado con el paquete.
# rpm -qc openssh-server-7.4p1-16.el7.x86_64
output /etc/pam.d/sshd /etc/ssh/sshd_config /etc/sysconfig/sshd
7) Enumere solo los archivos de documentación del paquete
Usaremos -qd
opción (consultar documentación) con rpm
comando para enumerar solo los archivos de documentación.
# rpm -qd openssh-server-7.4p1-16.el7.x86_64
output /usr/share/man/man5/moduli.5.gz /usr/share/man/man5/sshd_config.5.gz /usr/share/man/man8/sftp-server.8.gz /usr/share/man/man8/sshd.8.gz
8) Cuente el número total de paquetes instalados
En Linux podemos usar el comando wc para contar, por lo que podemos canalizarlo con el comando rpm query para obtener el recuento total de paquetes instalados.
# rpm -qa | wc -l 222
Si está utilizando el administrador de paquetes yum o dnf, utilice el siguiente comando:
# yum list installed | wc -l # dnf list installed | wc -l # repoquery -a --installed | wc -l
9) Enumere todos los paquetes instalados usando el comando repoquery
En la nueva versión de CentOS, RHEL y Fedora, admite el uso del comando repoquery para enumerar todos los paquetes instalados. Si está usando el administrador de paquetes dnf, instale ‘dnf-utils’ y para el administrador de paquetes yum instale ‘yum-utils’ para usar repoquery.
# dnf install dnf-utils
# yum install yum-utils
Ejecute el siguiente comando para listar todos los paquetes instalados usando el comando repoquery:
# repoquery -a --installed
10) Enumere los paquetes instalados de un repositorio específico
Puede enumerar los paquetes instalados desde un repositorio específico como el repositorio EPEL en las distribuciones RHEL o CentOS 7 o CentOS 8.
El siguiente comando enumera todos los paquetes instalados desde el repositorio ‘EPEL’:
# yum list installed | grep @epel
Yumdb es otro comando disponible para listar los paquetes instalados desde un repositorio específico. Yumdb viene con el paquete ‘yum-utils’, así que asegúrese de instalarlo.
El siguiente comando yumdb mostrará todos los paquetes instalados desde el repositorio ‘EPEL’:
# yumdb search from_repo epel
11) Cómo restaurar el archivo de configuración del paquete RPM
Si por alguna razón un archivo se ha dañado o se ha eliminado del sistema, podemos comenzar con el rpm -qf
opción de consulta para averiguar de qué paquete se originó el archivo. Siguiente uso rpm2cpio | cpio -idmv
para extraer los archivos del paquete. Considere el ejemplo de ssh:
Suponiendo que el /etc/ssh/sshd_config
El archivo se ha eliminado y es posible que no queramos reinstalar ssh, por lo que restauraremos el archivo siguiendo los pasos a continuación.
- El siguiente comando muestra que el archivo proviene del paquete openssh-server-7.4p1-16.el7.x86_64.
# rpm -qf /etc/init.d/sshd
- Descargue el rpm de Openssh desde su fuente
- Dupdo
openssh-server-7.4p1-16.el7.x86_64
archivo de paquete a/tmp
directorio o cualquier otro directorio de su elección. - Usar
rpm2cpio | cpio -idmv
para extraer el paquete.
Los comandos que usamos en los pasos anteriores crearon algunos subdirectorios en /tmp
. Ahora podemos copiarlo a su ubicación original.
Conclusión
En este tutorial, aprendimos diferentes formas de listar los paquetes rpm instalados en Linux. Espero que haya disfrutado de la lectura y deje sus sugerencias en la sección de comentarios a continuación.