ZYpp

balíčkovací systém

ZYpp (nebo též libzypp) je balíčkovací systém, na němž běží linuxové aplikace jako YaST, Zypper a implementace PackageKitu od openSUSE/SUSE Linux Enterprise.[1] Na rozdíl od jiných běžných balíčkovacích systémů poskytuje výkonný SAT solver sloužící k výpočtu závislostí v balíčku a vhodného API v balíčkovacím systému.[2] Projekt je koncipován jako svobodný software s otevřenými zdrojovými kódy. Je sponzorován společností Novell a šířen pod licencí GNU General Public License verze 2 nebo novější.

ZYpp
Aktuální verze17.35.16 (18. prosince 2024)
Operační systémLinux
Vyvíjeno vC++
Typ softwaruBalíčkovací systém
LicenceGNU GPL
WebLibZYpp Portal (anglicky)
Některá data mohou pocházet z datové položky.

Zypper je nativní příkazový řádek balíčkovacího systému ZYpp vhodný k instalacím, odstraňování, updatování a tvorbě dotazů pro softwarové balíčky lokálních nebo vzdálených (síťových) médií. Jeho grafický ekvivalent je modul pro správu balíčků s názvem YaST. Byl užíván v openSUSE od verze 10.2 beta1. V openSUSE 11.1 se nacházel Zypper ve verzi 1.0. Dne 2. června 2009 Ark Linux jako první linuxová distribuce oznámil, že přezkoumal záležitosti spojené s řešením závislostí a vybral ZYpp a jeho nástroje jako náhradníka vůči apt-rpm,[3]. Zypper je taktéž asimilován v mobilních linuxových distribucích, jako jsou MeeGo, Sailfish OS a Tizen.

Historie

editovat

Jako následek po sobě jdoucích akvizic Ximian a SuSE GmbH v roce 2003 se společnost Novell rozhodla spojit balíčkovací systémy YaST a Red Carpet spolu s jejich nejlepšími vlastnostmi - oba dva systémy dosud Novell používal samostatně - v jeden balíčkovací systém. Při pohledu na existující open source nástroje dostupné v roce 2005 (a jejich úroveň) je patrné, že žádný z nich nesplňoval nezbytné požadavky a žádný nebyl schopen plynule pracovat s existující infrastrukturou pro správu softwaru vyvinutého společnostmi SUSE nebo Ximian. Proto bylo rozhodnuto vzít nejlepší myšlenky z existujících částí a vytvořit novou implementaci. Výsledná knihovna Libzypp měla za cíl být softwarový správce pro distribuce SUSE a manažer pro linuxové komponenty v řešení ZENworks.

První dny

editovat

Řešení Libzypp představovalo přechod z řešení Red Carpet napsaného na aktualizační balíčky v již nainstalovaných systémech, použití na kompletní instalační proces naráželo na limity tohoto systému a přidávání dalších rozšíření a patchů jej dělalo slabým a nepředvídatelným.[4][5] Ačkoli první verze Zypp solveru pracovala uspokojivě pouze pro několik firemních produktů se ZMD démonem, v průběhu vydání verze openSUSE 10.1 v květnu 2006 nepracovaly systémové balíčky dle očekávání prakticky vůbec. V prosinci 2006 byly ve verzi openSUSE 10.2 opraveny některé chyby předchozího vydání pomocí nové verze ZYpp v2. ZMD byl následně odejmut ve verzi 10.3 a zůstal vyhrazen pouze pro firemní produkty. Systém ZYpp verze 3 představoval pro openSUSE relativně dobrého správce balíčků srovnatelného s ostatními existujícími správci balíčků, nesl s sebou však i některá omezení, která značně omezovala jeho rychlost.

Integrace SAT solveru

editovat

Místo, kde libzypp potřeboval významné vylepšení, byla rychlost řešení závislostí.

Projekty jako OPIUM (za anglického Optimal Package Install/Uninstall Manager)[6][7] a MANCOOSI[8] se pokoušely odstranit problém s řešením závislostí pomocí SAT solveru. Tradiční solvery jako Apt často vykazují nepřijatelné nedostatky. SAT solver (řešící problém splnitelnosti) pracuje odlišně od obvyklých nástrojů jak je Apt.[9] Této vlastnosti se využilo při integraci SAT algoritmů do systému ZYpp, použitý algoritmus je založen na populárním minisat solveru.[10]

Implementace SAT solveru z openSUSE 11.0 je založena na dvou důležitých avšak nezávislých blocích:

  • Využíváním datového slovníku umožňujícího rychlý způsob ukládání a načítání informací o balíčku a závislostech. Byl vytvořen nový formát, který ukládá informace do úložiště jako řetězec společně se všemi vztahy, které v balíčku existují. Čtení a slučování více informací v úložišti zabere pouhých několik milisekund.
  • Využíváním SAT solveru pro výpočet balíčkových závislostí. Problém splnitelnosti booleovské formule je dobře prozkoumaný a je k dispozici mnoho kvalitních algoritmů. Jsou relativně rychlé, neboť komplexnost balíčků je velmi nízká v porovnání s ostatními oblastmi využívajícími SAT solvery.

Po několika měsících práce jsou výsledky benchmarku pro současné čtyři verze ZYpp s integrovaným SAT solverem více než povzbudivé, pokud porovnáváme YaST a zypper oproti ostatním správcům balíčků založených na rpm, a to jak z hlediska rychlosti, tak i z hlediska paměťové náročnosti.[11]

Související články

editovat

Reference

editovat
  1. dokumentace Libzypp[nedostupný zdroj] (anglicky)
  2. Libzypp projekt - domovská stránka (anglicky)
  3. Jiný pohled na linuxové balíčkovací systémy (anglicky)
  4. Michael Schroeder, Historie SAT solverů (anglicky)
  5. Jan Lomitzki, Řešení problému splnitelnosti booleovské formule[nedostupný zdroj]
  6. C. Tukker, D. Shuffelton, R. Jhala, S. Lerner, OPIUM: OPtimal Package Install/Uninstall Manager, 29 Mezinárodní konference softwarových inženýrů, 2007 (anglicky)
  7. EDOS Projekt Zpráva o formálním řešení softwarových závislostí (anglicky)
  8. D. Le Berre, A. Parrain, SAT technologie pro řešení nezávislostí, ASPL 2008, Limerick, 2008: Mancoosi.org (anglicky)
  9. D. Burrows, Modelování a řešení softwarových závislostí, červen 2005 (anglicky)
  10. Minisat.se (anglicky)
  11. yum a ZYpp rychlost / využití paměti Archivováno 15. 8. 2011 na Wayback Machine. (anglicky)

Externí odkazy

editovat
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy