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.

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?
DigiZone.cz: Skylink zapojil nový transpondér

Skylink zapojil nový transpondér

120na80.cz: Cestovní nevolnost. Co pomůže?

Cestovní nevolnost. Co pomůže?

DigiZone.cz: ČT veze bronz z klání televizní grafiky

ČT veze bronz z klání televizní grafiky

120na80.cz: Fotografie z misí Lékařů bez hranic

Fotografie z misí Lékařů bez hranic

Podnikatel.cz: Eseróčko vs. živnost. Co vyhrává?

Eseróčko vs. živnost. Co vyhrává?

Podnikatel.cz: Babiš představil daňovou revoluci Moje daně

Babiš představil daňovou revoluci Moje daně

Vitalia.cz: 5 porcí ovoce a zeleniny: no ale jak na to?

5 porcí ovoce a zeleniny: no ale jak na to?

Lupa.cz: U Chomutova vyroste dotované datacentrum

U Chomutova vyroste dotované datacentrum

Lupa.cz: Text umírá, na webu zbude jen video

Text umírá, na webu zbude jen video

Podnikatel.cz: Zůstat na Heurece je čiré bláznovství

Zůstat na Heurece je čiré bláznovství

Měšec.cz: Inspirujte se: kam investují čeští dolaroví milionáři?

Inspirujte se: kam investují čeští dolaroví milionáři?

DigiZone.cz: Dabingové ceny znají letošní nominace

Dabingové ceny znají letošní nominace

Měšec.cz: Biip karta: recenze předplacené karty

Biip karta: recenze předplacené karty

DigiZone.cz: Satelitní Flix TV vyráží do boje

Satelitní Flix TV vyráží do boje

DigiZone.cz: Kanály Novy na Slovensku oficiálně?

Kanály Novy na Slovensku oficiálně?

DigiZone.cz: Loewe: už i bezztrátové streamování hudby

Loewe: už i bezztrátové streamování hudby

Vitalia.cz: Tohle kafe má být hit léta

Tohle kafe má být hit léta

DigiZone.cz: Náhrada za nevrácená zařízení?

Náhrada za nevrácená zařízení?

Lupa.cz: Zaměstnanec T-Mobilu ukradl data o zákaznících

Zaměstnanec T-Mobilu ukradl data o zákaznících

Vitalia.cz: Máte chutě? Nejezděte do světa, ale do Dobřichovic

Máte chutě? Nejezděte do světa, ale do Dobřichovic