stringtranslate.com

Administrador de paquetes RPM

RPM Package Manager ( RPM ) (originalmente Red Hat Package Manager , ahora acrónimo recursivo ) es un sistema de gestión de paquetes gratuito y de código abierto . [6] El nombre RPM se refiere al formato de archivo y al propio programa administrador de paquetes. RPM estaba destinado principalmente a distribuciones de Linux ; el formato de archivo es el formato de paquete básico de Linux Standard Base ..rpm

Aunque fue creado para su uso en Red Hat Linux , RPM ahora se usa en muchas distribuciones de Linux como PCLinuxOS , Fedora , AlmaLinux , CentOS , openSUSE , OpenMandriva y Oracle Linux . También ha sido portado a algunos otros sistemas operativos , como Novell NetWare (a partir de la versión 6.5 SP3), AIX de IBM (a partir de la versión 4), [7] IBM i , [8] y ArcaOS . [9]

Un paquete RPM puede contener un conjunto arbitrario de archivos. La mayoría de los archivos RPM son "RPM binarios" (o BRPM) que contienen la versión compilada de algún software. También hay "RPM de origen" (o SRPM) que contienen el código fuente utilizado para crear un paquete binario. Estos tienen una etiqueta apropiada en el encabezado del archivo que los distingue de los RPM (B) normales, lo que hace que se extraigan a /usr/src durante la instalación. Los SRPM suelen llevar la extensión de archivo ".src.rpm" (.spm en sistemas de archivos limitados a 3 caracteres de extensión, por ejemplo, el antiguo DOS FAT ).

Historia

RPM fue escrito originalmente en 1997 por Erik Troan y Marc Ewing , [1] basado en pms, rppy pmexperiencias.

pmfue escrito por Rik Faith y Doug Hoffman en mayo de 1995 para Red Hat Software, su diseño e implementaciones estuvieron muy influenciados por pms, un sistema de gestión de paquetes creado por Faith y Kevin Martin en el otoño de 1993 para Bogus Linux Distribution. pmconserva el paradigma de " Fuentes Pristinepms + parches" , al tiempo que agrega características y elimina limitaciones arbitrarias presentes en la implementación. pmproporciona soporte de base de datos muy mejorado para rastrear y verificar paquetes instalados. [4] [10] [11]

Características

Para un administrador de sistemas que realiza la instalación y el mantenimiento de software, el uso de la gestión de paquetes en lugar de la creación manual tiene ventajas como la simplicidad, la coherencia y la capacidad de que estos procesos sean automatizados y no interactivos. rpm usa Berkeley DB como base de datos backend, aunque desde 4.15 en 2019, admite la creación de paquetes rpm sin Berkeley DB ( –disable-bdb). [12]

Las características de RPM incluyen:

Operaciones locales

Los paquetes pueden provenir de una distribución particular (por ejemplo, Red Hat Enterprise Linux ) o ser creados por otras partes (por ejemplo, RPM Fusion para Fedora Linux). [13] Las dependencias circulares entre RPM mutuamente dependientes (el llamado " infierno de dependencia ") pueden ser problemáticas; [14] en tales casos, un único comando de instalación debe especificar todos los paquetes relevantes.

Repositorios

Los RPM suelen recopilarse de forma centralizada en uno o más repositorios en Internet. Un sitio a menudo tiene sus propios repositorios RPM que pueden actuar como espejos locales de dichos repositorios de Internet o ser colecciones de RPM útiles mantenidas localmente.

Frente termina

Varias interfaces para RPM facilitan el proceso de obtención e instalación de RPM desde repositorios y ayudan a resolver sus dependencias. Éstas incluyen:

Base de datos de instalación de RPM local

Trabajando detrás de escena del administrador de paquetes está la base de datos RPM, almacenada en formato /var/lib/rpm. Utiliza Berkeley DB como back-end. Consiste en una única base de datos ( Packages) que contiene toda la metainformación de los RPM instalados. Se crean múltiples bases de datos con fines de indexación, replicando datos para acelerar las consultas. La base de datos se utiliza para realizar un seguimiento de todos los archivos que se modifican y crean cuando un usuario (usando RPM) instala un paquete, lo que permite al usuario (a través de RPM) revertir los cambios y eliminar el paquete más tarde. Si la base de datos se corrompe (lo cual es posible si se elimina el cliente RPM ), las bases de datos indexadas se pueden recrear con el rpm --rebuilddbcomando. [17]

Descripción

Si bien el formato RPM es el mismo en las diferentes distribuciones de Linux , las convenciones y pautas detalladas pueden variar entre ellas.

Nombre de archivo y etiqueta del paquete

Un RPM se entrega en un único archivo, normalmente con un nombre de archivo en el formato:

<name>-<version>-<release>.src.rpmpara paquetes fuente, o
<name>-<version>-<release>.<architecture>.rpmpara binarios.

Por ejemplo, en el nombre de archivo del paquete libgnomeuimm-2.0-2.0.0_3.i386.rpm, <name>is libgnomeuimm, <version>is 2.0, <release>is 2.0.0_3, is y <architecture>is i386. El paquete fuente asociado se llamaríalibgnomeuimm-2.0-2.0.0_3.src.rpm

Los RPM con la noarch.rpmextensión no dependen de una arquitectura de CPU en particular. Por ejemplo, estos RPM pueden contener gráficos y texto para que los utilicen otros programas. También pueden contener scripts de shell o programas escritos en otros lenguajes de programación interpretados como Python .

El contenido del RPM también incluye una etiqueta de paquete , que contiene la siguiente información:

No es necesario que los campos de la etiqueta del paquete coincidan con el nombre del archivo.

Embalaje de biblioteca

Las bibliotecas se distribuyen en dos paquetes separados para cada versión. Uno contiene el código precompilado para usar en tiempo de ejecución, mientras que el segundo contiene los archivos de desarrollo relacionados, como encabezados, etc. Esos paquetes tienen "-devel" agregado a su campo de nombre. El administrador del sistema debe asegurarse de que las versiones de los paquetes binarios y de desarrollo coincidan.

formato binario

El formato es binario y consta de cuatro secciones: [6]

archivo de especificaciones

La "Receta" para crear un paquete RPM es un archivo de especificaciones. Los archivos de especificaciones terminan con el sufijo ".spec" y contienen el nombre del paquete, la versión, el número de revisión de RPM, los pasos para compilar, instalar y limpiar un paquete y un registro de cambios. Si se desea, se pueden crear varios paquetes a partir de un único archivo de especificaciones RPM. Los paquetes RPM se crean a partir de archivos de especificaciones RPM utilizando la herramienta rpmbuild.

Los archivos de especificaciones generalmente se distribuyen dentro de archivos SRPM, que contienen el archivo de especificaciones empaquetado junto con el código fuente.

SRPM

Un RPM típico es un software precompilado listo para su instalación directa. También se puede distribuir el código fuente correspondiente. Esto se hace en un SRPM, que también incluye el archivo "SPEC" que describe el software y cómo está construido. El SRPM también permite al usuario compilar y quizás modificar el código mismo.

Un paquete de software sólo puede contener scripts independientes de la plataforma. En tal caso, el desarrollador podría proporcionar sólo un SRPM, que sigue siendo un RPM instalable.

NOSRC

Esta es una versión especial de SRPM. Contiene el archivo "SPEC" y, opcionalmente, parches, pero no incluye fuentes (normalmente debido a la licencia). [21]

tenedores

En junio de 2010 , hay dos versiones de RPM en desarrollo: una dirigida por el Proyecto Fedora y Red Hat, y la otra por un grupo separado dirigido por un anterior mantenedor de RPM, un ex empleado de Red Hat.

RPM.org

La primera revisión importante del código de la comunidad rpm.org fue en julio de 2007; La versión 4.8 se lanzó en enero de 2010, la versión 4.9 en marzo de 2011, la 4.10 en mayo de 2012, la 4.11 en enero de 2013, la 4.12 en septiembre de 2014 y la 4.13 en julio de 2015.

Esta versión es utilizada por distribuciones como Fedora Linux , Red Hat Enterprise Linux y derivados , openSUSE , SUSE Linux Enterprise , Unity Linux , Mageia , [22] OpenEmbedded , Tizen y OpenMandriva Lx (anteriormente Mandriva ).

RPM v5 (desaparecido)

Jeff Johnson, mantenedor de RPM desde 1999, continuó los esfuerzos de desarrollo junto con participantes de varias otras distribuciones. La versión 5 de RPM se lanzó en mayo de 2007.

Esta versión fue utilizada por distribuciones como Wind River Linux (hasta Wind River Linux 10), Rosa Linux y OpenMandriva Lx (antiguo Mandriva Linux que cambió a rpm5 en 2011 [23] ) y también por el proyecto OpenPKG que proporciona paquetes para otros plataformas UNIX comunes.

OpenMandriva Lx ha vuelto a rpm.org [24] para la versión 4.0. [ necesita actualización ]

OpenEmbedded , el último usuario importante de RPM5, volvió a rpm.org debido a problemas en RPM5. [25] [26]

Ver también

Referencias

  1. ^ a b "Cronología de RPM". rpm.org . Consultado el 25 de junio de 2020 .
  2. ^ "RPM: planes, metas, etc.". Max Spevack . Consultado el 20 de enero de 2011 .
  3. ^ "Preguntas frecuentes sobre RPM.org". Archivado desde el original el 5 de noviembre de 2016 . Consultado el 25 de agosto de 2013 .
  4. ^ ab Bailey, Edward C. (2000). "Capítulo 1: Introducción a la gestión de paquetes". RPM máximas: llevando el administrador de paquetes de Red Hat al límite. Red Hat, Inc. págs. 22-25. ISBN 978-1888172782. Archivado desde el original el 10 de septiembre de 2016 . Consultado el 13 de agosto de 2013 .
  5. ^ "po/LINGUAS". GitHub. 2022-04-23.
  6. ^ ab Bailey, Edward C. (2000). "Apéndice A: Formato del archivo RPM". RPM máximas: llevando el administrador de paquetes de Red Hat al límite. Red Hat, Inc. págs. 325–336. ISBN 978-1888172782. Archivado desde el original el 21 de abril de 2016 . Consultado el 22 de noviembre de 2010 .
  7. ^ "Configuración de YUM y creación de repositorios locales en IBM AIX". 2018-10-24.
  8. ^ "RPM y Yum son muy importantes para IBM i. He aquí por qué". 2018-07-18.
  9. ^ "Administrador de paquetes" . Consultado el 4 de septiembre de 2020 .
  10. ^ "Guía RPM-RPM - Objetivos de diseño". Archivado desde el original el 21 de marzo de 2014 . Consultado el 14 de abril de 2014 .
  11. ^ "Anuncio BOGUS" . Consultado el 14 de abril de 2014 .
  12. ^ "rpm4 era compatible con la creación de rpm sin Berkeley DB (–disable-bdb)". Los foros de FreeBSD . 2020-01-29 . Consultado el 18 de septiembre de 2023 .
  13. ^ "Fusión de RPM". rpmfusion.org . Consultado el 22 de noviembre de 2010 .
  14. ^ "Un análisis de la deriva de la validación de RPM" (PDF) . Asociación USENIX . Consultado el 15 de marzo de 2011 .
  15. ^ "Zypper - wiki de MeeGo". Archivado desde el original el 25 de septiembre de 2013 . Consultado el 14 de abril de 2014 .
  16. ^ "Preguntas frecuentes: acerca de los proyectos". Sitio oficial de Ark Linux. Archivado desde el original el 11 de febrero de 2012 . Consultado el 14 de abril de 2014 .
  17. ^ "Reparar una base de datos RPM de forma segura". Archivado desde el original el 6 de agosto de 2019 . Consultado el 11 de noviembre de 2011 .
  18. ^ "Software de embalaje complementario". Proyecto Fedora. Archivado desde el original el 10 de marzo de 2016 . Consultado el 11 de noviembre de 2011 .
  19. ^ "Cambiar RPM a compresión zstd". Proyecto Fedora (Wiki) . Consultado el 2 de junio de 2019 .
  20. ^ "[PARCHE] Agregar compatibilidad con lzip". Archivado desde el original el 4 de marzo de 2016 . Consultado el 24 de octubre de 2013 .
  21. ^ "Cómo empaquetar software propietario". 10 de diciembre de 2014 . Consultado el 2 de julio de 2018 .
  22. ^ "Notas de la versión de Mageia 3: gestión de paquetes". mageia.org . 2013-05-19 . Consultado el 14 de abril de 2014 .
  23. ^ Bodnar, Ladislav y Smith, Jesse (22 de noviembre de 2010). "DistroWatch semanal". DistroWatch . Consultado el 22 de noviembre de 2010 .
  24. ^ "Foro: Cambio a RPMv4" . Consultado el 3 de marzo de 2018 .
  25. ^ "Núcleo YP - Pyro 2.3". Proyecto Yocto . 2017-05-12. Archivado desde el original el 5 de diciembre de 2017 . Consultado el 4 de diciembre de 2017 .{{cite web}}: Mantenimiento CS1: bot: estado de la URL original desconocido ( enlace )()
  26. ^ "[Arquitectura integrada abierta] Cambios que provocará el cambio de inteligente a dnf". Proyecto Yocto . 2017-02-14 . Consultado el 4 de noviembre de 2018 .

enlaces externos