Obsah
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
yumnebocreaterepo. - 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 <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ářů. |
—
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:
Tagy: it linux opensuse libzypp package-management cpp rpm zypper
