ZYpp - ZYpp
изначальный выпуск | 14 января 2006 г.[1] |
---|---|
Стабильный выпуск | 17.25.2[2] / 7 октября 2020 |
Репозиторий | |
Написано в | 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, и 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]
Смотрите также
Рекомендации
- ^ Самый ранний известный журнал изменений
- ^ «Выпуск 17.25.2». 7 октября 2020 г.. Получено 20 октября 2020.
- ^ https://en.opensuse.org/Acronyms#Z
- ^ "Документация Libzypp".
- ^ "Домашняя страница проекта Libzypp".
- ^ «Еще один взгляд на упаковочные системы Linux».
- ^ "Майкл Шредер, История сатсольвера".
- ^ "libsolv на github".
- ^ Такер, Крис; Шаффелтон, Дэвид; Джала, Ранджит; Лернер, Сорин (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.