GNU/Linux >> Tutoriales Linux >  >> Cent OS

Guía para principiantes de administración de software de Linux con RPM

Mantenimiento del software mediante RPM (Administrador de paquetes de Red Hat)

RPM es un potente administrador de software que se puede utilizar para crear, instalar, consultar, verificar, actualizar y desinstalar paquetes de software individuales. Un paquete RPM consta de un archivo de archivos e información del paquete, como el nombre, la versión, una descripción e información sobre las dependencias de otros paquetes RPM.

RPM es más que una herramienta específica de Red Hat. Muchas otras distribuciones modernas, como Ubuntu y SuSE, también usan RPM. Los beneficios de usar RPM incluyen:

  • Distribución, instalación, actualización y eliminación de software simplificadas
  • Garantiza que:
    • el software de requisito previo está instalado en el sistema.
    • las versiones del software de requisito previo siguen siendo compatibles.
    • Los archivos de configuración modificados localmente no se borran cuando se actualiza el RPM.
    • Los archivos de configuración modificados localmente se guardan con el sufijo ".rpmsave" si el paquete se elimina posteriormente.
  • Permite la certificación de que el software instalado no ha sido alterado, modificado, corrompido o cambiado de ninguna manera.

RPM mantiene información sobre los paquetes instalados en el directorio "/var/lib/rpm". Los componentes de la herramienta RPM son:

  • Una base de datos personalizada que contiene información sobre todo el software instalado en el sistema, recopilada de los RPM individuales.
  • Un ejecutable "/bin/rpm".
  • Repositorios accesibles por Internet de paquetes RPM disponibles.

Tipos de paquetes RPM

Los paquetes RPM se dividen en dos categorías:
1. fuente
2. binario

RPM de origen

Siempre se puede reconocer un RPM de origen porque el nombre del archivo termina con la cadena ".src.rpm". En un RPM fuente no solo se encuentran los archivos de código fuente del programa original, sino también los scripts que permiten que el código se vuelva a compilar automáticamente, se instale automáticamente y se elimine automáticamente. No hay archivos ejecutables de usuario final en un RPM de origen. Por lo general, solo los desarrolladores están interesados ​​en un RPM de origen.

RPM binarias

Un RPM binario contiene los componentes de usuario final de un RPM. Los nombres de archivo RPM binarios identifican la arquitectura de host para el contenido. Por ejemplo, el archivo RPM binario:

bash-3.1-16.1.x86_64.rpm

– contiene archivos que solo se pueden usar en una CPU de arquitectura Intel X86 de 64 bits. Otros valores de arquitectura comunes incluyen "i386" para hosts Intel de 32 bits. Algunos RPM binarios pueden instalarse en cualquier arquitectura de CPU porque sus archivos funcionarán en cualquier host; un ejemplo de estos paquetes “.noarch.rpm” es el RPM “tzdata” que contiene información sobre las zonas horarias del mundo. Para actualizar su sistema a la última versión de un paquete, necesitará el RPM binario más reciente.

Esquema de nombres RPM

Cada paquete RPM está contenido en un solo archivo. El nombre del archivo tiene varios campos para identificar completamente el contenido del paquete. Si bien las herramientas RPM en sí mismas no se basan en el nombre de archivo en sí, debe comprender la convención de nombres de archivo para ayudarlo a identificar o descargar el paquete adecuado.

Aquí hay un nombre de archivo RPM de ejemplo:

bash-3.1-16.1.x86_64.rpm

Este RPM es para el shell BASH (“/bin/bash”). El nombre del archivo se compone de varias partes:

[name]-[version]-[release].[arch].rpm

donde:

  • [nombre] es el nombre del programa o paquete. El [nombre] generalmente lo asigna el autor del programa. En nuestro ejemplo, los desarrolladores decidieron nombrar su producto "bash" por razones que les parecieron divertidas.
  • [versión] identifica qué edición del software contiene este RPM. El número de [versión] es asignado por el autor del programa. El uso del número de [versión] permite determinar qué versión de las fuentes del autor se utilizaron para generar el RPM.
  • [lanzamiento] proporciona el número de edición del propio archivo RPM y no la versión de los archivos fuente del autor. Se puede emitir un RPM actualizado para proporcionar una versión parcheada del software original del autor. No es necesario que el parche provenga del desarrollador original, por lo que la [versión] de RPM se incrementa en lugar de la [versión].
  • [arco] describe el contenido del RPM e indica si este archivo contiene la fuente del producto (un ".src.rpm"), archivos independientes de la arquitectura (un ".noarch.rpm") o archivos que solo pueden instalarse en un host en particular (un ".sh.rpm" funcionará solo en un procesador integrado STRONGHOLD).
Nota :la [versión] está controlada por el autor original y el [lanzamiento] está controlado por quien construyó el RPM.

Instalación y eliminación de archivos

Por lo general, solo se puede instalar una [versión] o [lanzamiento] de un RPM a la vez. Las versiones posteriores generalmente se instalan utilizando la función RPM "-U" (actualización) en lugar de la función RPM "-i". Las excepciones comunes a la regla de un solo RPM son los RPM del kernel. Un sistema comúnmente tiene instaladas varias versiones de kernels; RPM tiene una lista de los RPM que pueden tener varias versiones instaladas. Para eliminar una versión cuando hay varias instaladas, debe especificar completamente el nombre y la versión del paquete.

En la arquitectura x86_64, es común tener instalados los paquetes RPM “.i386” de 32 bits y “.x86_64” de 64 bits para admitir aplicaciones de 32 y 64 bits. Normalmente, RPM no muestra la arquitectura de un paquete en una consulta, pero puede mostrarla manualmente.

Instalación y eliminación

  • rpm -i o –install ### (instalar nuevo RPM; error si ya está instalado)
  • rpm -U o –actualización ### (elimine el RPM existente, si lo hay; instale uno nuevo)
  • rpm -F o –refrescar ### (actualizar RPM solo si el paquete ya está instalado)
  • rpm -e o –erase ### (eliminar, borrar, suprimir)

Opciones comunes

  • Salida :-v (detallado – nombre de archivo), -h (hash)
  • Condiciones previas :–nodeps, –replacefiles, –force (TENGA CUIDADO AQUÍ !!!)
  • Reubicación :–excludepath, –prefix, –relocate, –badreloc, –root
  • Soporte de URL :ftp, http

Ejemplos:

rpm -ivh binutils-2.11.90.0.8-12.i386.rpm
rpm -Uvh finger-0.17-9-i386.rpm
rpm -Fvh ftp://updates.redhat.com/current/i386/*.rpm
rpm -e diffutils
rpm -e kernel-enterprise-2.4.9-e.12

Consejos y trucos

– Nunca, jamás, use la opción “-U” para instalar un nuevo RPM del kernel.
– La función de actualización “-U” primero elimina el RPM actual del sistema y luego intenta instalar el nuevo RPM. Cualquier problema que impida la instalación del nuevo RPM hará que el sistema no se pueda iniciar. Esto no es lo que desea, así que siempre use el interruptor "-i" para instalar un RPM del kernel.

Ejemplos de comandos RPM para consultar, instalar, eliminar y actualizar paquetes

Consultas (Paquetes y/o Información)

Utilice una consulta para obtener información sobre los paquetes instalados. Puede consultar todos los paquetes instalados o un solo paquete instalado. También puede averiguar qué RPM proporciona un archivo en particular.

  • rpm -q [paquetes] [información]
  • rpm-qa
  • rpm -q nombre_paquete
  • rpm -qf [nombre de archivo]
  • rpm -qp [nombre de archivo del paquete]

Información

predeterminado (nombre del paquete)
-i :información general
-l :lista de archivos

Ejemplos:

rpm -qa
rpm -q kernel -i (information)
rpm -q kernel -l (files contained in package)
rpm -q kernel --requires (prereqs)
rpm -q kernel --provides (capabilities provided by package)
rpm -q kernel --scripts (scripts run during installation and removal)
rpm -q kernel --changelog (revision history)
rpm -q kernel -queryformat format (rpm --querytags for list of options)

Consejos y trucos

– Al buscar un paquete RPM en particular cuando no se conoce el nombre exacto, un canal de comando como:

$ rpm -qa | grep foo

se usa comúnmente. Las versiones posteriores de la herramienta RPM permiten que esto se haga de manera sucinta como:

$ rpm -qa '*foo*'

Consultas – Verificación (Archivos)

La base de datos de RPM contiene muchos atributos sobre todos y cada uno de los archivos instalados por un RPM. Puede verificar el estado actual del archivo con la información catalogada por RPM cuando se instaló el paquete.

  • rpm -V nombre_paquete
  • rpm -Va (verificar todo)
  • rpm -Vf (nombre de archivo)
  • rpm -Vp (nombre de archivo del paquete)

Muchas distribuciones de Linux incluyen un “preenlace ” RPM que intenta disminuir el tiempo necesario para iniciar una aplicación usando una biblioteca compartida (la mayoría de las aplicaciones usan al menos una biblioteca compartida y potencialmente docenas) agregando información especial directamente en el archivo de programa de una aplicación.

Agregar esta información hace que las aplicaciones se inicien más rápido, pero los cambios en el archivo invalidan la mayoría de los atributos del archivo en la base de datos RPM, como la última fecha de modificación del archivo, el tamaño del archivo y la suma de verificación MD5 del archivo.

Consultas – Verificación (Paquetes)

A continuación se muestran algunas consultas de RPM para verificaciones de paquetes.

  • rpm -import /mnt/cdrom/RPM-GPG-KEY
  • rpm -q gpg-pubkey
  • rpm –checksig m4-1.4.1-11.i386.rpm

Ejemplos:

rpm -qf /path/filename (what package owns filename)
rpm -qf /path/filename -i (what does it do)
rpm -qp m4-1.4.1-11.i386.rpm -l (files in m4)
rpm -qp m4-1.4.1-11.i386.rpm --requires (prereqs needed to install m4)
rpm -q --whatprovides glibc.so (what package provides requisite library)


Cent OS
  1. Gestión de paquetes de Linux con apt

  2. Una guía para comprender las bibliotecas de software de Linux en C

  3. Comando Linux RPM con 10 ejemplos útiles

  4. Guía para principiantes de Udev en Linux

  5. Comprimir archivos PDF en Linux con Densify

Cómo instalar archivos RPM (paquetes) en CentOS Linux

Comandos RPM en Linux con ejemplos

Gestión de paquetes de Linux con YUM y RPM

Gestión de archivos de Linux desde la terminal

Guía para principiantes de gestión de usuarios de MySQL

Comando lsof en Linux con ejemplos