LINUXSOFT.cz
Nazwa użytkownika: Hasło:     
    CZ UK PL

> Zkušenosti z instalace Tao Linuxu na AMD Opteron

Další z testovacích distribucí na našem dual-opteron serveru (více zde) byl Tao Linux.

3.11.2004 08:00 | Petr Houštěk | czytane 18656×

RELATED ARTICLES KOMENTARZE   

Další volbou v našem testu distribucí na dual-opteron server byl Redhat Enterprise Linux. Protože je ale jeho cena vcelku vysoká (obsahuje i podporu), rozhodli jsme se pro jednu z volných distribucí odvozených z RHEL. Vybírali jsme mezi Tao Linuxem, Whitebox Linuxem a CentOS. Nakonec jsme zvolili Tao.

Tao Linux

Tao Linux je volně dostupná neoficiální verze RedHat Enterprise Linuxu. Je vytvořena rekompilací volně dostupných zdrojových balíčků RHEL a následného nahrazení obsahu, který spadá pod copyrightovou ochranu (jde převážně o loga RedHatu). Dále obsahuje navíc správce balíků yum (obdoba debianí aplikace apt, náhrada za up2date) a vlastní verze instalátoru.

Příprava

Naším cílem bylo jednak nainstalovat funkční minimální systém na již popsaný diskový layout (více např. zde). S tím bude trochu problém, protože Tao Linux (potažmo RHEL) v sobě nemá zakomponovanou podporu ani pro xfs, ani pro lvm2. Dalším cílem je vytvořit funkční build-environment pro následný vlastní rebuild RHEL, případně dalších balíků (backporty z Fedory, porty z jiných distribucí atd.)

Instalace

Tao Linux je k dispozici pro architektury i386, amd64, ia64 a s390. Můžete ho stáhnout jako jedno DVD nebo jako set 3 binárních CD a 3 CD se zdrojovými balíky. Nejprve jsme stáhli instalační DVD z mirroru Tao Linuxu.

Tao bootscreen

Před instalací jsme v BIOSu vypnuli podporu pro SCSI disky, kde se stále nacházel funkční Mandrakelinux 10.0 Official. Pak jsme spustili instalaci z DVD. Můžete vybrat mezi grafickým a textovým režimem instalace. Po zkušenostech z instalace Mandrakelinuxu jsme měli připravenou myš, takže jsme zvolili grafický režim.

Tao instalátor

Jelikož jsme chtěli pokud možno co největší build-environment a zároveň co nejmenší vlastní systém, rozhodli jsme se provést instalaci nadvakrát. Nejprve jsme nainstalovali kompletní systém na zvláštní oddíl na IDE disku, následně jsme na jiný oddíl na IDE disku nainstalovali minimální instalaci. Vzhledem k faktu, že Tao Linux nemá podporu pro xfs ani lvm2, nainstalovali jsme obě instalace na normální ext2 oddíly s tím, že je po přidání podpory pro xfs a lvm2 přesuneme na konečné destinace.

Bootování

V Tao Linuxu je standardním bootovacím nástrojem GRUB. Po nainstalování GRUBu na začátek oddílu s Tao Linuxem a následným bootem ale došlo k chybě - GRUB se zasekl a nenašli jsme způsob, jak se s touto chybou vypořádat. Rozhodli jsme se tedy, že bootování bude obstarávat lilo. Abychom systém vůbec nabootovali, zapnuli jsme v BIOSu opět podporu SCSI disků a nabootovali do Mandrakelinuxu. Přidali jsme pak do lila záznam o kernelu Tao Linuxu a rebootovali. Lilo nezaznamenalo žádné problémy a úspěšně jsme nabootovali Tao Linux. Takovéto řešení ale není dvakrát flexibilní - kvůli změně kernelu nejprve nabootovat do Mandrakelinuxu, pak teprve do cílového systému, nemluvě o potřebě mít nainstalován další systém. Rozhodli jsme se tedy lilo portovat pro Tao Linux. Naneštěstí lilo není obsaženo ani v RHEL, ani ve Fedora Core 2. Pro funkční lilo ale potřebujete jenom funkční binárku a konfigurační soubor /etc/lilo.conf. Rozhodli jsme se tedy dodat staticky zkompilovanou binárku určenou pro i386, kterou jsme zkompilovali na jiném i386 serveru. Ta fungovala bez problémů, nainstalovali jsme tedy lilo na začátek oddílu s Tao Linuxem. Lilo není portováno a nelze přímočaře zkompilovat nativně pro amd64 a v amd64 verzi Tao Linuxu (resp. RHEL) zase nejsou x86 knihovny (tzv. pure64 environment), proto byla nutná statická binárka.

Pomocí utility ntsysv jsme povypínali veškeré (pro nás) zbytečné služby, jako autodetekci hardware, cups, atd...

Lokální build-environment

Na speciální oddíl jsme nainstalovali maximální instalaci Tao Linuxu, která má sloužit jako lokální build-environment. Zatím ale existuje jako samostatná spustitelná instalace. Připojili jsme tedy tento oddíl do minimálního systému do /misc/chroot/tao a smazali všechny zbytečné věci. Ponechali jsme jenom tyto adresáře: /bin, /dev, /etc, /home, /lib, /proc, /root, /sbin, /tmp, /usr a /var. Přístup do adresáře /misc/chroot je povolen pouze uživateli build. Ten existuje jak v normálním systému, tak v chrootu, kde je určen ke kompilaci zdrojových balíčků. Pro vstup do chrootu pak root použije

bash# env -i TERM=$TERM /usr/sbin/chroot /misc/chroot/tao /bin/su -

Případně

bash# env -i TERM=$TERM /usr/sbin/chroot /misc/chroot/tao /bin/su - build

Updaty a zdroje balíčků

Standardně se v RHEL řeší otázka updatování software přes up2date. Tato služba ale je součástí podpory, takže ve free verzi RHEL, kterou Tao Linux je, není k dispozici. Toho si ale jsou jeho tvůrci vědomi a oproti RHEL přidali nástroj yum, celým názvem Yellow Dog Updater, Modified. Jedná se o podobný frontend pro rpm, jako urpmi známé z Mandrakelinuxu, nebo apt používané v Debianu, ovšem pro deb balíčky. Provádí indexaci balíčků a ukládá jejich metadata (např. informace o závislostech) do zvláštních souborů. Klienti pak tyto soubory stahují a na jejich základě dochází k rozhodnutí, jestli je třeba stáhnout novou verzi balíčku, jaké další balíčky se musí kvůli závislostem doinstalovat atd... Yum dokáže získávat tyto metadata (stejně jako samotné balíčky) přes protokoly http, ftp a z lokálního filesystému. Výchozí konfiguraci jsme upravili jenom minimálně - místo předvoleného serveru jsme zvolili co nejbližší mirror (http://wftp.tu-chemnitz.de/pub/linux/tao/). Pak jsme již bez problémů updatovali systém voláním

bash# yum check-update
bash# yum update

Build balíčků

Vzhledem k faktu, že RHEL (a potažmo Tao linux) je enterprise distribuce, je výběr software zúžený (např. Midnight Commander zde nenajdete). Naštěstí je architektura distribuce do velké míry kompatibilní s Fedora Core 2 (RHEL totiž vychází z volně dostupných distribucí, konkrétně RHEL3 je založen na RedHatu 9), takže množství chybějících balíků lze portovat z FC2. Při kompilaci zdrojových balíčků ale v různých případech (i při rekompilaci původních balíčků - tedy z Tao Linuxu nebo z RHEL) docházelo k chybám. Jejich přesný zdroj nám zůstal neznámý, ale po přepnutí locales z utf8 na iso-8859-2 se balíčky kompilovaly bez potíží. Je vidět, že podpora pouze utf8 ještě není zcela hotová a odladěná. Dalším nešvarem při kompilaci bylo, že zkompilované binárky nebyly stripované. Odpovědný skript se musel ručně editovat a upravit.

Kompilace kernelu

Rekompilace kernelu byla pro zvolený diskový layout nutná. Dále jsme se chtěli zbavit nepotřebných ovladačů a initrd, zakompilovat MD driver a device mapper (obsluhuje lvm2) staticky - hlavně pro bezchybnou autodetekci RAIDových polí kernelem při bootu. Kernel se zkompiloval v pořádku a nenastaly žádné komplikace.

Přidání podpory pro xfs a lvm2

Jednou z nevýhod RHEL je, že nepodporuje xfs. K jeho podpoře je třeba mít zakomponovaný ovladač v jádře a dále user-space utility pro vytváření a správu xfs (xfsprogs), případně pro zálohování (xfsdump). Xfsprogs se naštěstí dají sehnat velmi jednoduše - z Fedora Core 2. Po stažení a kompilaci v build-environmentu se balíček bez problémů nainstaloval. Horší to ale bylo s xfsdump. Zdrojový balíček určený přímo pro AMD64 jsme nikde nenašli (vyjma několika neoficiálních buildů, které ale požadovaly množství závislostí, které v RHEL nejsou). Nakonec jsme tedy sáhli k oficiálnímu release od SGI. Při pokusu o jeho kompilaci ale došlo k chybám typu x86_64 not supported a podobně. Po zevrubném zkoumání jsme přišli na to, že balíček počítal s tím, že bude kompilován na i386, a byly zde již nacachované hodnoty specifické právě pro i386. Po úpravě zdrojáků a odstranění těchto hodnot již proběhla kompilace v pořádku.

Nyní jsme mohli smazat Mandrakelinux, který byl na SCSI discích, nahradit ho Tao Linuxem, build-environment také přesunout na oddíl (na IDE disku) s xfs a /var s /home na mirrorované lvm oddíly (podrobnosti zde). Boot přes lilo z RAID-1, autodetekce RAID svazků a lvm2 kernelem i všechny ostatní aspekty bootu proběhly správně.

Software v distribuci

Testovali jsme hlavně následující software:

  • ssh server openssh 3.6.1p2-18
  • apache http server httpd 2.0.46-32
  • php php 4.3.2-14
  • sql server postgresql 7.3-3

Apache jsme testovali na několika virtuálních serverech se statickými i dynamicky generovanými stránkami pomocí převážně php, dále mod_perl i cgi skriptů. Pak jsme ho nasadili i do ostrého provozu - chvíli na něm běžel mirror distrowatch.com. Během provozu se nevyskytovaly žádné problémy.

Následně jsme testovali postgresql. Nejdříve jsme prověřili základní funkčnost, pak jsme postgresql použili při generování dynamických stránek pomocí aplikace pro rezervace ubytování využívanou komerčním portálem www.motylek.com.

Z ostatního důležitého software zde můžu jmenovat např.:

  • kernel 2.4.21-15
  • glibc 2.3.2-95
  • gcc 3.2.3-42
  • mysql 3.23.58-2

Software mimo distribuci

Jak jsem již zmínil, Redhat Enterprise Linux (a tedy i Tao Linux) není co do množství softwaru zrovna nejrozsáhlejší distribuce. Často se tedy stává, že je potřeba dodat software, který se v ní nevyskytuje. Zde plní svou funkci Fedora Core 2, ze které RHEL také částečně vychází. Většina zdrojových balíčků z FC2 se na Tao Linuxu bez problémů zkompilují. Navíc ve FC fungují dobře bezpečnostní updaty, takže pokud včas zkompilujete nové verze (např. po oznámení v security konferenci), je i bezpečnost vyřešena.

Další zdroje software jsou podobné jako u ostatních distribucí. Existují různé neoficiální zdroje (zde se ale často stává, že balíček není připraven pro kompilaci na AMD64 a nastávají podobné problémy, jako s xfsdumpem), člověk může zkusit zkompilovat balíčky z jiných distribucí a pokud ani zde neuspěje, může zkompilovat a použít software přímo z mainstreamu. Některý software jinak v dnešní době stále neseženete.

K tomuto software patří např. Java. Po zkušenostech s Mandrakelinuxem jsme se rozhodli pro 32-bitovou, ale na druhou stranu testovanou a funkční verzi Javy. Konkrétně jsme použili kompilát od SUNu, J2SE verze 1.4.2.

Kompilace OpenOffice.org

Vedoucímu projektu lokalizace OpenOffice.org se rozbil jeho server pro kompilování OO.o na platformu AMD64. Po oboustranné dohodě jsme se rozhodli mu poskytnout náš server (viz zde) pro vývoj na této platformě. Po doinstalování potřebných devel balíků (kompilace probíhala v normálním systému, ne v build-environmentu) bylo vše připraveno a několik týdnů Tao Linux zuřivě kompiloval moduly OO.o do nativních amd64 binárek.

Závěr

S distribucí jsme byli po funkční stránce spokojeni. Jedná se o poměrně konzervativní distribuci. Mezi plusy rozhodně patří velmi svědomitý vývoj a intenzivní testování, které je pro enterprise distribuce klíčové. Dále je tato distribuce velmi dlouho podporována - 7 let, tedy od data uvolnění v říjnu 2003 až do října 2010. Přestože u nás zatím není RHEL moc rozšířený, protože uživatelé non-enterprise RedHatu často přecházejí na Fedoru a na rozdíl od USA zde mají poměrně silné pozice ostatní distributoři (hlavně Mandrake a SUSE), plní roli průmyslového standardu, je tedy podporovaná ostatními výrobci linuxového software, jako např. Oracle.


KOMENTARZE

Nie ma komentarzy dla tej pozycji.

Tylko zarejestrowani użytkownicy mogą dopisywać komentarze.
> Szukanie oprogramowania
1. Pacman linux
Download: 4850x
2. FreeBSD
Download: 9044x
3. PCLinuxOS-2010
Download: 8541x
4. alcolix
Download: 10915x
5. Onebase Linux
Download: 9631x
6. Novell Linux Desktop
Download: 0x
7. KateOS
Download: 6219x

1. xinetd
Download: 2382x
2. RDGS
Download: 937x
3. spkg
Download: 4692x
4. LinPacker
Download: 9918x
5. VFU File Manager
Download: 3173x
6. LeftHand Mała Księgowość
Download: 7171x
7. MISU pyFotoResize
Download: 2775x
8. Lefthand CRM
Download: 3540x
9. MetadataExtractor
Download: 0x
10. RCP100
Download: 3087x
11. Predaj softveru
Download: 0x
12. MSH Free Autoresponder
Download: 0x
©Pavel Kysilka - 2003-2024 | mailatlinuxsoft.cz | Design: www.megadesign.cz