Portage

Z Wikipedie, otevřené encyklopedie
Portage
Aktuální verze3.0.14 (19. ledna 2021)
Operační systémGentoo Linux
Vyvíjeno vPython
Typ softwaruBalíčkovací systém
LicenceGNU General Public License
Webwiki.gentoo.org/Portage
Některá data mohou pocházet z datové položky.

Portage (anglická výslovnost [ˈpoːtidž], francouzská [portaːž]) je balíčkovací systém GNU/Linuxové distribuce Gentoo Linux, který je podobný systému portů z FreeBSD. Portage je napsán v programovacím jazyce Python. Hlavním příkazem je zde příkaz emerge. Tento balíčkovací systém využívá balíčky ebuild, které zajistí zkompilovaní podle nastavených systémových proměnných jako jsou například USE, CFLAGS, CHOST a LINGUAS. Portage automaticky dohledá závislosti, stáhne požadované balíčky a program nainstaluje.

Portage je hlavním nástrojem charakterizující Gentoo. Ačkoli se systém jmenuje Portage, skládá se ze dvou hlavních částí, ze systému tzv. ebuildů a emerge. Tyto dva pojmy by se daly přirovnat ke vztahu RPM a yum v distribucích vycházejících z původního Red Hat Linuxu, nebo dpkg a APTDebianu. Ebuildy definují, jak se bude daný balíček kompilovat, zatímco emerge se postará o samotnou kompilaci, ohlídá závislosti atd. Existují různé grafické nadstavby, např. Kuroo (prostředí KDE) nebo Porthole (GNOME).

Rysy[editovat | editovat zdroj]

emerge[editovat | editovat zdroj]

Nástroj emerge je nejdůležitějším nástrojem pro přístup k Portage z příkazové řádky. Emerge počítá a spravuje závislosti, spouští ebuildy a udržuje lokální strom Portage a databázi instalovaných balíčků. Nastavení kompilace jednotlivých ebuildů je ovlivnitelné pomocí proměnné prostředí CFLAGS, založené na individuální konfiguraci konkrétního počítače a na rozhodnutí uživatele. Emerge spouští ebuildy v prostředí Sandboxu, tímto je systém chráněn před programy spouštěnými přímo ebuildy a výsledek kompilace je do systému začleněn až po úspěšném sestavení. Pomocí emerge lze instalovat i binární balíčky.

USE flags[editovat | editovat zdroj]

USE flags ([juːs flægs]) jsou klíčová slova nastavující podporu pro konkrétní oblast. Když definujete nějakou USE proměnnou, dáváte tím Portage vědět, že chcete aby instalované programy obsahovaly nějaké funkce (například schopnost se připojit k databázi MySQL). To samozřejmě ovlivní závislosti balíčků. USE flagy můžeme definovat jak globálně pro celý systém, tak i pro konkrétní balíček.

Ebuildy[editovat | editovat zdroj]

Gentoo používá odlišný způsob správy balíčků než nejrozšířenější RPM, jeho systém využívá formátu ebuild (výslovnost [iˈbild]). Zatímco RPM šíří zkompilované binární soubory. Ebuild jsou textové soubory obsahující instrukce, jak získat, nakonfigurovat, zkompilovat a instalovat daný software; vše ze zdrojového kódu a s optimalizaci na daný počítač. Může však sloužit i ke stažení a instalaci binárních balíků.

Gentoo používá binární komprimační formát .tbz2 (tarbzip2 kompresí) s přidanými metadaty. Tato vlastnost umožňuje sestavení binárního balíčku na jednom systému s následnou rychlou instalací na jiném, identickém systému (typicky na sestavě serverů).

Maskování[editovat | editovat zdroj]

Pomocí maskování Portage určuje, které balíčky jsou vhodné pro daný systém. Uživatel si ve svém systému nastaví klíčová slova, charakterizující jeho architekturu a ochotu používat málo testovaný software. Ebuildy obsahují definice klíčových slov, pro které je možné je instalovat; ebuild vytvořený pro jinou architekturu nebo ještě nedostatečně testovaný je potom maskovaný, aby jej do stabilního systému nešlo nainstalovat bez přímého zásahu uživatele.

Experimentální balíčky využívají ještě další úroveň maskování, označovanou jako „Hard Masked“. Instalace „Hard Masked“ ebuildu je riskantní a nedoporučuje se, protože jsou známy problémy s jejich použitím; balíčky maskované klíčovým slovem typicky jen nejsou dostatečně vyzkoušeny (nebo byly testovány na jiné platformě), ale je možné, že budou správně fungovat.

Reference[editovat | editovat zdroj]

V tomto článku byl použit překlad textu z článku Portage (software) na anglické Wikipedii.

Externí odkazy[editovat | editovat zdroj]