ЗЫпп

Библиотека управления пакетами Linux
ЗЫпп
Первоначальный выпуск14 января 2006 г .; 19 лет назад [1] ( 2006-01-14 )
Стабильный релиз
17.35.16 [2] 1.14.78 [3]  / 18 декабря 2024 г. ; 31 день назад 12 ноября 2024 г. ; 2 месяца назад ( 18 декабря 2024 ) ( 12 ноября 2024 )
Репозиторийhttps://github.com/openSUSE/libzypp https://github.com/openSUSE/zypper 
Написано в
  • ZYpp: C++, [4] XML, [4] C, [4] CMake, [4] Ruby, [4] Python, [4] Perl, [4] скрипт оболочки, [4] Tcl, [4] Lua [4] 
  • Zypper: C++, [5] CMake, [5] скрипт оболочки, [5] C, [5] Perl, [5] Augeas, [5] Python [5] 
Операционная системаЛинукс
ТипМенеджер пакетов
ЛицензияСтандартная общественная лицензия GNU
Веб-сайтru.opensuse.org/Портал:Libzypp

ZYpp (или libzypp ; "Zen / YaST Packages Patches Patterns Products" [6] ) — это движок менеджера пакетов , который поддерживает такие приложения Linux, как YaST , Zypper и реализацию PackageKit для openSUSE и SUSE Linux Enterprise . [7] В отличие от некоторых более простых менеджеров пакетов, он предоставляет решатель выполнимости для вычисления зависимостей пакетов. [8] Это бесплатный и открытый программный проект, спонсируемый SUSE и лицензируемый в соответствии с условиями GNU General Public License v2 или более поздней версии. ZYpp реализован в основном на языке программирования C++ .

Zypper — это собственный интерфейс командной строки менеджера пакетов ZYpp для установки, удаления, обновления и запроса пакетов программного обеспечения локальных или удаленных (сетевых) носителей. Его графическим эквивалентом является модуль менеджера пакетов YaST . Он используется в openSUSE с версии 10.2 beta1. В openSUSE 11.1 Zypper достиг версии 1.0. 2 июня 2009 года Ark Linux объявила о завершении обзора решателей зависимостей и выборе ZYpp и его инструментов для замены устаревшего APT-RPM [9] в качестве первого дистрибутива , сделавшего это. Zypper также является частью мобильных дистрибутивов Linux MeeGo , Sailfish OS и Tizen .

История

Цель

Скриншот zypper dup, показывающий доступные для установки обновления

После последовательных приобретений Ximian и SuSE GmbH в 2003 году Novell решила объединить обе системы управления пакетами, менеджер пакетов YaST и Red Carpet , в подходе, лучшем в своем классе, поскольку эти два решения до сих пор использовались в Novell. Рассматривая существующие инструменты с открытым исходным кодом и их зрелость, доступную еще в 2005 году, ни один из них не отвечал требованиям и не мог гладко работать с существующим программным обеспечением инфраструктуры управления Linux, разработанным Ximian и SUSE, поэтому было решено извлечь лучшие идеи из существующих частей и поработать над новой реализацией. Libzypp, получившаяся библиотека, планировалась как механизм управления программным обеспечением дистрибутивов SUSE и компонент Linux Management пакета Novell ZENworks Management.

Ранние дни

Решатель Libzypp был портом решателя Red Carpet, который был написан для обновления пакетов в установленных системах. Использование его для полного процесса установки привело к его пределам, а добавление расширений, таких как поддержка слабых зависимостей и исправлений, сделало его хрупким и непредсказуемым. [10] Хотя эта первая версия решателя ZYpp работала удовлетворительно на корпоративных продуктах компании с сопряженным демоном ZMD, это привело к выпуску openSUSE 10.1, который вышел в мае 2006 года с системным пакетом, не работающим так, как ожидалось. В декабре 2006 года выпуск openSUSE 10.2 исправил некоторые дефекты предыдущего выпуска, используя пересмотренный ZYpp v2. Впоследствии ZMD был удален из выпуска 10.3 и зарезервирован только для корпоративных продуктов компании. Хотя ZYpp v3 предоставил openSUSE относительно хороший менеджер пакетов, эквивалентный другим существующим менеджерам пакетов, он страдал от некоторых недостатков в своей реализации, которые значительно ограничивали его быстродействие.

Интеграция решателя SAT

Областью, в которой libzypp требовалось улучшение, была скорость решателя зависимостей. libsolv пишется и выпускается под пересмотренной лицензией BSD . [11]

Такие проекты, как Optimal Package Install/Uninstall Manager (OPIUM) [12] [13] и MANCOOSI [14], пытались исправить проблемы решения зависимостей с помощью решателя SAT . Традиционные решатели, такие как Advanced Packaging Tool (APT), иногда демонстрируют неприемлемые недостатки. Было решено интегрировать алгоритмы SAT в стек ZYpp; используемые алгоритмы решателя были основаны на популярном решателе minisat. [15]

Реализация решателя SAT в том виде, в каком она представлена ​​в openSUSE 11.0, основана на двух основных, но независимых блоках:

  • Использование подхода словаря данных для хранения и извлечения информации о пакетах и ​​зависимостях. Был создан новый формат solv, который хранит репозиторий как словарь строк, словарь отношений и затем все зависимости пакетов. Чтение и слияние нескольких репозиториев solv занимает всего миллисекунды.
  • Использование выполнимости для вычисления зависимостей пакетов. Проблема булевой выполнимости — хорошо изученная проблема со множеством доступных решателей-образцов. Она очень быстрая, поскольку сложность решения пакета очень низкая по сравнению с другими областями, где используются решатели SAT. Кроме того, она не требует сложных алгоритмов и может предоставлять понятные предложения, вычисляя доказательство того, почему проблема неразрешима.

После нескольких месяцев работы результаты тестов четвертой версии ZYpp, интегрированной с решателем SAT, оказались более чем обнадеживающими, выведя YaST и Zypper вперед по скорости и размеру других менеджеров пакетов на основе RPM. [16] [17]

Смотрите также

Ссылки

  1. ^ Самый ранний известный журнал изменений
  2. ^ "Выпуск 17.35.16". 18 декабря 2024 г. Получено 30 декабря 2024 г.
  3. ^ "Release 1.14.78". 12 ноября 2024 г. Получено 30 ноября 2024 г.
  4. ^ abcdefghij "Проект с открытым исходным кодом zypp на Open Hub: страница языков". Open Hub . Получено 2 мая 2024 г.
  5. ^ abcdefg "GitHub - openSUSE/zypper: Самый мощный в мире менеджер пакетов командной строки". GitHub . Получено 2 мая 2024 г. .
  6. ^ «Акронимы — openSUSE Wiki».
  7. ^ "Документация Libzypp".
  8. ^ "Домашняя страница проекта Libzypp".
  9. ^ «Еще один взгляд на системы пакетов Linux». Июнь 2009 г.
  10. ^ "Майкл Шредер, История satsolver". GitHub . 26 ноября 2021 г.
  11. ^ "libsolv на github". GitHub . 26 ноября 2021 г.
  12. ^ Такер, Крис; Шаффелтон, Дэвид; Джала, Ранджит; Лернер, Сорин (2007), «OPIUM: OPtimal Package Install/Uninstall Manager» (PDF) , 29-я Международная конференция по программной инженерии , ICSE'07.
  13. ^ Группа EDOS Project Workpackage 2 (март 2006 г.), «Отчет о формальном управлении зависимостями программного обеспечения», EDOS Project Deliverable Work Package 2 , Deliverable 2, архивировано из оригинала 2006-06-19 , извлечено 2009-06-06 .{{citation}}: CS1 maint: числовые имена: список авторов ( ссылка )
  14. ^ Ле Берр, Даниэль; Паррен, Энн (2008), «О технологиях SAT для управления зависимостями и не только» (PDF) , ASPL 2008 , Лимерик, Mancoosi.org.
  15. ^ "Minisat.se".
  16. ^ "yum и ZYpp скорость / использование памяти". 16 мая 2008 г. Получено 23 октября 2008 г.[ постоянная мертвая ссылка ‍ ]
  17. ^ "Sneak Peeks at openSUSE 11.0: Package Management, with Duncan Mac-Vicar". 6 июня 2008 г. Получено 15 октября 2017 г.
  • Официальный сайт
  • Краткий обзор нового управления пакетами openSUSE
  • DistroWatch.com
Взято с "https://en.wikipedia.org/w/index.php?title=ZYpp&oldid=1268492629"