En artículos anteriores, exploramos el sistema utilizado para instalar software en sistemas basados en Debian, incluido Ubuntu, entre otros. RPMo “Red Hat Package Manager”, debutó en Red Hat Linux 2.0 en 1995 y ahora es el sistema de administración de paquetes preferido de las distribuciones basadas en Red Hat, incluidas CentOS y la distribución Linux de Oracle, así como SuSE.
Ahora veremos cómo se compara este sistema con el «modo Ubuntu» de administrar software.
Nota: Si está utilizando un sistema basado en DEB, puede tener el comando rpm. Sin embargo, es probable que no tenga una base de datos de paquetes, por lo que algunos de los siguientes comandos pueden mostrar algunos errores al hacer referencia a esto.
Conceptos básicos del paquete RPM
Un paquete RPM, como los DEB, consta de un archivo de archivos que el administrador de paquetes colocará en su computadora cuando se instale. También contiene el mismo tipo de información sobre otro software que necesita, por lo que el sistema puede descargar e instalar sus dependencias por usted. Simplemente envuelve todo esto de una manera diferente.
Al igual que los archivos DEB, un paquete RPM puede contener código binario (o ejecutable), código fuente compilado en binario antes de la instalación o archivos independientes de la arquitectura (como documentación). Un archivo RPM es un archivo cpio, que es un formato de archivo que se usó originalmente para copias de seguridad en cinta. Los RPM contienen tres tipos principales de datos:
- Datos que identifican el archivo como un paquete RPM
- Una firma para que el sistema pueda verificar que el paquete no ha sido manipulado (por ejemplo, un hash MD5 del paquete)
- El «Encabezado», que contiene información sobre el paquete, como el nombre, el número de versión y el resumen.
- La «carga útil» o los archivos que el paquete instalará en su sistema
A diferencia de los paquetes de Debian, ver parte de esta información no es tan fácil como desarchivar el paquete y mirar algunos archivos de texto. Si queremos echar un vistazo a la firma, digamos compararla con una firma en la base de datos RPM del sistema, necesitaríamos usar el programa RPM de línea de comandos de la siguiente manera:
sudo rpm --checksig rpm-4.9.1.3-6.fc17.x86_64.rpm
Para ver la información del encabezado, puede consultar el paquete con el siguiente comando:
sudo rpm -qip rpm-4.9.1.3-6.fc17.x86_64.rpm
Aquí, el indicador «-q» le dice a RPM que consulte el paquete, la «i» para obtener información sobre él y la «p» que indicará un archivo de paquete como argumento. Entonces, para ver qué archivos hay en el paquete, querrá una lista en lugar de información, o lo siguiente:
sudo rpm -qlp rpm-4.9.1.3-6.fc17.x86_64.rpm
También puede abrir archivos RPM directamente en muchos administradores de archivos para ver cómo están organizados los archivos en el paquete.
La base de datos RPM
Como se mencionó anteriormente, uno de los elementos principales del sistema de paquetes de Red Hat es la base de datos RPM. Almacenado en “/var/lib/rpm”, este directorio contiene una serie de subdirectorios y archivos que contienen información sobre los paquetes instalados en el sistema. Esta base de datos normalmente se configura durante la instalación del sistema. Una vez inicializado, cualquier paquete instalado en el sistema se registrará en esta base de datos; por ejemplo, la mayoría de los paquetes instalados con el sistema se realizan mediante RPM, por lo que se incluirán sus registros.
Para consultar la base de datos RPM, puede usar comandos similares a los anteriores, dejando el indicador «p» fuera (porque no proporcionamos un argumento de archivo de paquete). Por ejemplo, el siguiente comando buscará en la base de datos RPM y enumerará todos los archivos que forman parte del paquete rpm (si está instalado):
De la misma manera, el siguiente comando listará todos los paquetes instalados en el sistema:
Hay una gran cantidad de banderas y opciones que se pueden usar con las herramientas RPM para administrar su software. Una buena referencia es la documentación mantenida por el proyecto Fedora.