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 <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:

RPM: Balíčkovací formát

Linuxové distribuce: openSUSE a SLE

Správa balíčků: Teorie a praxe

Tagy: tag>it linux opensuse libzypp package-management cpp rpm zypper