Balíčkovací systém

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání
Synaptic Package Manager, GTK+ grafický front-end pro APT

Balíčkovací systém je systém pro správu nainstalovaného software, kdy se programy distribuují a spravují tzv. balíčky. Pomocí balíčků lze obvykle program nainstalovat i posléze odinstalovat, balíčkovací systém také obvykle umožňuje balíček přímo automaticky stáhnout z internetu.

Balíčkovací systém bývá specifický pro daný operační systém nebo jeho konkrétní distribuci. Nejčastěji se balíčky používají u unixových operačních systémů. Například balíčkovací systém Debian GNU/Linuxu se nazývá APT, Gentoo Linux používá Portage. Populární formát balíčků je RPM, nad ním jsou postaveny balíčkovací systémy Mandriva Linuxu (URPMI), Fedory a RedHat Enterprise Linuxu (yum) nebo SUSE Linuxu (YaST). Varianty systému BSD zase tradičně používají Ports.

Dopad[editovat | editovat zdroj]

Ian Murdock poznamenal, že pro správu balíčků je "jediný největší pokrok co Linux přinesl průmyslu", že stírá hranice mezi operačním systémem a aplikací, a že to dělá "jednodušší, protlačovat nové inovace [...] do trhu a [...] vyvíjet 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:

Obvykle je součástí operačního systému. Každý výrobek je dodáván s vlastním instalátorem.
Používá jeden instalační databázi. Provádí vlastní instalaci, někdy zaznamenávání informací 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ů 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 s často používají slovo "Balíček" jako specifickou formu softwarová knihovna. Dále to může být distribuována tato softwarová knihovna 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ů se s úkolem organizování všech balíčků nainstalovaných v systému. Typické funkce systému pro správu balíčků jsou:

  • Ověření kontrolní součty souborů, aby zajistily 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 s nejnovějšími verzemi, 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ů.

Výzvy 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ílení knihovny spustitelné strojových instrukcí přes balíčků a aplikací. V těchto systémech, složité vztahy mezi různými balíčky, které vyžadují různé verze knihoven 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 ve velkém, nebo vybrat jednotlivé balíčky pro upgrade. Mnoho systémů pro správu balíčků může být nakonfigurován tak, aby nikdy neaktualizovat určité balíčky, nebo upgradovat pouze tehdy, když kritické zranitelnosti a nestability jsou uvedeny v předchozí verzi, jak jsou definovány v balíčku tohoto softwaru. Tento proces je někdy nazýván fixace verze.

Například:

  • yum podporuje tento se syntaxí exclude = openoffice *,[4]
  • pacman s IgnorePkg = openoffice[5] (to suppress upgrading openoffice in both cases)
  • Dpkg a dselect podporujeme částečně přes hold flag v balení výběry
  • APT rozšiřuje' Hold Flag přes komplexní mechanismus "připínání"[6]
    • Uživatelé mohou také blacklistnout balíček[7]
  • aptitude má "hold" a "forbid" flag
  • 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] ve které jsou všechny balíky, které jsou závislé na cílovém balíčku a všechny balíčky, které na cílovém balíčku závisí, také odstraněny.

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 kde oba manažeři balíčků tvrdí, že "vlastní" soubor a to může poškodit jeho upgrade.

Reference[editovat | editovat zdroj]

  1. How package management changed everything [online]. ianmurdock.com, [cit. 2008-03-01]. Dostupné online. (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]. Dostupné online. (anglicky) 
  4. CentOS yum pinning rpms [online]. centos.org, [cit. 2008-03-01]. Dostupné online. (anglicky) 
  5. a b pacman(8) Manual Page [online]. archlinux.org, [cit. 2008-03-01]. Dostupné online. (anglicky) 
  6. How to keep specific versions of packages installed (complex) [online]. debian.org, [cit. 2008-03-01]. Dostupné online. (anglicky) 
  7. Apt pinning to blacklist a package [online]. [cit. 2010-08-19]. Dostupné online. (anglicky)