ZYpp
Author
Albert FloresZYpp (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. 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. 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ší.
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. +more Byl užíván v openSUSE od verze 10. 2 beta1. V openSUSE 11. 1 se nacházel Zypper ve verzi 1. 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,. Zypper je taktéž asimilován v mobilních linuxových distribucích, jako jsou MeeGo, Sailfish OS a Tizen.
Historie
Cíle
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. +more 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
Ř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. 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. +more1 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
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) a MANCOOSI 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. +more SAT solver (řešící problém splnitelnosti) pracuje odlišně od obvyklých nástrojů jak je Apt. 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.
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. +more 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.
Reference
Externí odkazy
[url=https://en.opensuse.org/Portal:Libzypp]oficiální stránky Zypp[/url] * [url=https://distrowatch.com/weekly.php?issue=20080602#feature]Distrowatch.com[/url]