Introducción a la gestión de paquetes RPM/YUM

Introducción a la gestión de paquetes RPM/YUM
Red Hat Package Manager es la utilidad de administración de paquetes de código abierto predeterminado construida bajo Licencia Pública General (GPU). El sistema de gestión de paquetes es para todos los derivados de Linux basados ​​en Red Hat como Fedora, Rhel y Centos. RPM facilita a los administradores del sistema con los cinco modos básicos de operaciones de administración de paquetes: instalación, actualización, eliminación, consulta y verificación de paquetes.

Además, YellowDog Updater Modified (YUM) es RPM qué es la herramienta de gestión de paquetes APT para la utilidad DPKG en el sistema de empaque de Debian: resuelve los problemas de dependencia del paquete de RPM. En esta guía, presentaremos brevemente a Yum. Mientras que tendremos una introducción en profundidad y antecedentes del sistema de embalaje de RPM para distribuciones de Red Hat Linux.

Fondo

En los primeros días de Linux, el software/programas se incluyeron en el sistema compilando el código fuente en binarios ejecutables. A veces se compilaban en forma de un paquete conocido como tarballs que contiene múltiples archivos. Después de la instalación de software desde un tarball, todos los archivos ejecutables, documentos, archivos de configuración y bibliotecas se extenderían a través del sistema en directorios relevantes.

Sin embargo, esta forma de inclusión de aplicaciones tiene sus limitaciones:

  • Incapacidad del usuario para encontrar documentos de programa y archivos de configuración.
  • Dificultad para encontrar las dependencias requeridas del programa.
  • Requiere que el usuario localice y elimine cada archivo de programa individualmente.
  • No contenía metadatos: por lo tanto, después de la instalación, los usuarios desconocían la versión del programa y otros detalles.

Desde entonces, las distribuciones de Linux han cubierto un largo camino al proporcionar software en programas preconstruidos complejos conocidos como paquetes. Por lo tanto, todas las distribuciones de Linux siguieron a dos formatos de embalaje principales, RPM y Deb. En este artículo, nos estamos centrando en un sistema de embalaje de RPM.

Empezando

Los sistemas de gestión de paquetes RPM, YUM y Deb (para las distribuciones de Debian Linux) tienen muchas similitudes. Todos ellos pueden actualizar, instalar, eliminar y actualizar paquetes con una instalación de línea de comandos.

En el momento de cualquier instalación de Linux, también se instala una gran sección de paquetes, lo que es relevante para el uso previsto del sistema. Sin embargo, en algún momento, un usuario necesita agregar nuevos paquetes para la funcionalidad adicional, actualizar los paquetes actuales o eliminar paquetes que no se requieren en los sistemas basados ​​en Red Hat.

Descubra cómo los administradores de paquetes para las distribuciones de Red Hat Linux realizan las tareas anteriores, incluidos los desafíos de encontrar detalles del paquete o los comandos que contienen los paquetes.

Rpm

El RPM Package Manager ofrece el comando principal llamado RPM que proporciona varias opciones para habilitar al usuario encontrar toda la información relacionada con el paquete. Las opciones rpm Las ofertas se agrupan en tres categorías principales:

  • instalar, actualizar y eliminar paquetes
  • para consultar información relacionada con el paquete y verificar
  • realizar funciones misceláneas

En este artículo, discutiremos las dos primeras opciones de comando rpm. A pesar de que puede realizar las tareas básicas relacionadas con la administración de paquetes, siendo la primera herramienta para lidiar con el embalaje de RPM, RPM tiene algunas limitaciones principales:

La instalación del paquete con RPM falla si la dependencia del paquete no está disponible. Además, requiere que el usuario busque qué paquete contiene el componente, que tiene algunas dependencias. Además, los comandos RPM requieren que el usuario identifique la ubicación del archivo RPM.

Beque

Una solución conveniente a los problemas anteriores es YUM que automatiza la actualización y administración del paquete al sistema RPM. También proporciona gestión de dependencia al considerar los paquetes de RPM, no como un software individual sino como parte de un sistema de repositorio.

Embalaje de rpm

El paquete RPM es la combinación de archivos de configuración, comandos y documentos para proporcionar una función de software. También contiene metadatos que contienen contenido del paquete, desde donde vino o instalado, la versión y los detalles de dependencia con otra información.

Antes de ingresar más en los archivos del paquete RPM, el nombre del paquete en sí comparte muchos detalles sobre el software. Para encontrar detalles de un paquete ya instalado dentro del sistema, use el rpm comando con el -Qi Opción de información de consulta:

[Fedora@Fedora] $ sudo rpm -qi nmap | menos
Nombre: nmap
Época: 3
Versión: 7.80
Lanzamiento: 11.FC34
Arquitectura: x86_64
Fecha de instalación: martes 29 de junio 2021 12:45:34 pm EDT
Grupo: no especificado
Tamaño: 24743073

Fuente RPM: NMAP-7.80-11.FC34.SRC.rpm
Fecha de construcción: Jue 11 de marzo 2021 12:34:34 AM EST
Host de construcción: BuildVM-X86-27.IAD2.federaproject.organizar
Packager: proyecto Fedora

La salida del comando anterior comparte detalles de donde se descargó el programa, directamente desde el repositorio de Yum o cualquier medio de instalación. Del mismo modo, también comparte detalles en la línea de cuándo se instaló el programa, quién lo construyó, su tamaño y cuándo se instaló.

El software para las distribuciones de Linux proviene de proyectos de código abierto conocidos como proveedores de software ascendentes. Hacen que el software esté disponible con condiciones de licencia. Las distribuciones crean el código fuente en binarios y los consolidan con otros componentes relevantes en un paquete.

El paquete RPM consolidado está firmado para verificar su integridad y se agrega al repositorio en correspondencia a la distribución y la arquitectura. Todos los paquetes RPM provienen de los repositorios YUM disponibles dentro de un directorio en el servidor web, un directorio de máquina local o un medio como CD o DVD o un servidor FTP.

Ubicación del paquete

La ubicación de los archivos de repositorio está disponible en el sistema del usuario en el interior /etc/yum.repositar.d/ Directorio, es la ubicación predeterminada para almacenar información del repositorio. Sin embargo, los usuarios también pueden encontrar o especificar estas ubicaciones dentro del archivo de configuración de Main Yum /etc/yum.confusión.

[Fedora@Fedora] $ Cat /Etc /Yum.repositorio.D/Fedora.Repo | menos

Un archivo de repositorio contiene múltiples copias de paquetes de distribución disponibles en diferentes ubicaciones, también conocidas como espejos. Por lo tanto, informa a Yum sobre la ubicación del espejo más cercano para la descarga más rápida. El archivo del repositorio tiene tres secciones, que contienen información sobre los paquetes de origen normales, de depuración y finales.

Al igual que Debian Packaging, RPM y Yum obtienen detalles sobre los paquetes instalados de la base de datos local. Los gerentes de paquetes recuperan metadatos (de /var/caché/yum directorio) sobre los paquetes dentro de la base de datos local de repositorios habilitados.

Descargar RPMS desde el repositorio Yum

Para examinar el contenido de RPMS o instalarlos en un entorno no netado, un usuario puede requerir descargar el paquete. Se puede hacer posible con la ayuda del comando yumdownloader. Use el comando yumdownloader, con el nombre del paquete para descargarlo en el directorio actual. Por ejemplo, descargue el editor de texto VIM de la siguiente manera:

[Fedora@Fedora] $ yumdownloader vim

O use la opción -resolve para descargar las dependencias requeridas para el paquete.

[Fedora@Fedora] $ yumdownloader - -resolve vim

(4/6): Vim-Minimal-8.2.3046-1.FC34.x86_64.RPM 208 KB/S | 698 KB 00:03
(5/6): Vim-Common-8.2.3046-1.FC34.x86_64.RPM 727 KB/S | 6.6 MB 00:09

Instalación de RPMS

A pesar de rpm El comando puede hacer una instalación y actualizaciones básicas, los usuarios lo utilizan solo cuando los archivos de programa ya están en el directorio actual y están listos para instalar. Dado que VIM ya está disponible en el directorio actual, instálelo a través de rpm comando con un -i Opción con todo el nombre del paquete, como sigue:

[Fedora@Fedora] $ yumdownloader--resolve nmap-7.80-11.FC34.x86_64.rpm
[Fedora@Fedora] $ sudo rpm -i nmap -7.80-11.FC34.x86_64.rpm

Utilizar el -U opción para actualizar el paquete con un -hv Opción para imprimir los signos hash y la salida detallada de pie. Tenga en cuenta que la opción -U instala el paquete ZSH incluso cuando ya está instalado.

[Fedora@Fedora] $ sudo RPM -UHV NMAP -7.80-11.FC34.x86_64.rpm
Verificación ... ############################## [100%]
Preparación ... ############################## [100%]

El rpm El comando ofrece otro tipo de instalación con el -F (refrescar) las opciones que instalan un paquete solo si existe una versión anterior de ese paquete. Es útil en un escenario cuando el usuario desea actualizar todas las RPM instaladas en un directorio actual.

[Fedora@Fedora] $ rpm -fhv *.rpm

Los usuarios pueden agregar más opciones a cualquiera de las opciones de instalación, como -reemplazo La opción permite reinstalar un paquete si un componente se elimina por error. Similarmente, -pájaro antiguo La opción permite la instalación de una versión anterior del paquete.

[Fedora@Fedora] $ sudo RPM -UHV--Replacepkgs Emacs-Common-24.4-3.FC21.x86_64.rpm
[Fedora@Fedora] $ sudo RPM -UHV --oldpackage ZSH -4.3.10-7.El6.x86_64.rpm

Eliminación de rpm

Para eliminar los paquetes de RPM, use el -mi Opción del comando rpm con solo un nombre base de paquete. La salida al siguiente comando muestra que, a diferencia de la eliminación del paquete en el sistema de empaque de Debian, no muestra ninguna dependencia eliminada en el proceso.

[Fedora@Fedora] $ sudo rpm -e nmap

Tenga en cuenta que, a diferencia de la instalación del paquete, no se solicita antes de la eliminación del paquete. Pero si el paquete es una dependencia de otro programa, el usuario recibe un mensaje de error ya que el comando rpm no lo puede eliminar.

Consulta de información de RPM

En esta sección, discutiremos varias formas de consultar la información a través del rpm dominio. En la sección de empaque de RPM, aprendemos a mostrar información sobre un paquete ya instalado a través de -Qi información. Del mismo modo, el comando rpm también permite la visualización de archivos, archivos de configuración y otra documentación con la ayuda de -QL, -chabolla, y -QD Opciones, como sigue:

[Fedora@Fedora] $ rpm -ql nmap
/usr/bin/nmap
/usr/bin/nping
/usr/lib/.idiota
/usr/lib/.ID/4E

[Fedora@Fedora] $ rpm -qc nmap
[Fedora@Fedora] $ rpm -qd nmap
/usr/share/doc/nmap/readme
/usr/share/doc/nmap/nmap.uso.TXT
/usr/share/man/de/man1/nmap.1.GZ
/usr/share/man/es/man1/nmap.1.GZ

Los paquetes de RPM incluyen una gran cantidad de información que se puede recuperar con varias banderas. Por ejemplo, un usuario puede usar la opción -require para encontrar programas o archivos de requisito previo para instalar un programa emac -common.

[Fedora@Fedora] $ RPM -Q -Requerir Emacs -Common
Del mismo modo, consulte la información sobre los scripts ejecutados antes y después de la instalación o eliminación de rpm con la ayuda de la --guiones opción.
[cc lang = "text" width = "100%" height = "100%" escapado = "true" thema = "Blackboard" Nowrap = "0"]
[Fedora@Fedora] $ rpm -q --scripts httpd

Otra característica importante que rpm Las ofertas son un -consulta opción que nos permite consultar información como etiquetas y salida en cualquier formato que el usuario prefiera. Ejecute el siguiente comando para mostrar todas las etiquetas disponibles:

[Fedora@Fedora] $ RPM --Querytags | menos
ARCO
Archivo
Los nombres de base
Bugurl
Buildarchs
Hostil
TIEMPO DE CONSTRUCCIÓN

Por ejemplo, para mostrar el nombre, el tamaño y el número de liberación de la etiqueta binutilos, Use el siguiente comando:

[Fedora@Fedora] $ rpm -q binutils --QueryFormat "El paquete es %nombre, \ y su tamaño es %tamaño \ n".

El paquete es binutils, su tamaño es 31814958 y el lanzamiento es 41.FC34

Por último, agregue el -pag Marcar a la opción de consulta para ayudar a investigar las RPM compartidas por alguien antes de la instalación.

[Fedora@Fedora] $ yumdownloader emac-common
[Fedora@Fedora] $ RPM -QIP EMACS-Common-27.2-3.FC34.x86_64.rpm

Este paquete contiene todos los archivos comunes que necesitan EMACS, Emacs-Lucid o Emacs-Nox.

Verificación de rpm

La base de datos de RPM contiene huellas digitales para cada archivo de paquete que permite al usuario verificar su integridad. El comando rpm ofrece un -V característica para verificar los cambios realizados en los componentes del paquete instalado. Sin embargo, es importante tener en cuenta que los cambios tienen lugar en el archivo de configuración después de la instalación, pero los cambios en los binarios son un problema.

Instale el paquete Emac-Common y realice cambios en sus archivos. Pero recuerde eliminar y reinstalar el paquete después de la experimentación.

[Fedora@Fedora] $ RPM -I ZSH -5.8-5.FC34.x86_64.rpm
[Fedora@Fedora] $ sudo -i
[root@fedora ~]# echo fedora> /bin /zsh
[root@fedora ~]# rm /etc /zshrc
RM: eliminar el archivo regular '/etc/zshrc'? Y
[Fedora@Fedora] $ rpm -v vim
faltando c /etc /zshrc
S.5 ... t. /usr/bin/zsh

La salida anterior muestra cambios realizados en el / etc / archivo, mientras que el archivo / etc / se elimina. Las letras o números en la salida anterior representan cualquier cambio realizado en los archivos del paquete. Estas letras reemplazan los puntos después de la manipulación del archivo, algunos de los indicadores son los siguientes:

  • S: el tamaño del archivo difiere
  • D: desajuste de número mayor/menor de dispositivos
  • M: el modo de archivo difiere
  • P: las capacidades difieren
  • U: la propiedad de los usuarios difiere
  • 5: la suma MD5 difiere
  • T: Tiempo de modificación

Puede encontrar más detalles sobre los indicadores de verificación de la documentación oficial.

La salida anterior ayuda a interpretar cambios en el tamaño del archivo, cambios en MD5SUM en la huella digital del archivo y el tiempo de modificación. El rpm El comando ofrece un -reemplazo opción para restaurar el estado del paquete. Verifique nuevamente con la opción Verificar: No se muestra la salida sin cambios.

[Fedora@Fedora] $ rpm -i - -replacepkgs ZSH -5.0.2-7.El7.x86_64.rpm
[Fedora@Fedora] $ rpm -v vim

La práctica ideal es mantener una copia de seguridad de la base de datos /var/lib/rpm a un medio de solo lectura. Ayuda a verificar la integridad del paquete con seguridad de que no se verifica en una base de datos templada/agrietada.

Conclusión

El artículo detalla la historia y la evolución del sistema de envasado para la distribución de Red Hat Linux. También proporciona detalles sobre el embalaje de RPM y su ubicación dentro del sistema. Por último, el artículo proporciona detalles detallados sobre las cinco operaciones básicas de RPM.