libzypp – Správce balíčků a závislostí

libzypp je výkonná C++ knihovna pro správu softwaru, která implementuje pokročilý algoritmus pro řešení závislostí (dependency resolver). Na rozdíl od mnoha jiných správců balíčků využívá libzypp tzv. SAT solver (Boolean satisfiability solver), který zaručuje matematicky nejpřesnější řešení konfliktů mezi balíčky.

1. Klíčové funkce libzypp

Knihovna libzypp není jen o instalaci souborů; obsahuje komplexní logiku pro údržbu celého operačního systému:

SAT Solver: Využívá algoritmus založený na projektu SATlive pro rychlé a logické řešení složitých stromů závislostí.

Podpora více formátů: Primárně pracuje s balíčky RPM, ale rozumí i meta-datům repozitářů typu YaST a yum/dnf.

Správa repozitářů: Podporuje stahování z HTTP, FTP, HTTPS, DVD, ISO obrazů a lokálních disků.

Zabezpečení: Integrovaná podpora pro ověřování GPG klíčů a kontrolních součtů (checksums) stažených balíčků.

Podpora Delta RPM: Šetří šířku pásma tím, že stahuje pouze rozdíly (patch) mezi verzemi balíčků místo celých souborů.

—

2. Ekosystém libzypp

Libzypp funguje jako motor (backend), na který se napojují různé uživatelské nástroje (frontendy):

Zypper: Standardní nástroj pro příkazovou řádku (CLI). Velmi oblíbený pro svou přehlednost a rychlost.

YaST Software Management: Grafické rozhraní (GUI) v rámci konfiguračního nástroje YaST.

PackageKit: Umožňuje integraci s desktopovými nástroji jako GNOME Software nebo KDE Discover.

—

3. Pokročilé koncepty

Dist-upgrade (dup)

Díky silnému solveru v libzypp je openSUSE (zejména verze Tumbleweed) schopno provádět kompletní upgrady systému mezi verzemi za běhu s minimálním rizikem poškození závislostí.

Vendor Stickiness

Zajímavou vlastností libzypp je „přilnavost k dodavateli“. Pokud nainstalujete balíček z konkrétního repozitáře, libzypp se jej snaží neupgradovat z jiného zdroje, pokud mu to výslovně nepovolíte. To zabraňuje nechtěnému míchání balíčků z různých komunitních zdrojů.

—

4. Porovnání s jinými systémy

Vlastnost	libzypp (Zypper)	libdnf (DNF)	APT
Distribuce	openSUSE, SLE	Fedora, RHEL	Debian, Ubuntu
Formát	RPM	RPM	DEB
Solver	SAT Solver	libsolv (sdílený s libzypp)	Heuristický
Rychlost	Velmi vysoká	Vysoká	Střední

—

5. Souborová struktura a konfigurace

Repozitáře: Jsou definovány v souborech .repo v adresáři /etc/zypp/repos.d/.

Konfigurace: Hlavní nastavení knihovny a Zypperu se nachází v /etc/zypp/zypp.conf.

Cache: Metadata a stažené balíčky se ukládají v /var/cache/zypp/.

Související články:

Přehled Linuxových distribucí

Správa balíčků v Linuxu (RPM vs DEB)

YaST – Nastavení systému pod SUSE

Tagy: tag>linux opensuse suse zypper dev programming cpp package-management