Správce balíčků

Z Wikipedie, otevřené encyklopedie
(přesměrováno z Balíčkovací systém)
Skočit na: Navigace, Hledání
Synaptic Package Manager, GTK+ grafický front-end pro APT

Správce balíčků je v informatice nástroj pro správu software nainstalovaného v počítači. Jednotlivé programy a aplikace jsou umístěny do speciálních souborů (tzv. softwarových balíčků), které je možné pomocí správce balíčků jednoduchým způsobem nainstalovat i odinstalovat. Správce balíčků obvykle umožňuje jednotlivé balíčky automaticky stahovat ze softwarových repozitářů umístěných na Internetu.

Různí správci balíčků[editovat | editovat zdroj]

Správce balíčků bývá specifický pro daný operační systém nebo jeho konkrétní distribuci (např. různé distribuce Linuxu mají různé správce balíčků). Nejčastěji jsou balíčky používány v unixových operačních systémech. Například správce balíčků v distribuci Debian GNU/Linux se jmenuje APT, Gentoo Linux používá Portage. Mandriva Linux používá (URPMI), Fedory a RedHat Enterprise Linuxu (yum a nově dnf). SUSE Linux používá YaST. Varianty systému BSD používají Ports.

Dopad[editovat | editovat zdroj]

Ian Murdock poznamenal, že správa balíčků je „tím největším pokrokem, co Linux přinesl průmyslu“, že stírá hranice mezi operačním systémem a aplikací, a že „zjednodušuje protlačuje nové inovace [...] na trh a [...] vyvíjí operační systém“.[1]

Terminologie[editovat | editovat zdroj]

Systém pro správu balíků je často nazýván „Install Manager“. To může vést ke zmatku mezi systémem pro správu balíčků a Installer. Rozdíly jsou:

Balíčkovací systém (Install Manager)

Installer

Obvykle je součástí operačního systému. Každý produkt je dodáván s instalačním programem (instalátorem).
Používá jednu instalační databázi. Provádí vlastní instalaci, někdy zaznamenává informace o tomto zařízení v registru.
Může ověřovat a spravovat všechny balíčky v systému. Pracuje pouze s přibaleným produktem.
Jeden systém pro správu balíků. Více instalační dodavatelů.
Jeden formát balíčků. Více instalačních formátů.

Balíček pro správce balíků označuje konkrétní sadu souborů a je dodáván s příslušnými metadaty pro použití správce balíků. To může být matoucí, protože některé programovací jazyky často používají slovo „Balíček“ jako specifickou formu softwarové knihovny. Dále může být tato softwarová knihovna distribuována v balíčku souborů jako balíček pro správce balíků (package manager).

Funkce[editovat | editovat zdroj]

Ilustrace systému pro správu balíčků se používá ke stažení nového softwaru. Ruční akce mohou zahrnovat přijetí licenční smlouvy nebo výběrem některé balíček specifické možnosti konfigurace.

Systémy pro správu balíků mají za úkol organizovat všechny balíčky nainstalované v systému. Typickými funkcemi systému pro správu balíčků jsou:

  • Ověření kontrolního součtu souborů, aby byly zajištěny správné a úplné balíčky;
  • Ověření digitálních podpisů k ověření původu balíčků;
  • Použití souboru archivátorů na správu archivovaných souborů;
  • Aktualizace softwaru na nejnovější verze, typicky ze softwarového repozitáře;
  • Seskupení balíčků podle funkcí ke snížení matení uživatelů;
  • Správa závislostí, aby bylo zajištěno, že balíček je instalován včetně všech balíčků, které potřebuje. Toto vyřešilo problém známý jako dependency hell.

Některé další úkoly jsou splněny pouze několika systémy pro správy balíčků.

Problémy se sdílenými knihovnami[editovat | editovat zdroj]

Počítačové systémy, které jsou založeny na propojení dynamických knihoven, namísto propojení statických knihoven, sdílí knihovny strojových instrukcí přes balíčky a aplikace. V těchto systémech jsou složité vztahy mezi různými balíčky, které vyžadují různé verze knihoven, což má za následek problém hovorově známý jako dependency hell. Na Microsoft Windows systémy, to je také nazýván DLL Hell při práci s dynamicky propojenými knihovnami. Dobrá správa balíčků je velmi důležitá v těchto systémech.[2]

Front-end na místě sestavených balíčků[editovat | editovat zdroj]

Správce systému se mohou instalovat a udržovat software pomocí nástrojů jiných než software pro správu balíčků. Například místní správce může stáhnout nebalených zdrojový kód, zkompilovat a nainstalovat. To může způsobit stav místního systému vypadnout ze synchronizace se stavem správce balíčků je databáze. Místní správce bude muset přijmout dodatečná opatření, jako např. ruční řízení některých závislostí nebo začlenění změny do správce balíčků.

Tam jsou k dispozici nástroje, aby na místě sestavené balíčky jsou integrovány s správu balíků. Pro distribucí založených na. Deb a rpm. Soubory, stejně jako Slackware Linuxu, tam je checkinstall a pro systémy, jako jsou Gentoo Linux a hybridní systémy, jako jsou Arch Linux, je možné napsat nejprve předpis, který pak zajistí, že balení se hodí do lokální databáze balíčků.

Údržba konfigurace[editovat | editovat zdroj]

Zvláště problematické se softwarem aktualizace jsou aktualizace konfiguračních souborů. Vzhledem k tomu, systémy pro správu balíčků, alespoň v systémech UNIX vznikl jako rozšíření archivaci souborů utility, mohou obvykle jen buď přepsat nebo ponechat konfigurační soubory, spíše než o uplatňování pravidel k nim. Tam jsou výjimky z tohoto, že se obvykle vztahují ke konfiguraci jádra (které, pokud rozbité, zajistí, aby počítač nepoužitelný po restartu). Problémy mohou být způsobeny, pokud formát konfiguračních souborů změn. Například, v případě, že původní konfigurace není výslovně zakázat nové možnosti, které by měly být zakázány. Některé systémy pro správu balíčků, jako například Debian s dpkg, umožňují konfiguraci během instalace. V jiných případech je žádoucí, aby balíky instalovat s výchozím nastavením a přepsat tuto konfiguraci, například, v bezhlavý systému bez hlavy zařízení, která mají velký počet počítačů. (Tento druh přednastavené instalace je také podporována dpkg).

Repozitáře[editovat | editovat zdroj]

Související informace naleznete také v článku Repozitář.

Chcete-li dát uživatelům větší kontrolu nad druhy softwaru, které jsou nainstalovány na jejich systému (a někdy kvůli právních důvodům nebo pohodlí na straně distributorů), software je často stažený z řady repozitářů.[3]

Potlačení aktualizace[editovat | editovat zdroj]

Když uživatel pracuje se softwarem pro správu balíčků, který přinese upgrade, je zvykem prezentovat uživateli se seznamem věcí, které je třeba udělat (obvykle seznam balíčků, které mají být aktualizovány, a případně dávat staré a nové číslo verze) a umožňují uživateli buď přijmout aktualizaci jako celek, nebo vybrat upgrade jen vybraných balíčků. Mnoho systémů pro správu balíčků lze nakonfigurovat tak, aby určité balíčky neaktualizovaly nikdy nebo pouze tehdy, když je v balíčku uvedeno, že předchozí verze obsahuje kritické zranitelnosti a nestability. Tento proces se někdy nazývá fixace verze.

Například:

  • yum podporuje tento se syntaxí exclude = openoffice *,[4]
  • pacman s IgnorePkg = openoffice[5] (zabrání aktualizaci openoffice v obou případech)
  • Dpkg a dselect má částečnou podporu příznaku hold ve výběru balíčků
  • APT rozšiřuje' příznak Hold na komplexní mechanismus „připínání“[6]
    • Uživatelé mohou také blacklistnout balíček[7]
  • aptitude má příznaky „hold“ a „forbid“
  • Portage podporuje tuto konfiguračním souboru package.mask

Kaskádové odstranění balíčků[editovat | editovat zdroj]

Některé z pokročilejších funkcí správy balíčků nabízejí kaskádové odstranění balíčků,[5], při kterém jsou odstraněny i všechny balíčky, které jsou závislé na cílovém balíčku.

Běžné balíčkovací systémy a formáty[editovat | editovat zdroj]

Formáty balíčků[editovat | editovat zdroj]

Související informace naleznete také v článcích linux formáty a archiv souborů.

Každý správce balíčků je závislý na formátu a metadatech balíčků které správcuje. To znamená, že balíčkovací systém musí seskupovat soubory, které mají být začleněny pro konkrétní správce balíčků spolu s příslušnými metadaty, jako například závislosti. Často základní sada nástrojů spravuje základní instalace těchto balíčků a různých správců balíčků používají tyto nástroje k poskytnutí dalších funkcí.

Například yum se opírá o rpm jako backend. Yum rozšiřuje funkčnost backend přidáním funkce jako jednoduchou konfiguraci pro udržení sítě systémů. Jako další příklad, Synaptic Package Manager poskytuje grafické uživatelské rozhraní, pomocí Advanced Packaging Tool (apt) knihovna, která zase závisí na dpkg pro základní funkčnost.

Alien je program, který převádí mezi různými formáty. Podporuje konverzi mezi Linux Standard Base v souladu RPM, deb., Stampede (. SLP) a Slackware (tgz a . TXZ) balíčky.

Open source software systémy a software zadarmo[editovat | editovat zdroj]

Vzhledem k povaze free a open source software, balíky do podobné a slučitelné licencí jsou k dispozici pro použití na řadě operačních systémů. Tyto balíčky lze kombinovat a distribuovat pomocí konfigurovatelných a vnitřně komplexních obalových systémů, které zvládnou mnoho permutací softwaru a správu verzí specifické závislosti a konflikty. Některé systémy balení pro free a open source software jsou také samy uvolněny jako free a open source software. Jedním z typických rozdílů mezi správu balíčků v proprietárních operačních systémech, jako je Mac OS X a Windows, a systémů free a open source software, jako je Linux, který je zdarma, je že open source software systémy umožňují instalaci balíků třetích stran instalaci a aktualizaci pomocí stejného mechanismu, zatímco systémy pro správu balíků z Mac OS X a Windows bude pouze aktualizovat software dodaný společností Apple a Microsoft, respektive (s výjimkou některých ovladače třetích stran v systému Windows). Schopnost průběžně aktualizovat software třetí strany je obvykle přidán přidáním URL odpovídající úložiště pro správu balíčků v konfiguračním souboru.

Manažery balíčků na aplikační úrovni[editovat | editovat zdroj]

Kromě systémů na úrovni aplikačních správců, tam jsou některé add-on Manažery balíčků pro operační systémy s omezenými možnostmi a programovací jazyky, kde vývojáři potřebují nejnovější knihovny.

Na rozdíl od Manažery balíčků systémové na úrovně, se Manažery balíčků na úrovni aplikace zaměřují na malé části softwarového systému. Jsou typicky umístěny v adresářové struktuře, která se neudržuje správcem balíčků na úrovni systému (např. c:\cygwin nebo /usr/local/Fink). Nicméně, toto není případ pro správce balíčků, které se zabývají programovacími knihovnami. To vede ke konfliktu, když oba manažeři balíčků tvrdí, že „vlastní“ tentýž soubor, což může zabránit jeho aktualizaci.

Reference[editovat | editovat zdroj]

  1. How package management changed everything [online]. ianmurdock.com, [cit. 2008-03-01]. [1]. (anglicky) 
  2. Chris, Tucker (2007-03-15).  "Optimal Package Install/Uninstall Manager". UC San Diego. 
  3. Linux repository classification schemes [online]. braintickle.blogspot.com, [cit. 2008-03-01]. [2]. (anglicky) 
  4. CentOS yum pinning rpms [online]. centos.org, [cit. 2008-03-01]. [3]. (anglicky) 
  5. a b pacman(8) Manual Page [online]. archlinux.org, [cit. 2008-03-01]. [4]. (anglicky) 
  6. How to keep specific versions of packages installed (complex) [online]. debian.org, [cit. 2008-03-01]. [5]. (anglicky) 
  7. Apt pinning to blacklist a package [online]. [cit. 2010-08-19]. [6]. (anglicky)