Uživatelské nástroje

Nástroje pro tento web


it:os:libzypp

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:

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

it/os/libzypp.txt · Poslední úprava: autor: admin