ZYpp - ZYpp

ZYpp
Pierwsze wydanie 14 stycznia 2006 ; 15 lat temu  ( 2006-01-14 )
Wersja stabilna
17.25.8 / 24 lutego 2021 ; 33 dni temu  ( 24 lutego 2021 )
Magazyn Edytuj to w Wikidata
Napisane w C ++
System operacyjny Linux
Rodzaj Menedżer pakietów
Licencja Powszechna Licencja Publiczna GNU
Stronie internetowej pl .opensuse .org / Portal: Libzypp

ZYpp (lub libzypp ; „Zen / YaST Packages Patches Patterns Products” ) to silnik menedżera pakietów , który obsługuje aplikacje Linux, takie jak YaST , Zypper oraz implementację PackageKit dla openSUSE i SUSE Linux Enterprise . W przeciwieństwie do niektórych bardziej podstawowych menedżerów pakietów zapewnia rozwiązanie spełniające wymagania do obliczania zależności pakietów. Jest to projekt darmowego oprogramowania o otwartym kodzie źródłowym, sponsorowany przez firmę Novell i objęty licencją na warunkach Powszechnej Licencji Publicznej GNU v2 lub nowszej. ZYpp jest zaimplementowany głównie w języku programowania C ++ .

Zypper to natywny interfejs wiersza poleceń menedżera pakietów ZYpp do instalowania, usuwania, aktualizowania i wysyłania zapytań do pakietów oprogramowania z mediów lokalnych lub zdalnych (sieciowych). Jego graficznym odpowiednikiem jest moduł menedżera pakietów YaST . Jest używany w openSUSE od wersji 10.2 beta1. W openSUSE 11.1 Zypper osiągnął wersję 1.0. 2 czerwca 2009 Ark Linux ogłosił, że zakończył przegląd rozwiązań do rozwiązywania zależności i wybrał ZYpp i jego narzędzia, aby zastąpić starzejący się APT-RPM , jako pierwszą dystrybucję, która to zrobiła. Zypper jest również częścią mobilnych dystrybucji Linuksa MeeGo , Sailfish OS i Tizen .

Historia

Cel, powód

Po kolejnych przejęciach Ximian i SuSE GmbH w 2003 r. Novell zdecydował się połączyć oba systemy zarządzania pakietami, menedżera pakietów YaST i firmę Red Carpet , zgodnie z najlepszym podejściem, ponieważ te dwa rozwiązania były dotychczas używane w firmie Novell. Patrząc na istniejące narzędzia open source i ich dojrzałość dostępne w 2005 r., Żadne nie spełniało wymagań i nie było w stanie płynnie współpracować z istniejącym oprogramowaniem infrastruktury zarządzania Linuksem opracowanym przez Ximian i SUSE, więc zdecydowano się na najlepsze pomysły z istniejących sztuk i do pracy nad nową implementacją. Powstała biblioteka Libzypp miała być mechanizmem zarządzania oprogramowaniem w dystrybucjach SUSE i komponentem Linux Management pakietu Novell ZENworks Management.

Początki

Solver Libzyppa był portem z solwera Red Carpet, który został napisany w celu aktualizacji pakietów w zainstalowanych systemach. Użycie go do pełnego procesu instalacji doprowadziło go do granic możliwości, a dodanie rozszerzeń, takich jak obsługa słabych zależności i poprawek, sprawiło, że był kruchy i nieprzewidywalny. Chociaż ta pierwsza wersja solvera ZYpp działała zadowalająco, na produktach korporacyjnych firmy ze sprzężonym demonem ZMD, doprowadziła do wydania openSUSE 10.1, które ukazało się w maju 2006 roku z pakietem systemowym nie działającym zgodnie z oczekiwaniami. W grudniu 2006, wydanie openSUSE 10.2 poprawiło niektóre wady poprzedniego wydania, używając ponownie odwiedzonego ZYpp v2. ZMD został następnie usunięty z wersji 10.3 i zarezerwowany tylko dla produktów firmy Enterprise. Chociaż ZYpp v3 dostarczył openSUSE stosunkowo dobrego menedżera pakietów, równoważnego z innymi istniejącymi menedżerami pakietów, miał pewne wady w implementacji, które znacznie ograniczyły jego szybkość.

Integracja solvera SAT

Obszarem, w którym libzypp wymagało poprawy, była szybkość rozwiązywania zależności. libsolv jest pisane i wydawane na zmienionej licencji BSD .

Projekty takie jak Menedżer instalacji / dezinstalacji optymalnego pakietu (OPIUM) i MANCOOSI próbowały naprawić problemy związane z rozwiązywaniem zależności z solwerem SAT . Tradycyjne solwery, takie jak Advanced Packaging Tool (APT), czasami wykazują niedopuszczalne braki. Zdecydowano się na zintegrowanie algorytmów SAT ze stosem ZYpp; zastosowane algorytmy solvera zostały oparte na popularnym rozwiązaniu minisat.

Implementacja solvera SAT, tak jak pojawia się w openSUSE 11.0, jest oparta na dwóch głównych, ale niezależnych blokach:

  • Korzystanie ze słownika danych do przechowywania i pobierania informacji o pakietach i zależnościach. Utworzono nowy format rozwiązywania, który przechowuje repozytorium jako słownik ciągów, słownik relacji, a następnie wszystkie zależności pakietów. Czytanie i łączenie wielu repozytoriów rozwiązań zajmuje tylko milisekundy.
  • Wykorzystanie zgodności do obliczania zależności pakietów. Problem spełnialności jest dobrze zbadany problem z wielu przykładowych dostępnych rozwiązują. Jest bardzo szybki, ponieważ złożoność rozwiązywania pakietów jest bardzo niska w porównaniu z innymi obszarami, w których używane są solwery SAT. Ponadto nie potrzebuje skomplikowanych algorytmów i może dostarczyć zrozumiałych sugestii, obliczając dowód, dlaczego problem jest nierozwiązywalny.

Po kilku miesiącach pracy, wyniki testów porównawczych czwartej wersji ZYpp zintegrowanej z solwerem SAT są więcej niż zachęcające, wyprzedzając YaST i Zyppera o szybkość i rozmiar innych menedżerów pakietów opartych na RPM.

Zobacz też

Bibliografia

Linki zewnętrzne