ZYpp
Первоначальный выпуск | 14 января 2006 г [ 1 ] |
---|---|
Стабильная версия | |
Репозиторий | https://github.com/openSUSE/libzypp https://github.com/openSUSE/zypper |
Написано в | |
Операционная система | Линукс |
Тип | Менеджер пакетов |
Лицензия | Стандартная общественная лицензия GNU |
Веб-сайт | в |
ZYpp (или libzypp ; «Пакеты Zen / YaST, патчи, шаблоны продуктов» [ 6 ] ) — это механизм менеджера пакетов , который поддерживает такие приложения Linux, как YaST , Zypper и реализацию PackageKit для openSUSE и SUSE Linux Enterprise . [ 7 ] В отличие от некоторых более простых менеджеров пакетов, он предоставляет решатель выполнимости для вычисления зависимостей пакетов. [ 8 ] Это бесплатный программный проект с открытым исходным кодом, спонсируемый SUSE и лицензируемый в соответствии с условиями GNU General Public License v2 или более поздней версии. ZYpp реализован в основном на языке программирования C++ .
Zypper — это собственный интерфейс командной строки ZYpp менеджера пакетов для установки, удаления, обновления и запроса пакетов программного обеспечения с локального или удаленного (сетевого) носителя. Его графический эквивалент — модуль менеджера пакетов YaST . Он используется в openSUSE начиная с версии 10.2 beta1. В openSUSE 11.1 Zypper достиг версии 1.0. 2 июня 2009 года Ark Linux объявила, что завершила обзор средств решения зависимостей и выбрала ZYpp и его инструменты для замены устаревшего APT-RPM . [ 9 ] как первый дистрибутив, делающий это. Zypper также входит в состав мобильных дистрибутивов Linux MeeGo , Sailfish OS и Tizen .
История
[ редактировать ]Цель
[ редактировать ]После последовательного приобретения Ximian и SuSE GmbH в 2003 году Novell решила объединить обе системы управления пакетами, менеджер пакетов YaST и Red Carpet , используя лучший в своем классе подход, поскольку до сих пор эти два решения использовались в Novell. Глядя на существующие инструменты с открытым исходным кодом и их зрелость, доступные еще в 2005 году, ни один из них не отвечал требованиям и не мог бесперебойно работать с существующим программным обеспечением инфраструктуры управления Linux, разработанным Ximian и SUSE, поэтому было решено перенять лучшие идеи из существующих частей и работать над новой реализацией. Libzypp, полученная в результате библиотека, планировалось стать механизмом управления программным обеспечением дистрибутивов SUSE и компонентом управления Linux пакета Novell ZENworks Management.
Первые дни
[ редактировать ]Решатель Libzypp был портом решателя Red Carpet, который был написан для обновления пакетов в установленных системах. Использование его для полного процесса установки довело его до предела, а добавление расширений, таких как поддержка слабых зависимостей и исправлений, сделало его хрупким и непредсказуемым. [ 10 ] Хотя эта первая версия решателя ZYpp работала удовлетворительно, на корпоративных продуктах компании со связанным демоном ZMD это привело к выпуску openSUSE 10.1, который вышел в мае 2006 года с системным пакетом, который не работал должным образом. В декабре 2006 года в выпуске openSUSE 10.2 были исправлены некоторые дефекты предыдущего выпуска с использованием обновленной версии ZYpp v2. Впоследствии ZMD был удален из версии 10.3 и зарезервирован только для продуктов компании Enterprise. Хотя ZYpp v3 предоставил openSUSE относительно хороший менеджер пакетов, эквивалентный другим существующим менеджерам пакетов, в его реализации были некоторые недостатки, которые сильно ограничивали его скорость.
Интеграция решателя SAT
[ редактировать ]Областью, где libzypp нуждался в улучшении, была скорость решателя зависимостей. libsolv пишется и выпускается под пересмотренной лицензией BSD . [ 11 ]
Такие проекты, как Optimal Package Install/Uninstall Manager (OPIUM) [ 12 ] [ 13 ] и МАНКУСИ [ 14 ] пытались исправить проблемы с решением зависимостей с помощью решателя SAT . Традиционные решатели, такие как Advanced Packaging Tool (APT), иногда демонстрируют неприемлемые недостатки. Было решено интегрировать алгоритмы SAT в стек ZYpp; Используемые алгоритмы решателя были основаны на популярном решателе minisat. [ 15 ]
Реализация решателя SAT в openSUSE 11.0 основана на двух основных, но независимых блоках:
- Использование подхода словаря данных для хранения и получения информации о пакете и зависимостях. Был создан новый формат solv, в котором репозиторий хранится в виде строкового словаря, словаря отношений, а затем всех зависимостей пакета. Чтение и объединение нескольких репозиториев Solv занимает всего миллисекунды.
- Использование выполнимости для вычисления зависимостей пакетов. Проблема логической выполнимости — это хорошо изученная проблема, для которой доступно множество примеров решения. Это очень быстро, поскольку сложность решения пакетов очень низка по сравнению с другими областями, где используются решатели SAT. Кроме того, он не требует сложных алгоритмов и может предоставлять понятные предложения, вычисляя доказательства того, почему проблема неразрешима.
После нескольких месяцев работы результаты тестов четвертой версии ZYpp, интегрированной с решателем SAT, более чем обнадеживают: YaST и Zypper опережают другие менеджеры пакетов на основе RPM по скорости и размеру. [ 16 ] [ 17 ]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Самый ранний известный журнал изменений.
- ^ «Выпуск 17.35.4» . 23 июля 2024 г. Проверено 28 июля 2024 г.
- ^ «Релиз 1.14.76» . 2 июля 2024 г. Проверено 28 июля 2024 г.
- ^ Jump up to: а б с д и ж г час я дж «Проект с открытым исходным кодом zypp на Open Hub: страница языков» . Открыть хаб . Проверено 2 мая 2024 г.
- ^ Jump up to: а б с д и ж г «GitHub — openSUSE/zypper: самый мощный в мире менеджер пакетов командной строки» . Гитхаб . Проверено 2 мая 2024 г.
- ^ «Акронимы — openSUSE Wiki» .
- ^ «Документация Libzypp» .
- ^ «Домашняя страница проекта Libzypp» .
- ^ «Еще один взгляд на пакетные системы Linux» . Июнь 2009 года.
- ^ «Майкл Шредер, История сатсолвера» . Гитхаб . 26 ноября 2021 г.
- ^ «libsolv на github» . Гитхаб . 26 ноября 2021 г.
- ^ Такер, Крис; Шаффелтон, Дэвид; Джала, Ранджит; Лернер, Сорин (2007), «OPIUM: Оптимальный менеджер установки/удаления пакетов» (PDF) , 29-я Международная конференция по разработке программного обеспечения , ICSE'07.
- ^ Команда EDOS Project Workpackage 2 (март 2006 г.), «Отчет о формальном управлении программными зависимостями» , EDOS Project Результат работы 2 , Результат 2, заархивировано из оригинала 19 июня 2006 г. , получено 06 июня 2009 г.
{{citation}}
: CS1 maint: числовые имена: список авторов ( ссылка ) - ^ Ле Берр, Даниэль; Паррейн, Энн (2008 г.), «О технологиях SAT для управления зависимостями и не только» (PDF) , ASPL 2008 , Лимерик, Mancoosi.org.
- ^ «Минисат.се» .
- ^ «ням и скорость/использование памяти ZYpp» . 16 мая 2008 года . Проверено 23 октября 2008 г. [ постоянная мертвая ссылка ]
- ^ «Краткий обзор openSUSE 11.0: Управление пакетами с Дунканом Мак-Викаром» . 6 июня 2008 года . Проверено 15 октября 2017 г.