Yellowdog Updater Modified ( YUM ) es una utilidad de administración de paquetes de línea de comandos gratuita y de código abierto para computadoras que ejecutan el sistema operativo Linux mediante el Administrador de paquetes RPM . [4] Aunque YUM tiene una interfaz de línea de comandos, varias otras herramientas proporcionan interfaces gráficas de usuario para la funcionalidad de YUM.
YUM permite actualizaciones automáticas y gestión de paquetes y dependencias en distribuciones basadas en RPM. [5] Al igual que la herramienta Advanced Package Tool (APT) de Debian , YUM funciona con repositorios de software (colecciones de paquetes), a los que se puede acceder localmente [6] o a través de una conexión de red.
En el fondo, YUM depende de RPM , que es un estándar de empaquetado para la distribución digital de software, que utiliza automáticamente hashes y firmas digitales para verificar la autoría e integridad de dicho software; a diferencia de algunas tiendas de aplicaciones , que cumplen una función similar, ni YUM ni RPM proporcionan soporte integrado para restricciones propietarias sobre la copia de paquetes por parte de los usuarios finales. YUM se implementa como bibliotecas en el lenguaje de programación Python , con un pequeño conjunto de programas que proporcionan una interfaz de línea de comandos . [7] También existen envoltorios basados en GUI como YUM Extender (yumex), [8] y ha sido adoptado para Fedora Linux hasta la versión 22. [9]
Una reescritura de YUM llamada DNF reemplazó a YUM como el administrador de paquetes predeterminado en Fedora 22 [9] (en 2015). Esto fue necesario debido a la transición de Fedora de Python 2 a Python 3, que no es compatible con YUM. [10] DNF también mejora a YUM en varias formas: mejor rendimiento, mejor resolución de conflictos de dependencias e integración más sencilla con otras aplicaciones de software. [11] A partir de RHEL 8 , yum es un alias para DNF . [12]
El administrador de paquetes original, Yellowdog UPdater (YUP), fue desarrollado entre 1999 y 2001 por Dan Burcaw, Bryan Stillwell, Stephen Edie y Troy Bengegerdes en Terra Soft Solutions (bajo el liderazgo del entonces CEO Goutham Krishna) como un motor back-end para un instalador gráfico de Yellow Dog Linux . [4]
Como una reescritura completa de YUP, YUM evolucionó principalmente para actualizar y administrar los sistemas Red Hat Linux utilizados en el Departamento de Física de la Universidad de Duke por Seth Vidal y Michael Stenner. Vidal continuó contribuyendo a YUM hasta su muerte en un accidente de bicicleta en Durham, Carolina del Norte, el 8 de julio de 2013. [13] [14] [15]
En 2003, Robert G. Brown de Duke publicó la documentación de YUM. [7] Los adoptantes posteriores incluyeron [7] Fedora , Rocky Linux , AlmaLinux , CentOS y muchas otras distribuciones de Linux basadas en RPM , incluido el propio Yellow Dog Linux , donde YUM reemplazó a la utilidad YUP original, actualizada por última vez en SourceForge en 2001. [16] Para 2005, se estimó que estaba en uso en más de la mitad del mercado de Linux , [3] y para 2007 YUM fue considerado la "herramienta de elección" para las distribuciones de Linux basadas en RPM. [17]
YUM tenía como objetivo abordar tanto las deficiencias percibidas en el antiguo APT-RPM , [18] como las restricciones de la herramienta de gestión de paquetes Red Hat up2date . YUM reemplazó a up2date en Red Hat Enterprise Linux 5 y posteriores. [19] Algunos autores se refieren a YUM como el Gestor de actualizaciones Yellowdog, o sugieren que sería más apropiado "Su Gestor de actualizaciones". [20] [21] A menudo se incluye un conocimiento básico de YUM como requisito para la certificación de administrador de sistemas Linux. [5] La Licencia Pública General GNU de YUM permite que el software libre y de código abierto se distribuya y modifique libremente sin regalías, si se respetan otros términos de la licencia. [4]
Si bien yum se creó originalmente para Linux, se ha adaptado a varios otros sistemas operativos, incluidos AIX , [22] IBM i , [23] y ArcaOS . [24]
YUM
Puede realizar operaciones como:
Las versiones 2.x de YUM cuentan con una interfaz adicional para programar extensiones en Python que permite modificar el comportamiento de YUM. Determinados complementos se instalan de forma predeterminada. [26] Un paquete que se instala con frecuencia [27]yum-utils
contiene comandos que utilizan la API de YUM y muchos complementos.
Las interfaces gráficas de usuario , conocidas como "front-ends", permiten un uso más sencillo de YUM. PackageKit y Yum Extender (yumex) son dos ejemplos. [8] Yum Extender quedó obsoleto durante un tiempo cuando Fedora migró a DNF, [28] pero se reescribió en Python 3 y Gtk 3 y ha estado en desarrollo. Este nuevo Yum Extender está disponible para Fedora 34 o posterior. [29]
La información sobre los paquetes (en contraposición a los paquetes mismos) se conoce como metadatos . Estos metadatos se combinan con la información de cada paquete para determinar (y resolver, si es posible) las dependencias entre los paquetes. La esperanza es evitar una situación conocida como el infierno de las dependencias . Una herramienta independiente, createrepo
YUM, configura los repositorios de software , generando los metadatos necesarios en un formato XML estándar (y los metadatos de SQLite si se le da la opción -d). [30] [31] La mrepo
herramienta (anteriormente conocida como Yam) puede ayudar en la creación y el mantenimiento de repositorios. [32]
El repositorio XML de YUM, creado con el aporte de muchos otros desarrolladores, rápidamente se convirtió en el estándar para los repositorios basados en RPM. [31] Además de las distribuciones que usan YUM directamente, SUSE Linux 10.1 [33] agregó soporte para repositorios YUM en YaST , y los repositorios de Open Build Service usan los metadatos del formato de repositorio XML de YUM. [31]
YUM sincroniza automáticamente los metadatos remotos con el cliente local, mientras que otras herramientas optan por sincronizar solo cuando lo solicita el usuario. La sincronización automática significa que YUM no puede fallar debido a que el usuario no ejecuta un comando en el intervalo correcto. [34] [35]
{{cite web}}
: CS1 maint: URL no apta ( enlace )