ZYpp - ZYpp

ZYpp
изначальный выпуск14 января 2006 г.; 14 лет назад (2006-01-14)[1]
Стабильный выпуск
17.25.2[2] / 7 октября 2020; 47 дней назад (7 октября 2020 г.)
Репозиторий Отредактируйте это в Викиданных
Написано вC ++
Операционная системаLinux
ТипМенеджер пакетов
ЛицензияСтандартная общественная лицензия GNU
Интернет сайтen.opensuse.org/ Портал: Libzypp

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, и Tizen.

История

Цель

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

Первые дни

Решатель 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] и МАНКООСИ[11] пытались исправить проблемы с решением зависимостей с помощью SAT решатель. Традиционные решатели, такие как Расширенный инструмент упаковки (APT) иногда обнаруживают неприемлемые недостатки. Было решено интегрировать алгоритмы SAT в стек ZYpp; Используемые алгоритмы решателя были основаны на популярном решателе minisat.[12]

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

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

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

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

Рекомендации

  1. ^ Самый ранний известный журнал изменений
  2. ^ «Выпуск 17.25.2». 7 октября 2020 г.. Получено 20 октября 2020.
  3. ^ https://en.opensuse.org/Acronyms#Z
  4. ^ "Документация Libzypp".
  5. ^ "Домашняя страница проекта Libzypp".
  6. ^ «Еще один взгляд на упаковочные системы Linux».
  7. ^ "Майкл Шредер, История сатсольвера".
  8. ^ "libsolv на github".
  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.

внешняя ссылка