Správa linuxového serveru: Kompilace softwaru prakticky



Podobné dokumenty
Téma 5: Práce s CentOS II. Správa RPM balíčků

Správa linuxového serveru: Webová rozhraní k poště (Squirrelmail a Roundcube)

Instalace webové služby Mydlinka

Správa linuxového serveru: Zprovoznění Ruby aplikací s RVM, Thin a Nginx

Uvedené dílo (s výjimkou obrázků) podléhá licenci Creative Commons Uved te autora 3.0 Česko.

Instalace a první spuštění Programu Job Abacus Pro

Instalace pluginů pro formuláře na eportálu ČSSZ

CS OTE. Dokumentace pro externí uživatele

ČSOB Business Connector

Instalace Debianu pomocí debootstrap

Aktivace a aktualizace klíčů

Konfigurace pracovní stanice pro ISOP-Centrum verze

CUZAK. Instalační příručka. Verze

Instalace systému Docházka 3000 na operační systém ReactOS Zdarma dostupné kompatibilní alternativě k systému Windows

Instalace a první spuštění programu.

ČSOB Business Connector instalační příručka

Téma 4: Práce s CentOS. Instalace softwarových balíčků pomocí yum

Software602 FormApps Server

CS OTE. Dokumentace pro externí uživatele

1 Návod na instalaci prostředí LeJOS-NXJ a přehrání firmwaru NXT kostky

ČSOB Business Connector Instalační příručka

Národní šetření výsledků žáků v počátečním vzdělávání

CS OTE. Dokumentace pro externí uživatele

Správa linuxového serveru: DNS a DHCP server dnsmasq

DISTRIBUCE GNU/LINUXU

Instalační příručka Command WorkStation 5.6 se sadou Fiery Extended Applications 4.2

Aktivace a aktualizace klíčů

Srovnání Linuxu a BSD z pohledu jádra. Jan Dyrczyk

Předpoklady správného fungování formulářů

CPAN, tvorba a šíření softwaru v jazyce Perl. Petr Pajas Hejnice 2010

PSK3-11. Instalace software a nastavení sítě. Instalace software

Envis LIMS Klient distribučního portálu

Redakční systém Joomla. Prokop Zelený

Instalujeme a zakládáme databázi Oracle Database 11g

SPY PHONE - Odposlech SMS. Návod k obsluze ( doplněk k originálnímu návodu )

Střední odborná škola a Střední odborné učiliště, Hořovice

Motorola Phone Tools. Začínáme

Instalace a konfigurace web serveru. WA1 Martin Klíma

Vzdálená správa v cloudu až pro 250 počítačů

Bc. Hynek Chmela - 1. přednáška o systému Debian Linux

Obecné informace o cvičeních

Správa softwaru v GNU/Linuxu. Michal Dočekal

Instalace souborů VHOPE a souborů knihovny VHOPE

v. 2425a Jak si na PC vypěstovat HTTP (WWW, Web) server a jak ho používat (snadno a rychle) by: Ing. Jan Steringa

INSTALACE SW V GNU/LINUXU

Instalace produktu Ontopia. ver (open-source verze)

Software Capture Pro. Začínáme. A-61640_cs

Filr 3.4 Příručka k aplikaci Desktop pro Linux. Červen 2018

Doporučení pro použití AVG na starších/pomalejších počítačích

AIDA64 Extreme. Příručka k nastavení. v

Používání u a Internetu

Jak stahovat ICC profily z Antalis ICC Profile Centre

TMU. USB teploměr. teploměr s rozhraním USB. měření teplot od -55 C do +125 C. 26. května 2006 w w w. p a p o u c h. c o m

Aktualizace softwaru Uživatelská příručka

Import kořenového certifikátu CA ZŠ O. Březiny

Instalace programu ProGEO

Návod k instalaci. Nintex Workflow Návod k instalaci

Fides Software Storage Administrator

Jak programovat Tinykeyer?

MHD v mobilu. Instalace a spuštění. Co to umí

Semestrální projekt do předmětu SPS

Stručná instalační příručka SUSE Linux Enterprise Server 11

Registrace do portálu MS2014+

PSK3-20. Malý poštovní server I. Instalace

Správa verzí souborů na cvičení

NIBE Uplink Uživatelská příručka

Správa linuxového serveru: Webový server Cherokee

Střední odborná škola a Střední odborné učiliště, Hořovice

Registr práv a povinností

EPLAN Electric P8 2.7 s databázemi na SQL serveru

Nasazení nových modulů McAfee Seminář CIV (nejen) pro lokální správce

Návod pro aktualizaci map a navigačního softwaru pro přístroje ZENEC E>GO (ZE-NC2010, ZE-NC2040, ZE-NC3810, ZE-NC5010) pomocí Toolbox a Synctool

I.CA SecureStore. Instalační příručka. Verze 2.32 a vyšší

LINUX - INSTALACE & KONFIGURACE

ODBORNÝ VÝCVIK VE 3. TISÍCILETÍ

Střední odborná škola a Střední odborné učiliště, Hořovice

SME Terminál + SmeDesktopClient. Instalace. AutoCont CZ a.s.

Připojení ke vzdálené aplikaci Target 2100

Nastavení elektronického výpisu v Internet Bance

CUZAK. Instalační příručka. Verze

Základní škola a mateřská škola Lázně Kynžvart Autor: David Holubec NÁZEV: VY_32_INOVACE_11_INF Vzdělávací oblast: informatika

SOFTWARE 5P. Instalace. SOFTWARE 5P pro advokátní praxi Oldřich Florian

Návod na provedení upgrade IS Harmonik

Instalační manuál. HelpDesk

Kompletní návod na nákup a čtení eknih ve formátech PDF a epub na PC a MAC

S2. Vytvoření Windows balíku pro vývoj na STM32 architektuře

Svazky LVM vs. Standardní rozdělení disků

INSTALACE SOFTWARE PROID+ NA MS WINDOWS

Zálohování v MS Windows 10

Výplatní pásky. Obsah. 1. Přihlášení do aplikace. Uživatelská dokumentace (poslední aktualizace )

Instalace aplikace 602XML Filler

Správa linuxového serveru: Antivirus a antispam

Messenger. Novell 1.0 UMÍSTĚNÍ DOKUMENTACE K PROGRAMU NOVELL MESSENGER. STRUČ NÁ ÚVODNÍ PŘ ÍRUČ KA

MobileIron Demo. DATUM VYTVOŘENÍ: 8. srpna AUTOR: Daniel Vodrážka

Autodesk AutoCAD LT 2019

Knot DNS workshop. CZ.NIC Labs Daniel Salzman / daniel.salzman@nic.cz Jan Kadlec / jan.kadlec@nic.cz

Aplikace a služba Money Dnes Publisher v deseti krocích

Návod na zprovoznění studentské verze. aplikací firmy Autodesk

Transkript:

Home» Články» Praxe» Správa linuxového serveru» Správa linuxového serveru: Kompilace softwaru... Předchozí kapitola Zpět na obsah Následující kapitola Správa linuxového serveru: Kompilace softwaru prakticky Ačkoliv je ideální používat správce balíčků a repozitáře, které obsahují drtivou většinu toho, co budete potřebovat, někdy není jiná možnost a je třeba sáhnout ke kompilaci nějakého softwaru ze zdrojových kódů. Poslední dva díly se věnovaly kompilaci převážně z teoretického hlediska, tento díl vše ukáže na praktickém příkladě. Pondělí, 5. září 2011 Autor Michal Dočekal známka 1,00 Úvod Pokud jste si nepřečetli poslední dva díly (první díl, druhý díl), doporučuji tak učinit, neboť v nich zazněly velmi podstatné informace, počínaje popisem správy softwaru v linuxových distribucích, přes různé alternativy ke kompilaci či důvody, proč je vhodné se jí snažit vyhnout, až po samotný postup a technické pozadí kompilace, které bylo představeno v minulém díle. Stabilní, vývojová a SCM verze Ještě před samotnou kompilací zmíním jednu věc, kterou jsem dostatečně neosvětlil v minulých dvou dílech, a sice, jaké verze softwaru jsou obvykle k dispozici a jaký je mezi nimi rozdíl. Většina FOSS projektů má něco jako stabilní vývojovou větev. Stabilní větev by měla obsahovat dostatečně otestovaný, časem ověřený kód s minimem chyb. Na server je to určitě dobrá volba. Často je ovšem k dispozici i testovací či vývojová verze. Ta obsahuje obvykle novější vlastnosti, které zatím ještě do stabilní verze nepronikly, neboť nebyly dostatečně otestovány. Vývojové verze obsahují zpravidla řádově více chyb než jejich stabilní protějšky, přičemž některé vlastnosti ve vývojových verzích nemusí být ještě zcela funkční (nebyly zcela implementovány), popřípadě se mohou časem i zásadně měnit na to je třeba si dávat obzvlášť pozor, zejména při aktualizacích. Vývojovým verzím je vhodné se vyhnout, pokud to jde. V souvislosti s vývojovými verzemi je vhodné zmínit i často používané názvosloví určující aktuální stádium vývoje: pre alpha, alpha, beta a release candidate. Verze označená jako pre alpha je obvykle software v raném stádiu vývoje, mnohé vlastnosti ještě nejsou vůbec implementované, mnohé se mění, často i zásadně. Taková verze by na serveru neměla co dělat, jelikož může obsahovat kritické chyby vedoucí ke ztrátě dat. Stádium alpha je na tom jen o málo lépe než pre alpha. Mnohé vlastnosti by již měly být implementovány, i když stále je pravděpodobný výskyt kritických chyb. Ledacos také nemusí fungovat správně nebo se může časem výrazně změnit. I toto stádium bych na server důrazně nedoporučil. Stádium beta by mělo označovat dokončení všech připravovaných vlastností (ty by se již neměly měnit) a počátek testování ze strany uživatelů. Chyby jsou, přirozeně, v tomto stádiu stále očekávané. Následuje release candidate, tedy kandidát pro vydání. To už je více méně hotový produkt, ale stále se čeká na nalezení závažných chyb. Pokud nejsou nalezeny závažnější chyby během určité doby, obvykle dojde k vydání. 1/5

Poslední verze softwaru, se kterou můžete přijít do styku, je snapshot ze SCM nástroje (Subversion, Git, Mercurial, apod.). Je to de facto snímek zdrojového kódu platný k určitému datu nejčastěji se bere ten nejnovější. Jelikož pokročilé nástroje pro správu verzí softwaru (SCM) umí držet současně více větví, záleží určitě, kterou větev (branch) jste si zvolili jako zdroj (záleží ovšem také na tom, jaká pravidla vývoje jsou v rámci daného projektu v platnosti). Stabilní větev by měla mít přibližně charakter stabilního vydání, vývojová větev bude v některém z výše uvedených stavů, a její nasazení na server lze proto důrazně nedoporučit. Často se ovšem s takovou verzí setkáte, jelikož v ní bude patrně opravená nějaká nepříjemná chyba (oproti poslední vývojové verzi stažitelné z webu projektu, pokud taková je). Výše uvedená pravidla samozřejmě podléhají tomu, jak na vývoj nahlíží vývojáři projektu, který chcete nasadit. Stabilní verze jednoho projektu může stabilitou klidně odpovídat vývojové verzi jiného. Záleží na typu projektu a na vývojářích. Obecně je vhodné se nestabilním verzím vyhnout, pokud nemáte opravdu dobrý důvod je nasadit. Kompilace zvoleného softwaru Software, který bude sloužit jako pokusný králík pro kompilaci, je webový server Apache, kterému se tento seriál věnoval v několika dílech. Je to pouze příklad, na kterém bude demonstrována kompilace. V žádném případě se nejedná o doporučený způsob kompilace Apache. Kromě toho, Apache určitě naleznete v repozitářích vámi používané distribuce. Budete li chtít kompilovat právě Apache, určitě se primárně řiďte oficiální dokumentací, na kterou článek pro úplnost odkazuje. Nahlédnutí do dokumentace Před tím, než budete software kompilovat, doporučuji podívat se do dokumentace, ať už dokumentace na webu projektu nebo dokumentace přibalené v příslušném zdrojovém balíčku. Obvykle zde naleznete návody či případné důležité informace týkající se kompilace ze zdrojových kódů. Uvnitř balíčku hledejte soubory README a INSTALL. V případě webového serveru Apache je dokumentace dostupná online. Získání a příprava zdrojového kódu Vyberte si vhodnou verzi (dle rad výše) a stáhněte si příslušný balíček, obvykle je to tar.gz, i když tar.bz2 bývá menší, tedy úspornější na přenášená data. Na serveru můžete pro samotné stažení použít nástroj wget, což se určitě hodí, máte li na stanici, ze které se vzdáleně připojujete k serveru, pomalý upload (typické pro ADSL a mobilní připojení). Můžete si také pomoci textovým prohlížečem přímo na serveru: lynx http://httpd.apache.org/download.cgi Jelikož je při instalaci na server vhodné dbát zvýšené opatrnosti, je třeba si po získání balíčku ověřit kontrolní součty či digitální podpisy. Opatřete si příslušné PGP klíče a ověřte podpis náležející příslušnému souboru. Zde je samozřejmě otázka, jak si opatřit PGP klíče vývojářů z opravdu důvěryhodného zdroje. Pokud se vám nechce hledat nejbližšího vývojáře, spojit se s ním, domluvit osobní setkání, ověřit jeho občanku a zaznamenat si otisk (fingerprint) jeho klíče, můžete zkusit méně bezpečnou metodu popsanou na stránkách projektu, a sice stáhnout soubor s PGP klíči vývojářů (doporučuji alespoň přes HTTPS a přímo ze serveru apache.org), importovat tyto klíče a ověřit podpis, takto: gpg import KEYS gpg verify httpd 2.2.20.tar.bz2.asc Po ověření balíček se zdrojovým kódem rozbalte: 2/5

tar xvf httpd 2.2.20.tar.bz2 Závislosti Závislosti, ať již kompilační či běhové (vysvětlení v minulém díle) si budete muset zajistit sami (ideálně instalací příslušných balíčků, v horším případě je budete muset zkompilovat jako první). V rámci Debianu je třeba dodat, že hlavičkové soubory potřebné pro kompilaci jsou v extra balíčcích. Pokud tedy máte jako závislost nějakou komponentu, obvykle nestačí instalovat pouze balíček s binárkou komponenty (např. libknihovna), ale musíte ještě přidat balíček s příslušnými hlavičkovými soubory pro kompilaci, tedy např. libknihovna dev. Nejideálnějším postupem je zjistit závislosti z dokumentace, nejméně účinným způsobem je pak spouštět skript./configure opakovaně a orientovat se dle chybových hlášek. V Debianu však existuje ještě jeden elegantní způsob, jak závislosti řešit. Máte li vámi kompilovaný software v repozitářích (byť v jiné verzi), můžete si ušetřit práci pomocí správce balíčků Debian totiž umožňuje kompilaci z tzv. zdrojových balíčků, a v souvislosti s tím umožňuje jednoduchým příkazem nainstalovat všechny závislosti potřebné pro kompilaci daného balíčku, takto: apt get build dep apache2 Chcete li pouze rekompilovat balíček dostupný z repozitářů (nechcete jinou verzi), popřípadě chcete li si sestavit vlastní balíček a hledáte vhodný vzor, můžete použít apt src, postup je naznačen v odkazech pod článkem. configure Následuje svatá trojice, tedy./configure, makea make install. Fáze konfigurace je ta nejnáročnější na činnost správce, jelikož se obvykle nespokojíte s pouhým spuštěním skriptu./configure, ale budete hledat ty správné volby, které daný program zkompilují s těmi správnými vlastnostmi. Mnohé vlastnosti lze totiž zahrnout nebo naopak vyřadit vhodnými parametry. Méně vlastností znamená obvykle větší bezpečnost, naopak někdy můžete mít zájem zkompilovat daný software s parametrem, který vámi zvolená distribuce při sestavování binárního balíčku ignorovala. Zde opět odkážu na dokumentaci vámi zvoleného projektu. Dokumentace Apache je nejen v tomto ohledu vskutku vynikající, viz podrobný článek o konfiguračních volbách. Kupříkladu, pokud nechcete v Apachi používat CGI, použijete volbu disable cgi:./configure disable cgi Nejzásadnější volbou pro./configureje patrně prefix, která určuje, kam se daný software nainstaluje ve fázi make install. Specifikací konkrétního adresáře můžete klidně udržovat více verzí daného softwaru najednou:./configure prefix=/opt/apache 2.2.20 Pokud nespecifikujete prefix, použije se výchozí volba, která závisí na tom, co zvolil příslušný vývojář. Nejčastěji je cílem /usr/local. Já však, jak naznačuje příklad výše, preferuji /opt. To ale není důležité. Důležité je, abyste měli o souborech, které se vytvoří při instalaci, přehled, a mohli pak software snadno odinstalovat nebo spolehlivě nahradit novou verzí. Unixový software si obvykle v adresáři specifikovaném jako prefixvytvoří vlastní strukturu s adresáři bin, lib, atd., a tam umístí příslušné soubory. V mém příkladu výše byste pak ke zkompilovanému Apachi přistupovali přes /opt/apache 2.2.20/bin/apache2ctl. 3/5

make Tento příkaz provede samotnou kompilaci. Máte li vícejádrový či víceprocesorový server (nebo obojí), doporučuji přidat volbu j s parametrem v podobě čísla odpovídajícímu počtu procesorů zvýšeného o jedničku. Máte li dvouprocesorový server se čtyřmi jádry, tj. s osmi logickými procesory, zvolili byste devítku (8 jader + 1): make j9 V době vícejádrových a vícevláknových procesorů by byla škoda kompilovat na jednom jádře, tedy velmi, velmi pomalu v porovnání s možnostmi stroje. Na serveru, který obsluhuje klienty, je však vhodné ještě upravit prioritu kompilace. V unixových systémech se priorita nastavuje jako niceness (ohleduplnost), tzn. vyšší číslo znamená nižší prioritu (větší ohleduplnost k okolí). V Linuxu má priorita meze od 20 (nejvyšší priorita) do 19 (nejnižší priorita). Pokud na kompilaci nespěcháte, devatenáctka je asi nejvhodnější: nice n 19 make j9 Máte li naopak pomalý počítač, který kompiluje příliš dlouho, a na dostatečně rychlé LAN máte k dispozici silný stroj, obraťte svou pozornost k nástroji distcc, kterým můžete propojit více počítačů a vytvořit si malý kompilační cluster. Instalace Pokud kompilace proběhne bez chyb, zbývá software nainstalovat. Dosud bylo možné všechny kroky (s výjimkou používání správce balíčků) vykonávat bez práv superuživatele. K instalaci je ovšem jeho oprávnění potřeba. Výjimkou může být situace, kdy jste použili prefixk tomu, abyste software mohli nainstalovat do adresáře, který patří aktuálnímu uživateli. V takovém případě bez obav instalujte. Pokud software nainstalujete přímo, pomocí make install, správce balíčků o těchto souborech nebude nic vědět a nebude je moci odstranit nebo vám říci, kde jsou. Můžete si samozřejmě vytvořit balíček, který nainstalujete pomocí dpkg, ale to obvykle představuje hodně práce. Existuje však i jiná možnost nástroj checkinstall, který se používá místo make install. Tento nástroj vám balíček na počkání balíček vytvoří: checkinstall Checkinstall je interaktivní program, stačí zodpovědět několik otázek, případně upravit nastavení balíčku. Poté vytvoří Checkinstall balíček obsahující váš program. Tento balíček můžete nainstalovat pomocí nástroje dpkg: dpkg i apache custom_2.2.20 1_i386.deb Checkinstall ovšem nevyplňuje závislostní vazby balíčku. Je to tedy jen polovičaté řešení správce balíčků sice bude o vašem softwaru vědět a bude ho moci odstranit, ale nebude moci v souvislosti s ním řešit závislostní vazby. Ty si budete muset ohlídat sami. Zdroje a další odkazy Předchozí kapitola Zpět na obsah Následující kapitola Odkazy Pokud si chcete přečíst více o této problematice, navštivte tyto odkazy: 4/5

Wikipédie, Software release life cycle Web projektu Checkinstall Compiling and installing Apache Apt src Přidat téma diskuse Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích najdete v nápovědě. Diskuzi můžete sledovat pomocí RSS kanálu 5/5