20 ejemplos prácticos de comandos RPM en Linux


RPM (Red Hat Package Manager) es una utilidad de administración de paquetes de código abierto predeterminado y más popular para sistemas basados u200bu200ben Red Hat como (RHEL, CentOS y Fedora). La herramienta permite a los administradores y usuarios del sistema instalar, actualizar, desinstalar, consultar, verificar y administrar paquetes de software del sistema en los sistemas operativos Unix/Linux. El RPM antes conocido como archivo .rpm, que incluye bibliotecas y programas de software compilados que necesitan los paquetes. Esta utilidad solo funciona con paquetes creados en formato .rpm.

Este artículo proporciona algunos ejemplos útiles de comandos de 20 RPM que pueden resultarle útiles. Con la ayuda de este comando rpm, puede instalar, actualizar y eliminar paquetes en sus sistemas Linux.

Algunos datos sobre RPM (Administrador de paquetes de RedHat)

  1. RPM is free and released under GPL (General Public License).
  2. RPM keeps the information of all the installed packages under /var/lib/rpm database.
  3. RPM is the only way to install packages under Linux systems, if you’ve installed packages using source code, then rpm won’t manage it.
  4. RPM deals with .rpm files, which contains the actual information about the packages such as: what it is, from where it comes, dependencies info, version info etc.

Hay cinco modos básicos para el comando RPM

  1. Install : It is used to install any RPM package.
  2. Remove : It is used to erase, remove or un-install any RPM package.
  3. Upgrade : It is used to update the existing RPM package.
  4. Verify : It is used to verify an RPM packages.
  5. Query : It is used query any RPM package.

Dónde encontrar paquetes RPM

A continuación se muestra la lista de sitios de rpm, donde puede encontrar y descargar todos los paquetes de RPM.

  1. http://rpmfind.net
  2. http://www.redhat.com
  3. http://freshrpms.net/
  4. http://rpm.pbone.net/

Leer también:

  1. 20 YUM Command Examples in Linux
  2. 10 Wget Command Examples in Linux
  3. 30 Most Useful Linux Commands for System Administrators

Recuerde que debe ser un usuario root al instalar paquetes en Linux, con los privilegios de root puede administrar los comandos rpm con sus opciones apropiadas.

1. Cómo verificar un paquete RPM Signature

Siempre verifique la firma PGP de los paquetes antes de instalarlos en sus sistemas Linux y asegúrese de que su integridad y origen sean correctos. Use el siguiente comando con la opción –checksig (verificar firma) para verificar la firma de un paquete llamado pidgin.

[[email protected]]# rpm --checksig pidgin-2.7.9-5.el6.2.i686.rpm

pidgin-2.7.9-5.el6.2.i686.rpm: rsa sha1 (md5) pgp md5 OK

2. Cómo instalar un paquete RPM

Para instalar un paquete de software rpm, use el siguiente comando con la opción -i. Por ejemplo, para instalar un paquete rpm llamado pidgin-2.7.9-5.el6.2.i686.rpm.

[[email protected]]# rpm -ivh pidgin-2.7.9-5.el6.2.i686.rpm

Preparing...                ########################################### [100%]
   1:pidgin                 ########################################### [100%]
  1. -i : install a package
  2. -v : verbose for a nicer display
  3. -h: print hash marks as the package archive is unpacked.

3. Cómo comprobar las dependencias del paquete RPM antes de instalar

Supongamos que le gustaría realizar una verificación de dependencia antes de instalar o actualizar un paquete. Por ejemplo, use el siguiente comando para verificar las dependencias del paquete BitTorrent-5.2.2-1-Python2.4.noarch.rpm. Mostrará la lista de dependencias del paquete.

[[email protected]]# rpm -qpR BitTorrent-5.2.2-1-Python2.4.noarch.rpm

/usr/bin/python2.4
python >= 2.3
python(abi) = 2.4
python-crypto >= 2.0
python-psyco
python-twisted >= 2.0
python-zopeinterface
rpmlib(CompressedFileNames) = 2.6
  1. -q : Query a package
  2. -p : List capabilities this package provides.
  3. -R: List capabilities on which this package depends..

4. Cómo instalar un paquete RPM sin dependencias

Si sabe que todos los paquetes necesarios ya están instalados y RPM simplemente está siendo estúpido, puede ignorar esas dependencias usando la opción –nodeps (sin verificación de dependencias) antes de instalar el paquete.

[[email protected]]# rpm -ivh --nodeps BitTorrent-5.2.2-1-Python2.4.noarch.rpm

Preparing...                ########################################### [100%]
   1:BitTorrent             ########################################### [100%]

El comando anterior instala forzosamente el paquete rpm ignorando los errores de dependencia, pero si faltan esos archivos de dependencia, el programa no funcionará en absoluto hasta que los instale.

5. Cómo comprobar un paquete RPM instalado

El uso de la opción -q con el nombre del paquete mostrará si un rpm está instalado o no.

[[email protected]]# rpm -q BitTorrent

BitTorrent-5.2.2-1.noarch

6. Cómo enumerar todos los archivos de un paquete RPM instalado

Para ver todos los archivos de un paquete rpm instalado, use el comando -ql (lista de consultas) con rpm.

[[email protected]]# rpm -ql BitTorrent

/usr/bin/bittorrent
/usr/bin/bittorrent-console
/usr/bin/bittorrent-curses
/usr/bin/bittorrent-tracker
/usr/bin/changetracker-console
/usr/bin/launchmany-console
/usr/bin/launchmany-curses
/usr/bin/maketorrent
/usr/bin/maketorrent-console
/usr/bin/torrentinfo-console

7. Cómo enumerar los paquetes RPM instalados recientemente

Use el siguiente comando rpm con la opción -qa (consultar todo), listará todos los paquetes rpm instalados recientemente.

[[email protected]]# rpm -qa --last

BitTorrent-5.2.2-1.noarch                     Tue 04 Dec 2012 05:14:06 PM BDT
pidgin-2.7.9-5.el6.2.i686                     Tue 04 Dec 2012 05:13:51 PM BDT
cyrus-sasl-devel-2.1.23-13.el6_3.1.i686       Tue 04 Dec 2012 04:43:06 PM BDT
cyrus-sasl-2.1.23-13.el6_3.1.i686             Tue 04 Dec 2012 04:43:05 PM BDT
cyrus-sasl-md5-2.1.23-13.el6_3.1.i686         Tue 04 Dec 2012 04:43:04 PM BDT
cyrus-sasl-plain-2.1.23-13.el6_3.1.i686       Tue 04 Dec 2012 04:43:03 PM BDT

8. Cómo enumerar todos los paquetes RPM instalados

Escriba el siguiente comando para imprimir todos los nombres de los paquetes instalados en su sistema Linux.

[[email protected]]# rpm -qa

initscripts-9.03.31-2.el6.centos.i686
polkit-desktop-policy-0.96-2.el6_0.1.noarch
thunderbird-17.0-1.el6.remi.i686

9. Cómo actualizar un paquete RPM

Si queremos actualizar cualquier paquete RPM se utilizará la opción “–U” (actualización). Una de las principales ventajas de usar esta opción es que no solo actualizará la última versión de cualquier paquete, sino que también mantendrá la copia de seguridad del paquete anterior para que, en caso de que el paquete actualizado más nuevo no ejecute el paquete instalado previamente se puede utilizar de nuevo.

[[email protected]]# rpm -Uvh nx-3.5.0-2.el6.centos.i686.rpm
Preparing...                ########################################### [100%]
   1:nx                     ########################################### [100%]

10. Cómo quitar un paquete RPM

Para desinstalar un paquete RPM, por ejemplo, usamos el nombre del paquete nx, no el nombre del paquete original nx-3.5.0-2.el6.centos.i686.rpm. La opción -e (borrar) se usa para eliminar el paquete.

[[email protected]]# rpm -evv nx

11. Cómo eliminar un paquete RPM sin dependencias

La opción –nodeps (No comprobar dependencias) elimina a la fuerza el paquete rpm del sistema. Pero tenga en cuenta que eliminar un paquete en particular puede romper otras aplicaciones que funcionan.

[[email protected]]# rpm -ev --nodeps vsftpd

12. Cómo consultar un archivo que pertenece a qué paquete RPM

Supongamos que tiene una lista de archivos y le gustaría saber qué paquete pertenece a estos archivos. Por ejemplo, el siguiente comando con la opción -qf (archivo de consulta) le mostrará un archivo/usr/bin/htpasswd que pertenece al paquete httpd-tools-2.2.15-15.el6.centos.1.i686.

[[email protected]]# rpm -qf /usr/bin/htpasswd

httpd-tools-2.2.15-15.el6.centos.1.i686

13. Cómo consultar la información del paquete RPM instalado

Supongamos que ha instalado un paquete rpm y desea conocer la información sobre el paquete. La siguiente opción -qi (información de consulta) imprimirá la información disponible del paquete instalado.

[[email protected]]# rpm -qi vsftpd

Name        : vsftpd				   Relocations: (not relocatable)
Version     : 2.2.2				   Vendor: CentOS
Release     : 11.el6				   Build Date: Fri 22 Jun 2012 01:54:24 PM BDT
Install Date: Mon 17 Sep 2012 07:55:28 PM BDT      Build Host: c6b8.bsys.dev.centos.org
Group       : System Environment/Daemons           Source RPM: vsftpd-2.2.2-11.el6.src.rpm
Size        : 351932                               License: GPLv2 with exceptions
Signature   : RSA/SHA1, Mon 25 Jun 2012 04:07:34 AM BDT, Key ID 0946fca2c105b9de
Packager    : CentOS BuildSystem <http://bugs.centos.org>
URL         : http://vsftpd.beasts.org/
Summary     : Very Secure Ftp Daemon
Description :
vsftpd is a Very Secure FTP daemon. It was written completely from
scratch.

14. Obtenga la información del paquete RPM antes de instalar

Ha descargado un paquete de Internet y desea conocer la información de un paquete antes de instalarlo. Por ejemplo, la siguiente opción -qip (paquete de información de consulta) imprimirá la información de un paquete sqlbuddy.

[[email protected]]# rpm -qip sqlbuddy-1.3.3-1.noarch.rpm

Name        : sqlbuddy                     Relocations: (not relocatable)
Version     : 1.3.3                        Vendor: (none)
Release     : 1                            Build Date: Wed 02 Nov 2011 11:01:21 PM BDT
Install Date: (not installed)              Build Host: rpm.bar.baz
Group       : Applications/Internet        Source RPM: sqlbuddy-1.3.3-1.src.rpm
Size        : 1155804                      License: MIT
Signature   : (none)
Packager    : Erik M Jacobs
URL         : http://www.sqlbuddy.com/
Summary     : SQL Buddy â Web based MySQL administration
Description :
SQLBuddy is a PHP script that allows for web-based MySQL administration.

15. Cómo consultar la documentación del paquete RPM instalado

Para obtener la lista de documentación disponible de un paquete instalado, use el siguiente comando con la opción -qdf (archivo de documento de consulta) mostrará las páginas del manual relacionadas con el paquete vmstat.

[[email protected]]# rpm -qdf /usr/bin/vmstat

/usr/share/doc/procps-3.2.8/BUGS
/usr/share/doc/procps-3.2.8/COPYING
/usr/share/doc/procps-3.2.8/COPYING.LIB
/usr/share/doc/procps-3.2.8/FAQ
/usr/share/doc/procps-3.2.8/NEWS
/usr/share/doc/procps-3.2.8/TODO

16. Cómo verificar un paquete RPM

La verificación de un paquete compara la información de los archivos instalados del paquete con la base de datos rpm. El -Vp (verificar paquete) se usa para verificar un paquete.

[[email protected] downloads]# rpm -Vp sqlbuddy-1.3.3-1.noarch.rpm

S.5....T.  c /etc/httpd/conf.d/sqlbuddy.conf

17. Cómo verificar todos los paquetes RPM

Escriba el siguiente comando para verificar todos los paquetes rpm instalados.

[[email protected]]# rpm -Va

S.5....T.  c /etc/rc.d/rc.local
.......T.  c /etc/dnsmasq.conf
.......T.    /etc/ld.so.conf.d/kernel-2.6.32-279.5.2.el6.i686.conf
S.5....T.  c /etc/yum.conf
S.5....T.  c /etc/yum.repos.d/epel.repo

18. Cómo importar una clave GPG de RPM

Para verificar los paquetes RHEL/CentOS/Fedora, debe importar la clave GPG. Para hacerlo, ejecute el siguiente comando. Importará la clave GPG de CentOS 6.

[[email protected]]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

19. Cómo enumerar todas las claves GPG RPM importadas

Para imprimir todas las claves GPG importadas en su sistema, use el siguiente comando.

[[email protected]]# rpm -qa gpg-pubkey*

gpg-pubkey-0608b895-4bd22942
gpg-pubkey-7fac5991-4615767f
gpg-pubkey-0f2672c8-4cd950ee
gpg-pubkey-c105b9de-4e0fd3a3
gpg-pubkey-00f97f56-467e318a
gpg-pubkey-6b8d79e6-3f49313d
gpg-pubkey-849c449f-4cb9df30

20. Cómo reconstruir la base de datos RPM dañada

A veces, la base de datos de rpm se corrompe y detiene toda la funcionalidad de rpm y otras aplicaciones en el sistema. Entonces, en ese momento, necesitamos reconstruir la base de datos rpm y restaurarla con la ayuda del siguiente comando.

[[email protected]]# cd /var/lib
[[email protected]]# rm __db*
[[email protected]]# rpm --rebuilddb
[[email protected]]# rpmdb_verify Packages