Hlavní navigace

Vyberte si instalaci

Zdeněk Štěpánek 24. 3. 2004

V následujícím článku si přiblížíme různé způsoby instalace programů v Linuxu. Text je určen začátečníkům, neklade si v žádném případě úmysl být vyčerpávajícím pojednáním a všech možnostech instalace. Jsou v něm nepřesnosti (někdy i záměrně), které ho činí srozumitelnějším pro běžné uživatele.

Do Linuxu lze nové programy nainstalovat v podstatě dvěma způsoby. Z binárních balíčků a ze zabaleného souboru se zdrojovými kódy. Nelze to ale hned brát jako dogma, existují i balíčky se zdrojovými kódy a stejně tak binární soubory se nemusejí vždy vyskytovat ve formě balíčku.

Binární balíčky

Každá distribuce používá určitý balíčkovací systém. Z nejznámějších je to systém RPM, který používá RedHat, Fedora, Mandrake, SUSE a řada dalších distribucí. V těsném závěsu je systém APT, který používá balíčky s příponou DEB, tyto pojmy bývají často zaměňovány. APT systém používá Debian, pro který byl vyvinut, a pak další distribuce, které jsou na Debianu založeny, např. Knoppix a jeho deriváty. Stranou by neměl zůstat ani balíčkovací systém distribuce Slackware, který pro jeho jednoduchost a přímočarost někteří ani nenazývají balíčkovacím systémem. Ti, kdo Slackware používají, se mnou jistě budou souhlasit, že to pravda není.

Jakýkoliv binární balíček může být buď tzv. distribuční, to znamená, že se nachází na CD (DVD) se samotnou distribucí, nebo patří do druhé skupiny, kterou tvoří balíčky třetích stran (autorů programů). Autor vždy vydává zabalené zdrojové kódy, ale pro pohodlí uživatelů může vytvářet binární balíčky pro různé distribuce. Pěkným příkladem může být stránka ICQ klienta SIM. Binární balíček je určen vždy pro konkrétní verzi konkrétní distribuce. Je možné, že RPM balíček bude fungovat ve dvou rozdílných distribucích, které jsou přibližně stejně staré (Fedora, Mandrake), ale nikdo vám nezaručí, že to půjde nebo že bude program korektně fungovat. S největší pravděpodobností balíček nepůjde nainstalovat kvůli nevyřešeným závislostem, ačkoliv požadované programy už ve vašem systému máte, jen se jejich balíčky jmenují trochu jinak.

Výhody binárních balíčků

  • automatické hlídání závislostí
  • pro uživatele jednoduchá instalace i odinstalace
  • existují grafické nadstavby nad balíčkovací systémy (tady je potřeba vyzdvihnout Mandrake Linux)
  • v případě distribučních balíčků téměř jistota, že se nainstalují a budou fungovat

Nevýhody binárních balíčků

  • zejména zkušeným uživatelům občas automatické závislosti vadí
  • programy jsou kompilovány většinou pro i386, což u některých typů programů znamená značný pokles výkonu
  • stává se, že se pokazí RPM databáze a systém zapomene, jaké má balíčky

Zde je vhodné místo pro povídání o zdrojových balíčcích. Toto označení, ačkoliv se používá, je dosti nepřesné. Znamená to „balíček, který obsahuje zdrojové kódy“. Výhody zdrojového kódu jsou popsány níže. Zdrojový balíček poznáte podle toho, že má většinou v názvu „src“, takže např. FaxMail-2.3–9mdk.src.rpm. Takový balíček můžete normálně nainstalovat, v systému vám ale nepřibude nový program, pouze jeho zdrojové kódy, se kterými si můžete dělat, co chcete (např. zkompilovat :-).

Zdrojové balíčky mají oproti běžným zdrojovým kódům podstatnou výhodu, jsou zoptimalizovány a vybaveny patchi pro konkrétní verzi konkrétní distribuce (jako ostatně všechny distribuční balíčky), což vám zaručuje, že balíček půjde bez větších problémů přímo zkompilovat a nainstalovat, ale hlavně převést do podoby binárního balíčku. K tomu slouží u rpm spec soubory, v Debianu adresáře debian, které jsou ve zdrojových balíčcích obsaženy. Hodí se to např. v případě, kdy binární balíčky pro vaši exotickou platoformu nejsou vůbec k dispozici, nebo pokud na jednom či více počítačích potřebujete speciálně upravenou verzi nějakého programu. Sáhnete tedy pro zdrojovém balíčku, provedete potřebné změny, zkompilujete do podoby binárního balíčku (rpmbuild, dpkg-buildpackage), a ten pak instalujete na stanice. Tento postup je doporučován více než kompilovat z klasických zdrojových kódů.

Jinou možností je systém portů, který v různých variantách využívají SourceMage Linux, Gentoo a BSD systémy. Porty zachovávají kontrolu závislostí, lze na ně aplikovat grafické utility pro jednoduchou obsluhu (ale vzhledem k cílové skupině uvedených distribucí tomu tak pravděpodobně nebude), stejně tak má uživatel docela jistotu, že se balíček zkompiluje bez problémů. Ta je sice o něco menší než v případě instalace binárních balíčků, ale stále je výrazně větší než v případě komilace přímo ze zdrojových kódů. Jak už jsem nastíníl, systém portů jsou vlastně zdrojové balíčky (většinou pouze ve formě textového souboru, který popisuje co a jak a vlastní zdrojové kódy stahuje z internetu přímo od výrobce programu), které se ale při instalaci kompilují, takže po požadavku na nějaký program si systém stáhne zdrojové kódy, sám je přeloží a nainstaluje. Asi tušíte, že systém portů je dobrá věc. Určitě ano, kombinuje jednoduchost binárních balíčků s výhodou kompilace ze zdrojových kódů. To je ale vyváženo dobou instalace takového systému. Pokud se rozhodnete nainstalovat si Gentoo, počítejte s několika dny kompilace.

Zdrojové soubory

Kompilace a instalace ze zdrojových souborů se volí v případě, že požadovaný program není na distribučním CD ve formě balíčku, nebo je ve staré verzí, nebo když autor programu nedodává binární balíček pro vaši oblíbenou distribuci, nebo když chcete využít zvýšení výkonu při kompilaci přímo na konkrétní počítač (typicky MPlayer), nebo když potřebujete nějaká speciální nastavení, nebo prostě když chcete. Pak tedy nezbývá než na stránkách programu najít soubor program-1.2.3.tar.gz, případně .tgz nebo .bz2, podle toho, jakým programem byly zdrojové soubory zabaleny. Formát zdrojových souborů naštěstí nebývá jen tak nahodilý. Existují konvence GNU a naprostá většina programů je dodržuje. Spočívají v použití programů autoconf, automake a spol. Ve většině případů tedy stačí zdrojové soubory rozbalit a spustit „svatou trojici“, neboli:

./configure
make
make install

Skript ./configure nakonfiguruje zdrojové soubory, zjistí si ze systému celou řadu informací, ověří přítomnost systémových knihoven apod.make zdrojové soubory zkompiluje. make install provede jejich instalaci – „zkopírování“ do adresářové struktury Linuxu (/usr/local/bin/, /usr/share/pro­gram/, …). Jak už jsem napsal výše, každá distribuce požívá nějaký balíčkovací systém, má tedy přehled o programech, které jsou v systému, a může je bezezbytků odinstalovat. To při použití make install není možné, protože ten prostě soubory někam nakopíruje a končí. Existuje ještě make uninstall, ale ten se moc nepoužívá. Proto vznikl program checkinstall, který zajistí to, že zkompilované soubory se nekopírují do adresářové struktury, ale vytvoří se z nich binární balíček, jehož nainstalování je plně v moci balíčkovacího systému, stejně jako jeho odinstalování. Checkinstall zvládá systémy RPM, APT, Slackware a dost možná i jiné. Článek o checkinstallu bude následovat.

Více o kompilaci zdrojových souborů naleznete v článku 1272 na ROOTovi.

Na závěr ještě zbývá popsat nestandardní způsoby instalace. Častým případem je zabalený soubor program.tgz, který stačí kamkoliv rozbalit (konvence doporučují /usr/local/) a spustit uvnitř obsažený program. Takto se distribuuje například WWW prohlížeč FireFox, poštovní klient Mozilla Thunderbird či některé hry. V těchto zabalených souborech nenajdete zdrojové kódy. Ty si můžete nebo nemůžete (podle přání autora) stáhnout zvlášť. Pak tu jsou programy s vlastním instalátorem, příkladem budiž OpenOffice.org. No a nakonec balíčky se zdrojovými soubory, které nepoužívaji autoconf a spol., tudíž neobsahují skript configure (nebo ho obsahují, ale principem činnosti se zcela liší od výše popsaného případu). V takových případech nezbývá nic jiného než si pořádně přečíst dokumentaci a modlit se, abyste ji pochopili. Příkladem za všechny budiž FreePascal. Nutno dodat, že podobné programy jsou často černými ovcemi v linuxové rodině. Sami jistě cítíte, že není vše v pořádku, že takové programy jsou k Linuxu jaksi připláclé z boku a nejsou dostatečně zakomponovány v systému.

Našli jste v článku chybu?

1. 9. 2007 16:43

dub (neregistrovaný)
Jo,jako když v autoškole řeknou,dáte jedničku a jedete,jen Vám neřeknou,kde je šajtrpáka...

5. 4. 2004 14:22

petrph (neregistrovaný)

Snad ještě není pozdě a někdo mi odpoví. Chtěl jsem se zeptat na jednu věc,..která se tady přešla jako maličkost, knihovny..knihovny.. Casto se stává že při ./configure a make jsou vyžadovány hlavičkové (.h) soubory "systémových" i "nesystémových" knihoven.Ale ty jsou,předpokl.jen v develop verzích knihoven, čili pro kompilaci nových programů je potřeba instalovat develop verze syst.knihoven??Jdou pak odinstalovat a přehrát normálními?

120na80.cz: Stoná vaše dítě často? Upravte mu jídelníček

Stoná vaše dítě často? Upravte mu jídelníček

Podnikatel.cz: Babiše přesvědčila 89letá podnikatelka?!

Babiše přesvědčila 89letá podnikatelka?!

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

DigiZone.cz: Rádio Šlágr má licenci pro digi vysílání

Rádio Šlágr má licenci pro digi vysílání

DigiZone.cz: ČRa DVB-T2 ověřeno: Hisense a Sencor

ČRa DVB-T2 ověřeno: Hisense a Sencor

DigiZone.cz: Sony KD-55XD8005 s Android 6.0

Sony KD-55XD8005 s Android 6.0

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

Podnikatel.cz: Zavře krám u #EET Malá pokladna a Teeta?

Zavře krám u #EET Malá pokladna a Teeta?

Vitalia.cz: Znáte „černý detox“? Ani to nezkoušejte

Znáte „černý detox“? Ani to nezkoušejte

Měšec.cz: Air Bank zruší TOP3 garanci a zdražuje kurzy

Air Bank zruší TOP3 garanci a zdražuje kurzy

DigiZone.cz: ČT má dalšího zástupce v EBU

ČT má dalšího zástupce v EBU

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

Měšec.cz: Jak levně odeslat balík přímo z domu?

Jak levně odeslat balík přímo z domu?

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?

Vitalia.cz: Jmenuje se Janina a žije bez cukru

Jmenuje se Janina a žije bez cukru

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

120na80.cz: Horní cesty dýchací. Zkuste fytofarmaka

Horní cesty dýchací. Zkuste fytofarmaka