ZYpp

редактировать
ZYpp
Первоначальный выпускЯнварь 14, 2006; 14 лет назад (2006-01-14)
Стабильный выпуск 17.23.6 / 4 июня 2020 г.; 4 месяца назад (2020-06-04)
Репозиторий Измените это в Викиданных
Написано наC ++
Операционная система Linux
Введите Менеджер пакетов
Лицензия Стандартная общественная лицензия GNU
Веб-сайтen.opensuse.org / Портал: Libzypp

ZYpp (или libzypp ; "Zen / YaST Packages Patches Patterns Products") - это механизм диспетчера пакетов, который поддерживает приложения Linux, такие как YaST, Zypper, и реализацию PackageKit для openSUSE и SUSE Linux Enterprise. В отличие от некоторых более простых менеджеров пакетов, он предоставляет решатель выполнимости для вычисления зависимостей пакетов. Это бесплатное программное обеспечение с открытым исходным кодом, спонсируемое 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 в качестве первого дистрибутива, который сделает это. Zypper также входит в состав мобильных дистрибутивов Linux MeeGo, Sailfish OS и Tizen.

Содержание
  • 1 История
    • 1.1 Цель
    • 1.2 Ранняя дней
    • 1.3 Интеграция SAT-решателя
  • 2 См. также
  • 3 Ссылки
  • 4 Внешние ссылки
История

Цель

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

Ранние дни

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

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

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

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

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

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

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

См. также
  • Портал бесплатного программного обеспечения с открытым исходным кодом
Ссылки
Внешние ссылки
Последняя правка сделана 2021-06-23 05:23:16
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте