Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

ZYpp (или libzypp ; «продукты паттернов пакетов Zen / YaST» [3] ) - это механизм диспетчера пакетов, который поддерживает приложения Linux, такие как YaST , Zypper, и реализацию PackageKit для openSUSE и SUSE Linux Enterprise . [4] В отличие от некоторых более простых менеджеров пакетов, он предоставляет решатель выполнимости для вычисления зависимостей пакетов. [5] Это бесплатный проект программного обеспечения с открытым исходным кодом, спонсируемый Novell и лицензируемый в соответствии с условиями Стандартной общественной лицензии GNU.v2 или новее. ZYpp реализован в основном на языке программирования C ++ .

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

История [ править ]

Цель [ править ]

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

Ранние дни [ править ]

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

Интеграция с SAT-решателем [ править ]

Сфера, в которой libzypp нуждалась в улучшении, - это скорость решателя зависимостей. libsolv пишется и выпускается под пересмотренной лицензией BSD . [8]

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

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

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

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

См. Также [ править ]

  • openSUSE
  • YaST

Ссылки [ править ]

  1. ^ Самые ранние известные изменения
  2. ^ "Выпуск 17.25.8" . 24 февраля 2021 . Проверено 22 марта 2021 года .
  3. ^ https://en.opensuse.org/Acronyms#Z
  4. ^ "Документация Libzypp" .
  5. ^ "Домашняя страница проекта Libzypp" .
  6. ^ «Еще один взгляд на системы упаковки Linux» .
  7. ^ "Майкл Шредер, История сатсольвера" .
  8. ^ "libsolv на гитхабе" .
  9. ^ Такер, Крис; Шаффелтон, Дэвид; Джхала, Ранджит; Лернер, Сорин (2007), «OPIUM: OPtimal Package Install / Uninstall Manager» (PDF) , 29-я Международная конференция по разработке программного обеспечения , ICSE'07.
  10. ^ Команда рабочего пакета проекта EDOS 2 (март 2006 г.), «Отчет по формальному управлению зависимостями программного обеспечения» , Рабочий пакет 2 проекта EDOS , результат 2.
  11. ^ Ле Берр, Даниэль; Паррейн, Энн (2008), «О технологиях SAT для управления зависимостями и не только» (PDF) , ASPL 2008 , Лимерик, Mancoosi.org.
  12. ^ "Minisat.se" .
  13. ^ "yum и ZYpp скорость / использование памяти" . 16 мая 2008 . Проверено 23 октября 2008 года .
  14. ^ «Заглядывать в openSUSE 11.0: Управление пакетами с Дунканом Мак-Викаром» . 6 июня 2008 . Проверено 15 октября 2017 года .

Внешние ссылки [ править ]

  • Официальный веб-сайт
  • Подглядывание за новым управлением пакетами openSUSE
  • DistroWatch.com