====== Libzypp: Srdce správy balíčků v SUSE ====== **Libzypp** je C++ knihovna pro správu softwaru, která implementuje kompletní logiku pro práci s repozitáři, řešení závislostí a instalaci balíčků. Na rozdíl od mnoha jiných správců balíčků vyniká pokročilým matematickým přístupem k řešení konfliktů. ===== 1. Klíčové vlastnosti ===== Libzypp není jen obyčejný instalátor balíčků; obsahuje komplexní subsystémy pro správu celého životního cyklu softwaru: * **SAT Solver (Satisfiability Solver):** Nejdůležitější část knihovny. Používá algoritmy pro řešení logické splnitelnosti k nalezení nejlepšího způsobu, jak nainstalovat balíček a jeho závislosti, aniž by došlo k rozbití systému. * **Podpora více formátů:** Primárně pracuje s balíčky **RPM**, ale umí spravovat i metadata repozitářů typu ''yum'' nebo ''createrepo''. * **Správa vzorů (Patterns):** Umožňuje instalovat celé skupiny balíčků definované pro konkrétní účel (např. "Vývoj v C++" nebo "Grafické prostředí GNOME"). * **Práce s Deltami:** Podporuje stahování pouze rozdílových dat (Delta RPM), což výrazně šetří šířku pásma. --- ===== 2. Architektura systému ===== Libzypp funguje jako prostředník (middleware) mezi nízkoúrovňovým nástrojem ''rpm'' a uživatelským rozhraním. 1. **Uživatelské rozhraní:** [[it:sw:zypper|Zypper]] nebo YaST pošle požadavek (např. "nainstaluj VLC"). 2. **Libzypp:** Načte metadata z repozitářů a aktuální stav systému z RPM databáze. 3. **SAT Solver:** Propojí závislosti a vytvoří "transakční plán". 4. **Provedení:** Libzypp stáhne balíčky a zavolá binárku ''rpm'' pro jejich fyzickou instalaci. --- ===== 3. SAT Solver: Mozek knihovny ===== Tradiční správci balíčků často trpěli problémem "Dependency Hell" (peklo závislostí). Libzypp byl jedním z prvních, který začal používat **Boolean SAT solver**. Při řešení konfliktů se knihovna nepokouší o metodu pokus-omyl, ale převede všechny balíčky a jejich verze na matematickou logickou formuli. Výsledkem je buď perfektní řešení, nebo přesný popis toho, proč instalace není možná, spolu s návrhy na řešení (např. "odinstaluj balíček X, který koliduje s Y"). --- ===== 4. Zypper: Hlavní nástroj pro ovládání ===== Ačkoliv je Libzypp knihovna, většina uživatelů s ní interaguje skrze nástroj **Zypper**. Základní příkazy jsou: ^ Příkaz ^ Akce ^ | ''zypper in '' | Instalace nového balíčku. | | ''zypper rm '' | Odstranění balíčku. | | ''zypper up'' | Aktualizace nainstalovaných balíčků. | | ''zypper dup'' | Totální aktualizace distribuce (používá se u Rolling Release verzí jako Tumbleweed). | | ''zypper ref'' | Obnovení metadat repozitářů. | --- ===== 5. Konfigurace ===== Hlavní konfigurační soubor pro Libzypp se nachází v: /etc/zypp/zypp.conf Zde lze nastavit chování jako automatické potvrzování licencí, čištění starých verzí jádra (multiversion kernel) nebo priority repozitářů. ---- //Související články:// * [[it:sw:rpm|RPM: Balíčkovací formát]] * [[it:sw:linux_distribuce|Linuxové distribuce: openSUSE a SLE]] * [[it:sw:package_management|Správa balíčků: Teorie a praxe]] //Tagy: {{tag>it linux opensuse libzypp package-management cpp rpm zypper}}//