Cómo instalar RPM en CentOS

Por lo general, un usuario instala paquetes utilizando la utilidad de línea de comandos yum. Los repositorios oficiales de CentOS contienen miles de paquetes RPM, pero en algunos casos, puede encontrar un archivo RPM que no se encuentra en ningún repositorio.

Algunos autores de software proporcionan solo archivos RPM descargables para la instalación, y es por eso que los archivos RPM están diseñados para descargarse e instalarse de forma independiente, fuera de un repositorio de software.

En este tutorial, aprenderemos cómo instalar un archivo .rpm en su distribución de Linux CentOS.

¿Qué es el administrador de paquetes RPM?

Red Hat Package Manager es un sistema de administración de paquetes de código abierto y gratuito para instalar, desinstalar y administrar paquetes de software en Red Hat y sus derivados, como CentOS y Fedora.

Prerrequisitos

Antes de comenzar, debe asegurarse de tener sudo privilegios y que ha instalado en su sistema algunos de los administradores de paquetes RPM, DNF y YUM (todos incluidos de forma predeterminada).

Además, asegúrese de que el paquete RPM que desea instalar esté construido para la arquitectura de su sistema y su versión de CentOS.

Para el propósito de este tutorial, descargaremos e instalaremos el paquete Slack RPM en CentOS 8.

Descargar el paquete de instalación de RPM

Normalmente, se utiliza un navegador web para localizar y descargar un archivo .rpm, pero también puede utilizar herramientas de línea de comandos como wget o curl mando.

Para example, usaremos el comando wget para descargar el paquete slack (rpm) al directorio actual (lo estoy descargando en / tmp) de la siguiente manera:

$ wget https://downloads.slack-edge.com/linux_releases/slack-4.3.2-0.1.fc21.x86_64.rpm
--2020-02-15 23:11:20-- https://downloads.slack-edge.com/linux_releases/slack-4.3.2-0.1.fc21.x86_64.rpm
Resolving downloads.slack-edge.com (downloads.slack-edge.com)... 99.86.243.67, 99.86.243.88, 99.86.243.60, ...
Connecting to downloads.slack-edge.com (downloads.slack-edge.com)|99.86.243.67|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 60768380 (58M) [application/octet-stream]
Saving to: ‘slack-4.3.2-0.1.fc21.x86_64.rpm’

slack-4.3.2-0.1.fc21.x86_6 100%[========================================>] 57.95M 584KB/s in 2m 19s

2020-02-15 23:13:40 (427 KB/s) - ‘slack-4.3.2-0.1.fc21.x86_64.rpm’ saved [60768380/60768380]

Para verificar, puede usar el comando ls para listar el archivo rpm en el directorio ‘/ tmp’:

$ ls /tmp/
slack-4.3.2-0.1.fc21.x86_64.rpm

Instalación del archivo RPM usando el comando RPM

Puede instalar el paquete RPM utilizando dos métodos. Primero está usando el comando RPM, el otro está usando el administrador de paquetes yum.

En el siguiente comando usamos -i opción para instalar el paquete rpm de descarga:

$ sudo rpm -i /tmp/slack-4.3.2-0.1.fc21.x86_64.rpm
warning: ./slack-4.3.2-0.1.fc21.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 8e6c9578: NOKEY
error: Failed dependencies:
libXScrnSaver is needed by slack-4.3.2-0.1.fc21.x86_64
libappindicator-gtk3 is needed by slack-4.3.2-0.1.fc21.x86_64

De la salida anterior, podemos ver que la instalación falló debido a la falta de paquetes de dependencias. Así que tenemos que comprobar los paquetes de dependencia de rpm e instalarlos manualmente.

Verifique las dependencias de RPM

Para verificar las dependencias del paquete, tenemos dos opciones de rpm. Puedes usar -qpR para consultar el archivo rpm y -qR para consultar por nombre de paquete.

rpm -qpR .rpm-file

rpm -qR package-name

Para example, consultemos un archivo .rpm (usamos slack rpm, que ya descargamos antes) para encontrar todos los paquetes de dependencia requeridos:

$ sudo rpm -qpR /tmp/slack-4.3.2-0.1.fc21.x86_64.rpm
warning: slack-4.3.2-0.1.fc21.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 8e6c9578: NOKEY
libXScrnSaver
libappindicator-gtk3
libsecret-1.so.0()(64bit)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsXz) <= 5.2-1

Instalación de paquetes RPM con yum

Ahora viene la práctica herramienta llamada yum donde no tenemos que preocuparnos por las dependencias. Este administrador de paquetes yum puede extraer todas las dependencias necesarias y configurarlas para nosotros.

Ahora usaremos el administrador de paquetes yum para instalar nuestro paquete descargado con el siguiente comando:

$ sudo yum localinstall /tmp/slack-4.3.2-0.1.fc21.x86_64.rpm
CentOS-8 - AppStream 6.4 kB/s | 4.3 kB 00:00
CentOS-8 - Base 5.2 kB/s | 3.8 kB 00:00
CentOS-8 - Extras 2.7 kB/s | 1.5 kB 00:00
Extra Packages for Enterprise Linux Modular 8 - x86_6 26 kB/s | 27 kB 00:01
Extra Packages for Enterprise Linux 8 - x86_64 20 kB/s | 29 kB 00:01
Dependencies resolved.
======================================================================================
Package Architecture Version Repository Size
======================================================================================
Installing:
slack x86_64 4.3.2-0.1.fc21 @commandline 58 M

Transaction Summary
======================================================================================
Install 1 Package

Total size: 58 M
Installed size: 185 M
Is this ok [y/N]:

Después de escribir y instalará todas las dependencias y nuestro paquete:

Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : slack-4.3.2-0.1.fc21.x86_64 1/1
Running scriptlet: slack-4.3.2-0.1.fc21.x86_64 1/1
Verifying : slack-4.3.2-0.1.fc21.x86_64 1/1

Installed:
slack-4.3.2-0.1.fc21.x86_64

Complete!

Eliminando el paquete RPM

Para eliminar el paquete RPM, le indicamos a RPM que borre el software con -e opción.

En el siguiente example, desinstalaremos (eliminaremos) el paquete slack:

$ sudo rpm -e slack-4.3.2-0.1.fc21.x86_64

Conclusión

En este tutorial, le mostramos cómo instalar y eliminar paquetes RPM en CentOS. Debería preferir usar yum sobre rpm, ya que resuelve automáticamente todas las dependencias. Yum simplifica el seguimiento de instalaciones, actualizaciones y requisitos previos.