Articulo de referencia

ZYpp

{{cite web|url=https://github.com/openSUSE/libzypp/blob/90acb93974a99bea7409516be55d6acdc35099f7/package/libzypp.changes|title=Earliest known changelog}} "},"discontinued":{"wt"...

ZYpp (o libzypp ; "Zen / YaST Packages Patches Patterns Products" [ 6 ] ) es un motor de gestión de paquetes que impulsa aplicaciones de Linux como Myrlyn, YaST , Zypper y la implementación de PackageKit para openSUSE y SUSE Linux Enterprise . [ 7 ] A diferencia de algunos gestores de paquetes más básicos, proporciona un solucionador de satisfacibilidad para calcular las dependencias de los paquetes. [ 8 ] Es un proyecto de software libre y de código abierto patrocinado por SUSE y licenciado bajo los términos de la Licencia Pública General GNU v2 o posterior. ZYpp está implementado principalmente en el lenguaje de programación C++ .

Zypper es la interfaz de línea de comandos nativa del gestor de paquetes ZYpp para instalar, eliminar, actualizar y consultar paquetes de software en medios locales o remotos (en red). Su equivalente gráfico es el módulo del gestor de paquetes YaST . Se utiliza en openSUSE desde la versión 10.2 beta1. En openSUSE 11.1, Zypper alcanzó la versión 1.0. Zypper también forma parte de las distribuciones móviles de Linux MeeGo , Sailfish OS y Tizen .

Historia

Objetivo

Captura de pantalla zypper dupque muestra las actualizaciones disponibles para instalar

Tras las adquisiciones sucesivas de Ximian y SuSE GmbH en 2003, Novell decidió fusionar ambos sistemas de gestión de paquetes, el gestor de paquetes YaST y Red Carpet , mediante un enfoque de selección de las mejores soluciones, ya que ambas se utilizaban en Novell hasta entonces. Al analizar las herramientas de código abierto existentes y su nivel de madurez en 2005, ninguna cumplía los requisitos ni era compatible con el software de infraestructura de gestión de Linux desarrollado por Ximian y SUSE. Por ello, se decidió aprovechar las mejores ideas de las herramientas existentes y desarrollar una nueva implementación. La biblioteca resultante, Libzypp, se concibió como el motor de gestión de software de las distribuciones de SUSE y el componente de gestión de Linux de la suite de gestión Novell ZENworks .

Primeros tiempos

El solucionador de Libzypp era una adaptación del solucionador Red Carpet, que se escribió para actualizar paquetes en sistemas instalados. Usarlo para el proceso de instalación completo lo llevó al límite, y agregar extensiones como soporte para dependencias débiles y parches lo hizo frágil e impredecible. [ 9 ] Aunque esta primera versión del solucionador de ZYpp funcionó satisfactoriamente, en los productos empresariales de la compañía con el demonio ZMD acoplado, dio lugar a una versión de openSUSE 10.1 que salió en mayo de 2006 con un paquete del sistema que no funcionaba como se esperaba. En diciembre de 2006, la versión de openSUSE 10.2 corrigió algunos defectos de la versión anterior, utilizando la versión revisada de ZYpp v2. ZMD se eliminó posteriormente de la versión 10.3 y se reservó solo para los productos empresariales de la compañía. Si bien ZYpp v3 proporcionó a openSUSE un gestor de paquetes relativamente bueno, equivalente a otros gestores de paquetes existentes, sufrió algunos fallos en su implementación que limitaron en gran medida su rendimiento de velocidad.

Integración del solucionador SAT

Un área donde libzypp necesitaba mejoras era la velocidad del solucionador de dependencias. libsolv se está escribiendo y publicando bajo la licencia BSD revisada . [ 10 ]

Proyectos como Optimal Package Install/Uninstall Manager (OPIUM) [ 11 ] [ 12 ] y MANCOOSI [ 13 ] intentaban solucionar problemas de resolución de dependencias con un solucionador SAT . Los solucionadores tradicionales como Advanced Packaging Tool (APT) a veces muestran deficiencias inaceptables. Se decidió integrar algoritmos SAT en la pila ZYpp; los algoritmos de solución utilizados se basaron en el popular solucionador minisat. [ 14 ]

La implementación del solucionador SAT, tal como aparece en openSUSE 11.0, se basa en dos bloques principales, pero independientes:

  • Se utiliza un diccionario de datos para almacenar y recuperar información sobre paquetes y dependencias. Se creó un nuevo formato solv que almacena un repositorio como un diccionario de cadenas, un diccionario de relaciones y, posteriormente, todas las dependencias de los paquetes. La lectura y fusión de múltiples repositorios solv se realiza en cuestión de milisegundos.
  • Uso de la satisfacibilidad para calcular dependencias de paquetes. El problema de la satisfacibilidad booleana es un problema ampliamente estudiado con numerosos solucionadores disponibles. Es muy rápido, ya que la complejidad de la resolución de paquetes es muy baja en comparación con otras áreas donde se utilizan solucionadores SAT. Además, no requiere algoritmos complejos y puede proporcionar sugerencias comprensibles calculando pruebas de por qué un problema es irresoluble.

Después de varios meses de trabajo, los resultados de referencia de esta cuarta versión de ZYpp integrada con el solucionador SAT fueron más que alentadores, lo que situó a YaST y Zypper por delante de otros gestores de paquetes basados ​​en RPM en velocidad y tamaño. [ 15 ] [ 16 ]

partes delanteras

Normalmente, YaST ha servido como interfaz gráfica para ZYpp en SUSE. [ 17 ] ZYpp también es compatible con PackageKit . [ 18 ] A partir de 2025 con openSUSE Leap 16.0, YaST fue reemplazado por Myrlyn. [ 17 ] [ 19 ]

Referencias

  1. "Registro de cambios más antiguo conocido" .
  2. "Versión 17.38.14" . 19 de junio de 2026. Consultado el 20 de junio de 2026 .
  3. "Versión 1.14.98" . 12 de junio de 2026. Consultado el 13 de junio de 2026 .
  4. 1 2 3 4 5 6 7 8 9 10 "El proyecto de código abierto zypp en Open Hub: Página de idiomas" . Open Hub . Consultado el 2 de mayo de 2024 .
  5. 1 2 3 4 5 6 7 "GitHub - openSUSE/zypper: El gestor de paquetes de línea de comandos más potente del mundo" . GitHub . Consultado el 2 de mayo de 2024 .
  6. "Acrónimos - Wiki de openSUSE" .
  7. "Documentación de Libzypp" .
  8. "Página principal del proyecto Libzypp" .
  9. "Michael Schroeder, Historia de satsolver" . GitHub . 26 de noviembre de 2021.
  10. "libsolv en github" . GitHub . 26 de noviembre de 2021.
  11. Tucker, Chris; Shuffelton, David; Jhala, Ranjit; Lerner, Sorin (2007), "OPIUM: Administrador óptimo de instalación/desinstalación de paquetes" (PDF) , 29.ª Conferencia Internacional sobre Ingeniería de Software , ICSE'07.
  12. Equipo del paquete de trabajo 2 del proyecto EDOS (marzo de 2006), "Informe sobre la gestión formal de las dependencias de software" , Paquete de trabajo entregable 2 del proyecto EDOS , Entregable 2 , consultado el 6 de junio de 2009 .{{citation}}: CS1 maint: servicio de archivo obsoleto ( enlace ) CS1 maint: nombres numéricos: lista de autores ( enlace )
  13. Le Berre, Daniel; Parrain, Anne (2008), "Sobre las tecnologías SAT para la gestión de dependencias y más allá" (PDF) , ASPL 2008 , Limerick, Mancoosi.org.
  14. "Minisat.se" .
  15. "Velocidad y uso de memoria de yum y ZYpp" . 16 de mayo de 2008. Consultado el 23 de octubre de 2008 .
  16. "Avance de openSUSE 11.0: Gestión de paquetes, con Duncan Mac-Vicar" . 6 de junio de 2008. Consultado el 15 de octubre de 2017 .
  17. 1 2 Larabel, Michael (10 de febrero de 2025). "Anteriormente conocido como YQPkg, la interfaz gráfica de usuario del gestor de paquetes Myrlyn añade configuración de repositorio" . Phoronix.com . Consultado el 6 de mayo de 2025 .
  18. "Preguntas frecuentes" . packagekit.org. Archivado del original el 19 de marzo de 2008. Consultado el 10 de julio de 2009 .
  19. Brockmeier, Joe (12 de mayo de 2025). "¿El último de YaST?" . LWN.net . Consultado el 15 de mayo de 2026 .
  • Sitio web oficial
  • Un adelanto de la nueva gestión de paquetes de openSUSE.
  • DistroWatch.com