stringtranslate.com

ZYpp

ZYpp (или libzypp ; «Zen/YaST Packages Patches Patterns Products» [3] ) — это механизм менеджера пакетов , который поддерживает такие приложения Linux, как YaST , Zypper и реализацию PackageKit для openSUSE и SUSE Linux Enterprise . [4] В отличие от некоторых более простых менеджеров пакетов, он предоставляет решатель выполнимости для вычисления зависимостей пакетов. [5] Это бесплатный программный проект с открытым исходным кодом, спонсируемый 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 [6] в качестве первого дистрибутива, сделавшего это. 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, который был написан для обновления пакетов в установленных системах. Использование его для полного процесса установки довело его до предела, а добавление расширений, таких как поддержка слабых зависимостей и исправлений, сделало его хрупким и непредсказуемым. [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 основана на двух основных, но независимых блоках:

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

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

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

  1. ^ Самый ранний известный журнал изменений.
  2. ^ "Выпуск 17.31.32" . 20 февраля 2024 г. Проверено 20 февраля 2024 г.
  3. ^ "Акронимы - openSUSE Wiki" .
  4. ^ "Документация Libzypp" .
  5. ^ "Домашняя страница проекта Libzypp" .
  6. ^ «Еще один взгляд на упаковочные системы Linux» . Июнь 2009 года.
  7. ^ "Майкл Шредер, История сатсолвера" . Гитхаб . 26 ноября 2021 г.
  8. ^ «libsolv на github». Гитхаб . 26 ноября 2021 г.
  9. ^ Такер, Крис; Шаффелтон, Дэвид; Джала, Ранджит; Лернер, Сорин (2007), «OPIUM: Оптимальный менеджер установки/удаления пакетов» (PDF) , 29-я Международная конференция по разработке программного обеспечения , ICSE'07.
  10. ^ Команда EDOS Project Workpackage 2 (март 2006 г.), «Отчет о формальном управлении программными зависимостями», EDOS Project Результат работы 2 , Результат 2, заархивировано из оригинала 19 июня 2006 г. , получено 06 июня 2009 г.{{citation}}: CS1 maint: числовые имена: список авторов ( ссылка )
  11. ^ Ле Берр, Даниэль; Паррен, Энн (2008 г.), «О технологиях SAT для управления зависимостями и не только» (PDF) , ASPL 2008 , Лимерик, Mancoosi.org.
  12. ^ "Minisat.se".
  13. ^ «ням и скорость / использование памяти ZYpp» . 16 мая 2008 года . Проверено 23 октября 2008 г.[ постоянная мертвая ссылка ]
  14. ^ «Краткий обзор openSUSE 11.0: Управление пакетами с Дунканом Мак-Викаром» . 6 июня 2008 года . Проверено 15 октября 2017 г.

Внешние ссылки