Triky pro začátečníky (9)

Leoš Literák 21. 11. 2000

Ne Deli, ale Triky pro začátečníky jsou zpátky! A na četné žádosti se budou zabývat kompilací programů ze zdrojových kódů. Sice jen povrchně, ale myslím, že důležitější jsou principy, než rady typu "Při kompilaci Midnight Commanderu přidejte přepínač --with-slang jako parametr skriptu configure".

Začátkem článku bych chtěl vysvětlit dlouhou odmlku. Finišoval jsem jeden projekt, psal článek shrnující události kolem Linuxu za posledních dvanáct měsíců pro časopis Network Computing (skrytá reklama [tm]) a hlavně hledal jsem nové zaměstnání. Takže jsem další Moravák, co skončil v Praze. Ach jo.

Leč vrhněme se do víru zdrojových textů. Určitě se vám stalo, že jste na Internetu našli zajímavý program, ale bez binárních souborů. Ono to zase není nic moc neobvyklého, vývojáři totiž nemají čas připravovat zkompilované balíčky pro nejrůznější platformy, operační systémy a v případě Linuxu i distribuce či verze distribucí. Většinou programátor vytvoří jeden binární balíček pro operační systém, který používá a pokud se tento OS neshoduje s tím vaším, musíte si stáhnout zdrojové texty a zkompilovat si je sami. Nebojte, není to žádná hrůza.

Asi bych zmínit ještě jeden důvod, proč někteří lidé preferují zdrojové kódy před binárkami. Tím důvodem je bezpečnost. U spustitelných souborů si nemůžete být jisti, zda neobsahují nějaký backdoor či trojského koně. Nemusí to být přímo zlomyslnost autora programu. Klidně se může stát, že mu někdo crackne mašinu a vymění binárku za vlastní, upravenou verzi. Vzpomínám si matně, že před pár léty se něco podobného stalo nějakému většímu ftp serveru, který pak šířil škodlivý kód. Pokud si na tuto kauzu někdo vzpomíná, byl bych mu vděčen za podrobnosti v diskusním fóru.

Pokud máte k programu zdrojové kódy, máte bezpečnost ve vlastních rukou (přesněji iluzi bezpečnosti). Nic vám totiž nebrání sednout si k počítači a přečíst si celý zdroják a hledat neobvyklé konstrukce. Na takový audit můžete u komerčního proprietárního softwaru rovnou zapomenout.

Takže jste se rozhodli (byli jste okolnostmi přinuceni) stáhnout si zdrojové kódy. OK. Než začnete mučit svou linku, promyslete si, jakou verzi budete používat. Řada programů totiž existuje ve dvou řadách – jedné relativně stabilní a funkční a druhé vývojové, která má sice spoustu nových úžasných vlastností, ale je nestabilní, padá a pokud se jedná o systémové utility, může zničit i obsah disku. Každopádně si přečtěte všechny dostupné informace a pokud nechcete být betatester, nestahujte vývojové verze. A hlavně nezapomeňte, že málokterý programátor je placen za vývoj svého Open Source projektu, takže pokud něco nefunguje, nevyčítejte mu to. Naopak, pokud se vám program líbí, pochvalte jej.

Dalším krokem je stáhnutí veškerého potřebného softwaru. To opět znamená pečlivé pročtení dokumentace a případné stáhnutí a instalovaní dalších programů či knihoven. Určitě tento krok nepřeskočte, ušetříte si spoustu problémů. Hotovo? Dobře, nyní si tedy zdrojáky stáhněte na svůj počítač a rozbalte je. V adresáři se zdrojáky si přečtěte soubory README a INSTALL, případně obsah adresáře doc. Řiďte se instrukcemi. Obecně mají následující tvar: ./configure, make a nakonec make install. Někdy je třeba přidat parametry skriptu configure. Takto se dají například ovlivnit lokace některých knihoven nebo předvolené adresáře. Nemám teď po ruce zdrojáky Apache, ale určitě se takto dá určit, zda je jeho kořenovým adresářem /home/httpd nebo třeba /usr/local/httpd. Parametry najdete buď v dokumentaci anebo na začátku skriptu configure. Také jej můžete spustit s parametrem –help. Obvykle se ale o to nemusíte starat a spustíte jej bez parametrů.

Configure je vůbec zajímavý skript. Projde si váš počítač a zjistí jeho nastavení a ověří si, zda máte nainstalovány všechny knihovny. Nebudu vás nudit technickými detaily, protože je stejně neznám :-). Po fázi testu přijde na řadu generování Makefilu, který pak přesně odpovídá vašim potřebám.

widgety

Pokud zdroják neobsahuje skript configure, je dobré prohlédnout si Makefile a případně jej opravit. Jedná se hlavně o některé parametry. Například CFLAGS (obvykle vypnout generováni informací pro debugger a zapnout optimalizaci). Předposledním krokem je spuštění příkazu make. Pokud se program zkompiloval správně, příkazem make install je nainstalujete.

To je zhruba všechno. Další tipy určitě najdete v diskusním fóru. Ale opět na vás apeluji, RTFM (čtěte tu zatracenou dokumentaci)! Pokud si chcete zkompilovat vlastní jádro, postup je make menuconfig, make clean, make dep, make bzImage, make modules a make modules_install. No, to je vlastně zajímavý námět na další díl, takže někdy příště se těšte na kompilaci jádra.

Našli jste v článku chybu?
Vitalia.cz: Antibakteriální mýdla nepomáhají, spíš škodí

Antibakteriální mýdla nepomáhají, spíš škodí

Vitalia.cz: Test dětských svačinek: Tyhle ne!

Test dětských svačinek: Tyhle ne!

Podnikatel.cz: Chystá se smršť legislativních novinek

Chystá se smršť legislativních novinek

Root.cz: Hořící telefon Samsung Note 7 zapálil auto

Hořící telefon Samsung Note 7 zapálil auto

Vitalia.cz: Nová vakcína proti chřipce se aplikuje nosem

Nová vakcína proti chřipce se aplikuje nosem

Lupa.cz: Patička e-mailu závazná jako vlastnoruční podpis?

Patička e-mailu závazná jako vlastnoruční podpis?

Lupa.cz: Cimrman má hry na YouTube i vlastní doodle

Cimrman má hry na YouTube i vlastní doodle

120na80.cz: Galerie: Čínští policisté testují českou minerálku

Galerie: Čínští policisté testují českou minerálku

Vitalia.cz: 5 chyb, které děláme při skladování potravin

5 chyb, které děláme při skladování potravin

Vitalia.cz: Tradiční čínská medicína a rakovina

Tradiční čínská medicína a rakovina

120na80.cz: Nejsilnější alergeny jsou pryč

Nejsilnější alergeny jsou pryč

Podnikatel.cz: Udělali jsme velkou chybu, napsal Čupr

Udělali jsme velkou chybu, napsal Čupr

DigiZone.cz: Budoucnost TV vysílání ve Visegrádu

Budoucnost TV vysílání ve Visegrádu

Vitalia.cz: Vodárny varují: Ve vodě z kohoutku jsou bakterie

Vodárny varují: Ve vodě z kohoutku jsou bakterie

Vitalia.cz: Tohle jsou nejlepší česká piva podle odborníků

Tohle jsou nejlepší česká piva podle odborníků

Lupa.cz: Co všechno je Facebook schopný cenzurovat?

Co všechno je Facebook schopný cenzurovat?

120na80.cz: Co je padesátkrát sladší než cukr?

Co je padesátkrát sladší než cukr?

Vitalia.cz: dTest odhalil ten nejlepší kečup

dTest odhalil ten nejlepší kečup

Vitalia.cz: Muž, který miluje příliš. Ženám neimponuje

Muž, který miluje příliš. Ženám neimponuje

Vitalia.cz: Jak Ondra o astma přišel

Jak Ondra o astma přišel