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

> SourceMage Linux - 2

Druhý a poslední díl věnovaný seznámení s distribucí SourceMage. Dnes se podíváme na konfiguraci distribuce a její balíčkovací systém.

23.11.2009 00:00 | Radim Kolář | czytane 10242×

RELATED ARTICLES KOMENTARZE   

SourceMage GNU/Linux - 2

V přechozím dílu jsme společně nainstalovali Source Mage GNU/Linux, distribuci založenou na kompilaci ze zdrojových textů. Pokud jste neudělali nikde chybu a dílo se zdařilo měl by vás uvítat Source Mage login prompt. Přihlásíme se jako root a můžeme se pustit do díla.

K práci se Source Mage budeme potřebovat funkční internet připojení. Jeho funkčnost se obvykle kontroluje příkazem ping, který ovšem není součástí základního systému. Proto použijeme pro kontrolu spojení textový www prohlížeč lynx. Jako ve většině distribucí, tak i v SourceMage najdeme man stránku, která nás přivítá a nasměruje co máme dělat v nově nainstalovaném systému. V SourceMage se tato stránka jmenuje smgl-setup.

Prvním krokem po instalaci nového systému by měl být update balíčkovacího systému. Balíčkovací systém SourceMage se nazývá sorcery. Při první aktualizaci balíčkovacího systému jsou občas prováděny i kompilace programů které jsou uvedeny jako volitelné závislosti pro základní systém ale nejsou nainstalovány. Proto stáhneme nejprve aktuální seznam balíčků (v sourcemage se balíčkům říka kouzla - spelly) pomocí scribe update. Na dotaz zda opravit grimore metadata odpovězte y a odentrujte umístění stable větve grimore. Po stažení ignorujte stížnost na nemožnost překontrolování gpg signatury a seznam dostupných balíčků se zaktualizuje.

Nyní si již můžeme zaktualizovat vlastní balíčkovací systém příkazem sorcery update. Tento příkaz nakonfiguruje balíček basesystem a pak stáhne shell scripty tvořící vlastní balíčkovací systém.

Sorcery se nás bude postupně ptát jaké volitelné závislosti nebo alternativy si přejeme. V praxi to vypadá zhruba takto: balíček basesystem má závislost na nějakých INITSCRIPTS. Které initscripty chcete? init.d (nainstalováno), initng-ifiles, smgl-upstart? Balíky, které požadujeme, budou staženy, přeloženy a nainstalovány.

Na výše uvedeném příkladu můžete hezky vidět flexibilitu source based distribucí. Můžete si vybrat nejen komponenty, ale i kompilační volby většiny balíků. Kontrola nad systémem se vrátila z rukou tvůrců distribuce do rukou administrátora. Konečně jsem měl pocit, že jsem to já kdo ovládá systém a nikoliv balíčkovací program. Administrace se stala zase zábavou a ne nudnou pracovní povinností ve stylu apt-get upgrade. Podobný pocit jsem naposledy zažil před mnoha lety kdy jsem si skládal svůj vlastní linux. Jako základ jsem použil slackware a pak jsem už do něj ručně kompiloval jednotlivé programy.

Po aktualizaci sorcery a konfiguraci základního systému můžeme náš systém trochu pročistit. Záleží na tom, co jste si při původní instalaci zvolili za balíčky. Je docela možné, že máte nainstalováno jak lilo tak grub, editory elvis, jed i nano a podobně. Seznam instalovaných balíčků získáme příkazem gaze installed. Balíček odinstalujeme příkazem dispel <jméno balíčku>. Pokud si nejsme jisti příslušný balíček vlastně dělá, tak se dozvíme pomocí gaze what <jméno balíčku>.

Poslední věcí, kterou musíme dořešit abychom měli funkční systém je konfigurace poskytovatelů služeb remote-fs a crypt-fs, které potřebujeme k tomu aby se nám spustily při bootu služby které na nich závisí. Toto se provede pomocí cast -r init.d (pokud jsme si vybrali init.d INITSCRIPTS) kde odpovíte že si přejete nainstalované scripty použít jako default poskytovatele výše zmíněných služeb (pozor, default odpověď, která vám bude nabízena bude n).

Protože dojde ke změně konfiguračních souborů tak se hned seznámíme s programem confmeld. Změny v konfiguračních souborech totiž nejsou automaticky prováděny, ale jsou vždy předloženy administrátorovi ke schválení. Po spuštění programu confmeld jsou nám interaktivně nabídnuty navrhované změny k posouzení. Nejčastěji budete pravděpodobně používat volbu 0 - akceptovat změnu, připadně 1 - akceptovat změnu, ale zazálohovat původní soubor. Velmi užitečná volba číslo 4 zobrazí diff mezi konfiguračnímy soubory. Po dokončení confmeld proveďte reboot.

Jednou z často zmiňovaných výhod source based distribucí je možnost ovlivnit nastavení kompilátoru. Nastavuje se architektura a zda si přejeme pomalejší a menší nebo rychlejší a větší kód. Na dnešních rychlých počítačích sice už tento rozdíl není, pokud zrovna nespouštíme benchmark, tak znatelný ale nastavení architektury neodmyslitelně patří k folklóru source based distrer.

Seznam podporovaných CPU architektur stáhneme příkazem cast smgl-archspecs. Pak spustíme sorcery kde v menu Options -> Optimize Architecture vybereme architekturu a kompilační volby (speedy + strip je dobrá výchozí volba). Konzervativní uživatelé ale tvrdí, že novější procesorové architektury jako třeba Core 2 nejsou v GCC tak dobře odladěné a vyzkoušené a proto tato optimalizace může způsobit nefunkční kód. Konzervativním uživatelům proto doporučuji zvolit i686/Pentium Pro.

Po nastavení architektury potřebujeme překompilovat binutils, gcc a g++ pro novou architekturu. Zde je potřeba trochu opatrnosti abychom si nerozbořili c++ kompilátor. Správný postup je: cast -c binutils gcc na otázku zda si přejeme c++ support pro gmp odpovědět ne. Systém by měl zdetekovat novou verzi gcc a nabídnout přeložení gcc, g++, gmp, mpfr. Pokud nabídne jen přeložení binutils gcc tak musíme nejprve ručně přeložit gmp bez c++ podpory nebo dočasně smazat c++ překladač (dispel c++) a pak přeložit binutils gcc gmp mpfr g++. Po úspěšném přeložení můžeme podporu pro C++ do gmp vrátit: cast -r gmp. Poslední krok je překompilovat glibc: cast -c libidn gettext glibc.

Tímto jsme úspěšně přenastavili architekturu. Nyní můžeme buďto překompilovat vše: sorcery rebuild nebo vybrané balíčky pomocí cast -c. Dobří kandidáti na individuální překlad jsou: zlib, gzip, openssh, bzip2, openssl

Balíčkovací systém

Krátké seznámení s balíčkovacím systémem aneb jak funguje balíčkovací systém Sorcery.

Abych se naučil balíčkovací systém distribuce SourceMage tak jsem se rozhodl aktualizovat jeden svůj program, který jsem našel v SourceMage nabalíčkovaný - fsp. Obsažená verze byla 2.8.1b24, aktuální je 2.8.1b26. Tyto dvě verze se od sebe liší v použitém build systému. Starý používal autoconf, nový scons.

K aktualizaci nebo vytváření balíčků se používá utilita quill. Vyzkoušel jsem ji, ale nedosáhl jsem s jejím použitím optimálních výsledků, zejména kvůli chybějící dokumentaci a zkušenostem. Proto jsem se rozhodl pro ruční práci. Musím říci, že balíčkovací systém SourceMage je velmi jednoduchý a práce je s ním velmi snadná. Je to asi nejjednoduší balíčkovací systém co jsem kdy viděl a velmi snadno se používá.

Scripty pro kompilaci fsp se nachází v adresáři /var/lib/sorcery/codex/stable/ftp/fsp. Nejdůležitější je soubor DETAILS. Začneme tím, že v něm změníme VERSION. Jelikož mně quill hlásil, že nemůže překontrolovat SOURCE_URL, tak jsem mu mírně poopravil download URL tak aby mu kontrola prošla. Balíčkovací systém podporuje kontrolu integrity zdrojových textů pomocí GPG signatur, pokud tedy výrobce software GPG signaturu poskytuje. FSP signaturu má a tak ji použijeme. Jméno souboru se signaturou zadáme do SOURCE2 a URL odkud se má stáhnout zadáme do SOURCE2_URL. Také je potřeba balíčkovacímu systému říci, že je to jen signatura a tudíž není životně důležitá pro překlad. Toho dosáhneme SOURCE2_IGNORE=signature. Ke kontrole signatury potřebujeme ještě GPG klíč. Ten musíme balíčkovacímu systému ručně dodat a to v gpg (nikoliv ASCII) formátu. Toho dosáhneme naimportováním klíče do gpg z key serveru pomocí gpg --recv-keys a exportem gpg --export > key.gpg. Jméno klíče zadáme do položky SOURCE_GPG.

Zdrojový kód máme stažen a překontrolován, jdeme ho překládat. FSP závisí na glibc, flexu a scons. Tyto závislosti umístíme do souboru DEPENDS. Protože scons build systém je nestandardní (balíčkovací systém podporuje default gnu autotools) je potřeba vytvořit soubory BUILD a INSTALL který spustí scons s patřičnými volbami.

V souboru CONFIGURE máme možnost ovlivnit kompilační volby. Dělá se to velmi snadno - zeptáme se uživatele zda si přeje přeložit fsp klienty s nekonečným timeoutem:

config_query_option FSP_OPTS "Infinite timeout for clients" n "disable-timeout=yes" "disable-timeout=no"

Formát je jednoduchý jméno proměnné, prompt, default odpověď, co nastavit v případě ano a co nastavit v případě ne. Proměnou FSP_OPTS pak použijeme ve scriptech BUILD a INSTALL.

Rád bych upozornil že například na rozdíl od většiny balíčkovacích systémů není potřeba ručně vytvářet seznam nainstalovaných souborů. Tato vymoženost značně šetří čas a lépe funguje když si nainstalujete balíček castfs.

Výsledné dílo poté vložíme jako přílohu do bugzilly bugzilla.sourcemage.org, sekce codex. Pro nové balíčky je preferován formát tar, pro aktualizace diff.

Závečné hodnocení

SourceMage GNU/Linux jsem používal něco přes měsíc a velmi se mi líbíl. Pokud si rádi hrajete a nastavujete systém, tak se vám bude SourceMage rozhodně dost líbit. Je to výborná distribuce pokud se chcete naučit administrovat linux. Čas od času narazíte na nějaké drobné problémy, ale schopnost řešit problémy je základní dovednost dobrých administrátorů a proto buďte rádi, že máte na čem trénovat. V případě problémů vám na Freenode #sourcemage rychle poradí. Není to distribuce pro úplné nováčky, pro její provozování musíte být středně pokročilý uživatel linuxu.

Druhá otázka je, zda je SourceMage vhodný i pro masové produkční nasazení. Tady bych řekl že ne. Pokud máte hodně serverů tak musíte čistě z ekonomického hlediska minimalizovat čas strávený administrací a mít distribuci podporovanou komerčním softwarem, který je při podnikovém nasazení občas potřeba. Je žádoucí nepoužívat současně více distribucí než dvě, abychom omezili náklady na administraci a zbytečně netříštili vynaložené prostředky. Volba primární distribuce se tak omezí na duopol Suse nebo Redhat, případně Ubuntu LTS. Ubuntu je mimo jiné zajímavé tím, že je to jediná free distribuce na které jsou podporovány některé produkty firmy IBM - nejzajímavější z nich jsou Lotus Notes, Websphere CE a databáze IBM DB2. Jako sekundární distribuci bych SourceMage nedoporučoval, některé aktualizace jsou poněkud problematické a je docela snadné rozbořit si celý systém i takovými drobnostmi jako je například pořadí kompilace balíčků při aktualizaci sdílené knihovny. Narozdíl od FreeBSD nejsou tyto náročnější aktualizace nikde popsány a v produkčním nasazení není moc času na experimenty. Pro produkční nasazení je lepší ideově podobné FreeBSD, popřípadě Gentoo.


KOMENTARZE

Nie ma komentarzy dla tej pozycji.

Tylko zarejestrowani użytkownicy mogą dopisywać komentarze.
> Szukanie oprogramowania
1. Pacman linux
Download: 4873x
2. FreeBSD
Download: 9063x
3. PCLinuxOS-2010
Download: 8561x
4. alcolix
Download: 10943x
5. Onebase Linux
Download: 9656x
6. Novell Linux Desktop
Download: 0x
7. KateOS
Download: 6239x

1. xinetd
Download: 2411x
2. RDGS
Download: 937x
3. spkg
Download: 4751x
4. LinPacker
Download: 9961x
5. VFU File Manager
Download: 3196x
6. LeftHand Mała Księgowość
Download: 7200x
7. MISU pyFotoResize
Download: 2803x
8. Lefthand CRM
Download: 3560x
9. MetadataExtractor
Download: 0x
10. RCP100
Download: 3116x
11. Predaj softveru
Download: 0x
12. MSH Free Autoresponder
Download: 0x
©Pavel Kysilka - 2003-2024 | mailatlinuxsoft.cz | Design: www.megadesign.cz