Portage

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 APT v Debianu. 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

emerge 
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 
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 
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 (tar s bzip2 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í 
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

Externí odkazy 
 
  Úvod do Portage – Gentoo handbook

Balíčkovací systémy
Software v Pythonu