====== 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:// * [[it:os:linux_distros|Přehled Linuxových distribucí]] * [[it:dev:package_management|Správa balíčků v Linuxu (RPM vs DEB)]] * [[it:os:suse_yast|YaST – Nastavení systému pod SUSE]] //Tagy: {{tag>linux opensuse suse zypper dev programming cpp package-management}}//