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