Kompilace, kompilátor, sestavení, překladač… a další podobné termíny se týkají procesu, kdy vývojáři distribucí či samotní uživatelé, chtějí připravit balíček s aplikací. Co to celé je a znamená?
Aplikace jsou jejich vývojáři napsány v nějakém programovacím jazyce a v linuxovém světě jsou v této formě dány k dispozici i s návodem k dalšímu postupu. Takový návod obsahuje informace jak aplikaci sestavit (přeložit) = převést ji do binární podoby = do stavu, kdy jde spustit.
K tomu je potřeba nějaký překladač, (anglicky compiler, proto se setkáváte s termíny jako kompilátor, zkopmilovat apod.) Ten na základě nějakých pravidel sestaví požadovanou aplikaci v dané distribuci. Ano, tato fáze se již odehrává v rámci každé jedné distribuce. Překladačů je několik, např. GCC, Clang atd.
Čili princip je takovýto
Zdrojový kód (source code) → překladač (compiler) → sestavení (přeložení, compilation) → aplikace v binární podobě.
Závislosti (dependencies) – tento termín již znáte na úrovni instalace balíčků. Programátor použije nějaké funkce, které „umí“ nějaké knihovny a tak musí být použity při sestavování aplikace. Čili na této úrovni to znamená, že vývojáři napíší seznam knihoven či dalších ingrediencí, které jsou potřeba k sestavení aplikace a k jejímu spuštění. A co je důležité – v jaké verzi mají ony knihovny, překladač… být. Což znamená, že vývojáři distribucí musí v první řadě sestavit knihovny a další ingredience v požadovaných verzích, aby mohli sestavit samotnou aplikaci.
Princip tedy je
Splnit závislosti = mít v systému (repozitáři) potřebné ingredience v požadované verzi.
Nová funkce knihovny → sestavit knihovnu v nové verzi do repozitáře → sestavit aplikaci s novou funkcí
Pozn.: tyto informace píši pouze pro pochopení principů, nikoliv proto, že byste kdy potřebovali aplikace sami sestavovat. To je prací vývojových týmů distribucí.
O receptu na sestavení balíčků jsem se již zmínil. Každý balíčkovací systém používá svůj, ale princip je stejný. V přesně dané podobě autor balíčku vypíše název a verzi balíčku, závislosti, způsob sestavení a doprovodné informace, které pak vidíme ve správci balíčků jako informace o aplikaci, verzi apod. Poté spustí proces sestavení balíčku.
Samozřejmě tomu předchází instalace potřebných nástrojů, nastavení balíčkovacího systému atd. Pro představu to takto obecně ale stačí.