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ů.
Libzypp není jen obyčejný instalátor balíčků; obsahuje komplexní subsystémy pro správu celého životního cyklu softwaru:
yum nebo createrepo.—
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.
—
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“).
—
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 <balicek> | Instalace nového balíčku. |
zypper rm <balicek> | 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ářů. |
—
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:
Tagy: it linux opensuse libzypp package-management cpp rpm zypper