Upozornění :
Tento dokument již neplatí a není udržován.
|
Gentoo Linux alpha Handbook
Obsah:
-
Instalace Gentoo
V této části se naučíte Gentoo nainstalovat.
-
O instalaci Gentoo Linuxu
Tato kapitola Vám stručně představí instalační proces.
-
Výběr správného instalačního média
Gentoo můžete nainstalovat mnoha způsoby. Zde si popíšeme instalaci pomocí
instalačního CD Minimal nebo Universal.
-
Konfigurace sítě
Abyste mohli stahovat nejnovější zdrojové kódy, musíte nejdříve nastavit
své připojení k síti.
-
Příprava disků
Nyní je potřeba vytvořit diskové oddíly. Tato kapitola popisuje rozdělení disku
pro další použití.
-
Instalace instalačních souborů
Gentoo se instaluje z takzvaného stage3 archivu. Popíšeme jeho rozbalení a
konfiguraci Portage.
-
Instalace základního Gentoo systému
Po rozbalení stage3 archivu chcete mít k dispozici základní Gentoo systém.
V této kapitole se dozvíte, jak toho dosáhnout.
-
Konfigurace kernelu
Linuxový kernel čili jádro je srdcem každé distribuce. Zde popíšeme, jak se
konfiguruje.
-
Konfigurace systému
Je potřeba změnit některé důležité konfigurační soubory. V této kapitole
naleznete jejich přehled a vysvětlení, co s nimi.
-
Instalace nezbytných systémových nástrojů
Jak již bylo zmíněno, Gentoo je o volbách a možnostech. Provedeme Vás výběrem a
instalací některých klíčových nástrojů.
-
Konfigurace bootloaderu
Existuje více bootloaderů, z nichž každý se konfiguruje po svém. Naučíme
Vás nastavit si bootloader k obrazu svému.
-
Dokončení instalace Gentoo
Jste skoro hotoví - ještě zbývá vytvořit uživatelské účty.
-
Co dělat teď?
Nyní máte systém nainstalovaný - co dál?
-
Práce s Gentoo
Naučte se pracovat s Gentoo - instalace softwaru, změna proměnných,
nastavení Portage atd.
-
Úvod do Portage
Tato kapitola popisuje "jednoduché" kroky, které jsou potřeba ke správě
softwaru v systému.
-
USE proměnné
USE proměnné jsou velmi důležitou stránkou Gentoo. V této kapitole se
s nimi naučíte pracovat a porozumíte tomu, jak ovlivňují Váš systém.
-
Možnosti Portage — FEATURES
Objevte možnosti, které Vám Portage nabízí, jako například distribuované
překlady, ccache a další.
-
Init skripty
Gentoo používá speciální formát init skriptů, který, kromě jiných možností,
podporuje rozhodování pomocí závislostí a virtuální init skripty. Tato kapitola
popisuje všechny tyto aspekty a vysvětluje, jak s těmito skripty zacházet.
-
Proměnné prostředí
S Gentoo můžete jednoduše spravovat proměnné prostředí na Vašem systému.
Vysvětlíme, jak s nimi pracovat, a podáme popis těch nejpoužívanějších.
-
Práce s Portage
Tato kapitola jde do hloubky v popisu Portage, nástroje, který
Gentoo využívá pro správu softwaru.
-
Soubory a adresáře
Pokud chcete opravdu poznat Portage, musíte vědět, kam ukládá svá data.
-
Konfigurace pomocí proměnných
Portage je plně konfigurovatelný pomocí různých proměnných nastavovaných
přes konfigurační soubory nebo jako proměnné prostředí.
-
Kombinování více větví
Gentoo rozděluje software do více větví podle stability a podpory různých HW
architektur. V této kapitole Vás naučíme, jak mohou být tyto větve
nakonfigurovány a jak toto rozdělení pro konkrétní balíčky změnit.
-
Doplňky Portage
Portage je dodáváno s několika nástroji, které Vám mohou pomoci při správě
programových balíčků. Přečtěte si tuto kapitolu, abyste zjistili, jak používat
dispatch-conf a jiné nástroje.
-
Odchylování od oficiálního stromu
V této kapitole naleznete informace, jak používat vlastní strom Portage,
jak synchronizovat pouze kategorie, které Vás zajímají, jak vkládat balíčky
a podobně.
-
Konfigurace sítě v Gentoo
Kompletní průvodce sítěmi v systémech Gentoo.
-
Úvod
Návod, jak rychle zprovoznit Vaše připojení k síti v běžných
podmínkách.
-
Pokročilá konfigurace
V této kapitole zjistíte, jak konfigurace pracuje, což se Vám bude hodit
později při popisu modulů pro sítě.
-
Moduly pro sítě
Síťování je v Gentoo řešeno velice flexibilně - zde jsou vysvětleny věci
jako výběr DHCP klientů, nastavení bondingu, bridgovaní či VLANů.
-
Bezdrátové sítě
Nastavení bezdrátových sítí není přímočaré. Doufejme, že Vám tato kapitola
pomůže.
-
Přidávání funkcí
Jste-li dobrodružné povahy, můžete do nastavení síťování přidat vlastní funkce.
-
Správa nastavení sítí
Pro uživatele notebooků a ty, kdo své stroje přenášejí mezi různými sítěmi.
A. Instalace Gentoo
1. O instalaci Gentoo Linuxu
1.a. Úvod
Vítejte!
V první řadě, vítejte v Gentoo. Chystáte se vstoupit do světa
možností a výkonu. Gentoo je celé o volbách - během instalace i po ní to sami
mnohokrát poznáte. Můžete si vybrat, kolik budete chtít kompilovat sami, jak
systém nainstalovat, který systémový logger chcete použít atd.
Gentoo je rychlá moderní metadistribuce čistého a flexibilního designu. Je
postavené na svobodném softwaru a neskrývá před svými uživateli, co má pod
kůží. Portage, systém pro správu balíčků, je napsán v Pythonu, což znamená,
že si můžete snadno přečíst i změnit jeho zdrojový kód. Portage používá
distribuci ve formě zdrojového kódu (avšak můžete samozřejmě používat i již
předkompilované balíčky). Gentoo se konfiguruje pomocí normálních textových
souborů. Jinými slovy, otevřenost všude.
Je důležité, abyste porozuměli, že volby jsou to, co umožňuje Gentoo
existovat. Snažíme se, abychom Vás nenutili do ničeho, co nechcete. Pokud máte
pocit, že ano, ohlaste to, prosím.
Jak je instalace rozdělená?
Na instalaci Gentoo se můžeme dívat jako na proceduru o deseti krocích,
odpovídajících kapitolám 2 až 11. Každý krok vede dál:
-
po kroku 1 jste ve fungujícím prostředí, připraveni instalovat Gentoo
-
po kroku 2 je Vaše připojení k Internetu funkční
-
po kroku 3 jsou Vaše pevné disky připraveny k instalaci
-
po kroku 4 je Vaše instalační prostředí připraveno a můžete do něj přes chroot
vstoupit
-
po kroku 5 jsou klíčové balíčky, stejné na všech Gentoo strojích,
nainstalovány
-
po kroku 6 je připraveno linuxové jádro
-
po kroku 7 máte zapsánu většinu konfiguračních souborů svého Gentoo systému
-
po kroku 8 jsou nainstalovány nezbytné systémové nástroje, které si
můžete zvolit z hezkého seznamu
-
po kroku 9 je bootloader, který jste si vybrali, nainstalován a
nakonfigurován, a jste přihlášeni do své nové instalace
-
po kroku 10 je Vaše Gentoo linuxové prostředí připraveno k prozkoumání
Je-li Vám dána určitá volba, děláme vše k tomu, abychom Vám vysvětlili
výhody i nevýhody. Potom budeme pokračovat s předvolenou možností, které
budeme dále říkat "Výchozí: ". Jiné možnosti jsou označeny
"Alternativní: ". Nemyslete si, že předvolba je to, co
doporučujeme -- je to jen to, co si myslíme, že použije většina uživatelů.
Někdy můžete provést dobrovolný krok -- takové situace jsou označeny jako
"Volitelně: " a tudíž nejsou vyžadovány k instalaci Gentoo.
Některé volitelné kroky však závisí na Vašich předchozích rozhodnutích.
Upozorníme Vás, až se něco takového stane, jak předem při rozhodování, tak
tehdy, když je popisován volitelný krok.
Jaké jsou mé volby?
Gentoo můžete nainstalovat mnoha různými způsoby. Můžete si stáhnout jedno
z našich instalačních CD a instalovat pak z něj. Stejně tak můžete
instalační
proces spouštět ze stávající linuxové distribuce, z bootovatelného CD jako
například Knoppix, z prostředí spuštěného přes síť, ze záchranné diskety a
tak dále.
Tento dokument popisuje instalaci z Gentoo LiveCD nebo, v určitých
případech, z prostředí spuštěného přes síť. Předpokládáme, že chcete
instalovat poslední dostupné verze každého balíčku. Pokud chcete provést
instalaci bez použití sítě, měli byste si přečíst Gentoo 2006.1 Handbook, který obsahuje
instalační pokyny pro taková prostředí.
Plánujete-li použít GRP, Gentoo Referenční Platformu - kolekci předkompilovaných
balíčků pro okamžité použití ihned po instalaci, budete muset použít
instrukce popsané v Gentoo 2006.1
Handbooku.
Pro pomoc s jinými instalačními postupy si prosím přečtěte naši příručku pro alternativní instalaci.
Také máme připravené tipy
a triky pro instalaci Gentoo, které Vám rovněž mohou pomoci. Pokud si
myslíte, že jsou tyto instrukce příliš komplikované, můžete použít naši
příručku pro rychlou instalaci dostupnou na
přehledu dokumentace, má-li Vaše architektura takový dokument dostupný.
Také máte více možností: můžete kompilovat celý systém od základů či použít
předkompilované prostředí, díky kterému můžete svoji instalaci Gentoo uvést
do chodu v minimálním čase. A samozřejmě můžete použít řešení prostřední,
ve kterém nekompilujete vše, ale začínáte od předem připraveného základu.
Problémy?
Pokud narazíte na problém při instalaci či v dokumentaci, navštivte prosím
náš systém pro sledování chyb a
zkontrolujte, zda je chyba známá. Pokud ne, vytvořte prosím oznámení, abychom
ji mohli vyřešit. Nebojte se vývojářů, kterým budou chyby přiřazeny, většinou
lidi nejíme.
Dokumentace, kterou nyní čtete, je sice specifická pro Vaši architekturu, ale
může obsahovat zmínky i o architekturách jiných. Je to způsobeno tím, že velká
část Gentoo Handbooku je společná všem (abychom ušetřili kapacity lidí pro
další dokumentaci). Budeme se snažit Vás nezmást.
Pokud si nejste jistí, zda je problém na Vaší straně (udělali jste chybu i
přesto, že jste si pozorně přečetli dokumentaci) či u nás (udělali jsme chybu
i přes veškeré testování), můžete se přidat na #gentoo na irc.freenode.net.
Samozřejmě jste vítání i v jiném případě :-).
Pokud máte dotaz k Gentoo, podívejte se na náš seznam často kladených otázek, dostupný z přehledu
Gentoo dokumentace. Také si můžete prohlédnout
FAQ na našich
fórech. Pokud nemůžete najít
odpověď zde, zeptejte se na #gentoo, našem IRC kanále na irc.freenode.net. Ano,
pár z nás jsou závisláci vysedávající na IRC :-)
2. Výběr správného instalačního média
3. Konfigurace sítě
3.a. Automatická detekce nastavení sítě
Možná to prostě funguje?
Je-li Váš systém zapojen do ethernetové sítě používající DHCP protokol, je
velmi pravděpodobné, že se již vše automaticky nastavilo. Pokud připojení
funguje, měli byste být schopni používat síťové aplikace dostupné na instalačním
CD, jako například ssh, scp, ping, irssi,
wget a links.
Pokud je síť funkční, příkaz /sbin/ifconfig ukáže další síťová rozhraní
kromě lo, například eth0:
Výpis kódu 1.1: /sbin/ifconfig pro funkční konfiguraci sítě |
# /sbin/ifconfig
eth0 Link encap:Ethernet HWaddr 00:50:BA:8F:61:7A
inet addr:192.168.0.2 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::50:ba8f:617a/10 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1498792 errors:0 dropped:0 overruns:0 frame:0
TX packets:1284980 errors:0 dropped:0 overruns:0 carrier:0
collisions:1984 txqueuelen:100
RX bytes:485691215 (463.1 Mb) TX bytes:123951388 (118.2 Mb)
Interrupt:11 Base address:0xe800
|
Volitelně: nastavení serverů proxy
Pokud přistupujete k Internetu přes proxy, budete ji během instalace
potřebovat správně nastavit. Je to jednoduché - pouze nastavíte proměnnou
obsahující informace o proxy serveru.
Ve většině případů stačí definovat proměnnou obsahující jméno serveru.
V tomto příkladu budeme předpokládat, že se Vaše proxy jmenuje
proxy.gentoo.org a komunikuje na portu 8080.
Výpis kódu 1.2: Nastavení proxy serverů |
# export http_proxy="http://proxy.gentoo.org:8080"
# export ftp_proxy="ftp://proxy.gentoo.org:8080"
# export RSYNC_PROXY="proxy.gentoo.org:8080"
|
Pokud Vaše proxy vyžaduje uživatelské jméno a heslo, použijte pro proměnnou
tento zápis:
Výpis kódu 1.3: Přidání uživatelského jména a hesla do proměnné definující proxy |
http://uživatelské-jméno:heslo@proxy.gentoo.org:8080
|
Testování sítě
Můžete zkusit ping na DNS server Vašeho ISP (najdete ho
v /etc/resolv.conf) a nějakou webovou stránku podle vlastního
výběru, abyste se ujistili, že pakety odeslané Vaším strojem dojdou do sítě,
že správně funguje převod DNS jmen na IP adresy atd.
Výpis kódu 1.4: Další testování sítě |
# ping -c 3 www.yahoo.com
|
Pokud jste nyní schopni používat svoji síť, můžete přeskočit zbytek této sekce
a pokračovat přípravou disků. Pokud ne,
čtěte dále.
3.b. Automatická konfigurace sítě
Pokud Vaše síť ihned nefunguje, umožní Vám některá instalační média použít
net-setup (pro klasické i bezdrátové sítě), pppoe-setup
(pro uživatele ADSL) či pptp (pro uživatele PPTP - dostupné na
architekturách x86, amd64, alpha, ppc a ppc64).
Pokud Vaše instalační médium tyto nástroje neobsahuje a Vaše síť ještě
nefunguje, pokračujte ruční konfigurací sítě.
Výchozí: použití net-setup
Nejjednodušší cestou, jak nastavit síť, i když se nespustila automaticky,
je spustit skript net-setup:
Výpis kódu 2.1: Spuštění skriptu net-setup |
# net-setup eth0
|
net-setup se Vás zeptá na pár otázek o Vašem síťovém prostředí. Když je
vše hotovo, měli byste mít k dispozici fungující síťové připojení.
Otestujte jej, jak bylo ukázáno výše. Pokud testy proběhnou úspěšně,
gratulujeme, jste připraveni nainstalovat Gentoo. Přeskočte zbytek této sekce a
pokračujte přípravou disků.
Pokud Vaše síť ještě pořád nefunguje, pokračujte ruční
konfigurací sítě.
Volitelně: použití RP-PPPoE
Potřebujete-li PPPoe k připojení k Internetu, všechny verze
instalačních CD vám usnadní život pomocí rp-pppoe. Použijte poskytnutý
skript pppoe-setup ke konfiguraci spojení. Budete požádáni o jméno
ethernetového zařízení (síťové karty), ke které je připojen Váš ADSL
modem, IP adresy Vašich DNS serverů a dotázáni, zda potřebujete jednoduchý
firewall.
Výpis kódu 2.2: Použití rp-pppoe |
# pppoe-setup
# pppoe-start
|
Pokud je něco špatně, překontrolujte, že jste správně zadali uživatelské jméno
a heslo (/etc/ppp/pap-secrets nebo
/etc/ppp/chap-secrets), a ujistěte se, že jste zadali správný název
síťové karty. Pokud ethernetové zařízení neexistuje, budete muset načíst
odpovídající jaderné moduly - v tom případě byste měli pokračovat
ruční konfigurací sítě, kde je vysvětleno,
jak na to.
Pokud všechno funguje, pokračujte přípravou
disků.
Volitelně: použití PPTP
Poznámka:
Podpora PPTP je dostupná pouze na x86.
|
Pokud potřebujete podporu PPTP, můžete použít pptpclient z naších
instalačních CD. Avšak nejprve se musíte ujistit, že je Vaše konfigurace
v pořádku. Změňte obsah /etc/ppp/pap-secrets resp.
/etc/ppp/chap-secrets tak, aby obsahoval správnou kombinaci
uživatelského jména a hesla:
Výpis kódu 2.3: Editace /etc/ppp/chap-secrets |
# nano -w /etc/ppp/chap-secrets
|
Nyní nastavte /etc/ppp/options.pptp, pokud potřebujete:
Výpis kódu 2.4: Editace /etc/ppp/options.pptp |
# nano -w /etc/ppp/options.pptp
|
Když je vše hotovo, prostě spusťte pptp (spolu s možnostmi, které
jste nemohli nastavit v options.pptp), abyste se připojili
na server:
Výpis kódu 2.5: Připojování k dial-in serveru |
# pptp <server ip>
|
Nyní pokračujte přípravou disků.
3.c. Ruční konfigurace sítě
Načtení odpovídajících jaderných modulů
Instalační CD se při bootování snaží detekovat všechna připojená zařízení a
načíst pro ně odpovídající ovladače ve formě jaderných modulů.
Ve velké většině případů odvádí skvělou práci, avšak může se stát, že
nenačte vše, co je potřeba.
Pokud net-setup nebo pppoe-setup selžou, je možné, že Vaše síťová
karta nebyla detekována. To znamená, že pro ni budete muset načíst
odpovídající jaderný modul ručně.
Abyste viděli, jaké jaderné moduly pro síťování poskytujeme, použijte
ls:
Výpis kódu 3.1: Zobrazení poskytovaných modulů |
# ls /lib/modules/`uname -r`/kernel/drivers/net
|
Vybraný ovladač síťové karty nakonec načteme příkazem modprobe:
Výpis kódu 3.2: Použití modprobe k načtení jaderného modulu |
# modprobe pcnet32
|
Pro zjištění, zda je Vaše síťová karta nyní správně obsluhovaná, použijte
ifconfig. Pokud vše proběhlo v pořádku, měli byste vidět něco
podobného:
Výpis kódu 3.3: Testování dostupnosti Vaší síťové karty proběhlo úspěšně |
# ifconfig eth0
eth0 Link encap:Ethernet HWaddr FE:FD:00:00:00:00
BROADCAST NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
|
Pokud však uvidíte tuto chybu, síťová karta nebyla detekována:
Výpis kódu 3.4: Testování dostupnosti Vaší síťové karty selhalo |
# ifconfig eth0
eth0: error fetching interface information: Device not found
|
Pokud máte více síťových karet, jsou pojmenovány eth0, eth1, atd.
Ujistěte se, že karta, kterou chcete používat, pracuje dobře, a zapamatujte si,
jak se jmenuje, pro další použití v tomto dokumentu. Budeme předpokládat,
že používáte kartu pojmenovanou eth0.
Pokud nyní pracuje Vaše síťová karta správně, můžete zkusit znovu použít
net-setup nebo pppoe-setup; je možné, že už budou fungovat. Avšak
pro ty otrlejší mezi čtenářstvem popíšeme, jak nastavit síť ručně.
Vyberte si jednu z těchto sekcí podle Vaší sítě:
Použití DHCP
DHCP (Dynamic Host Configuration Protocol) umožňuje automatické nastavení
se síti souvisejících údajů (jako je například IP adresa, maska (netmask),
adresa všesměrového vysílání (broadcast), výchozí brána (gateway), adresy DNS
serverů (nameserver) atd). Funguje jenom tehdy, je-li v síti dostupný DHCP
server nebo když ho poskytuje Váš internetový provider. Aby síťové rozhraní
obdrželo tyto informace, použijte dhcpcd:
Výpis kódu 3.5: Použití dhcpcd |
# dhcpcd eth0
# dhcpcd -HD eth0
|
Pokud to funguje (vyzkoušejte ping na nějaký internetový server, třeba
Google), máte nastaveno vše, co
potřebujete, a jste připraveni pokračovat. Přeskočte zbytek této sekce a
pokračujte přípravou disků.
Příprava bezdrátového přístupu
Poznámka:
Podpora příkazu iwconfig je dostupná pouze na instalačních CD architektur
x86, amd64 a ppc. Bezdrátová rozšíření však můžete zprovoznit i jinde pomocí
instrukcí projektu
linux-wlan-ng.
|
Používáte-li bezdrátovou (802.11) kartu, možná budete nejprve potřebovat
nakonfigurovat bezdrátová nastavení své karty. Abyste zjistili jejich současný
stav, můžete použít iwconfig. Spuštění iwconfig může ukázat něco
jako:
Výpis kódu 3.6: Zobrazení současných bezdrátových nastavení |
# iwconfig eth0
eth0 IEEE 802.11-DS ESSID:"GentooNode"
Mode:Managed Frequency:2.442GHz Access Point: 00:09:5B:11:CC:F2
Bit Rate:11Mb/s Tx-Power=20 dBm Sensitivity=0/65535
Retry limit:16 RTS thr:off Fragment thr:off
Power Management:off
Link Quality:25/10 Signal level:-51 dBm Noise level:-102 dBm
Rx invalid nwid:5901 Rx invalid crypt:0 Rx invalid frag:0 Tx
excessive retries:237 Invalid misc:350282 Missed beacon:84
|
Poznámka:
Některé bezdrátové karty mohou používat jméno zařízení wlan0 nebo
ra0 místo eth0. Neznáte-li správný název, můžete jej zjistit
spuštěním příkazu iwconfig bez dalších parametrů.
|
Většina uživatelů bude potřebovat nastavit pouze dva parametry, ESSID (zvané
též jméno bezdrátové sítě) a případně WEP klíč. Patří-li zobrazená ESSID a
adresa Access Pointu vašemu přístupovému bodu a nepoužíváte-li WEP, je Vaše
bezdrátová síť nastavena. Pokud potřebujete změnit ESSID či nastavit WEP klíč,
postupujte takto:
Výpis kódu 3.7: Změna ESSID a/nebo přidání WEP klíče |
# iwconfig eth0 essid GentooNode
# iwconfig eth0 key 1234123412341234abcd
# iwconfig eth0 key s:nějaké-heslo
|
Nyní si můžete prohlédnout platná nastavení bezdrátové sítě pomocí
iwconfig. Jakmile je bezdrátová část funkční, můžete pokračovat
konfigurací IP vrstvy, jak je popsáno v další části (porozumění síťovým technologiím) nebo můžete použít
nástroj net-setup, jak již bylo popsáno.
Porozumění síťovým technologiím
Poznámka:
Znáte-li svoji IP adresu, broadcast adresu, masku sítě a nameservery, můžete
přeskočit tuto podsekci a pokračovat částí použití ifconfig a route.
|
Pokud vše výše zmíněné selhalo, budete si muset nastavit svoji síť ručně.
Není to obtížné, ale nejprve však musíte být seznámeni s některými
základními pojmy, abyste si svou síť mohli nastavit k plné spokojenosti.
Až dočtete tuto část, budete vědět, co to je gateway, k čemu slouží
netmask (maska sítě), jak vypadá broadcast adresa (adresa
všesměrového vysílání) a proč potřebujeme nameservery.
V síti jsou všechny stroje (host) identifikovány pomocí své IP
adresy (Internet Protocol address). Tato adresa je kombinací čtyř čísel
od 0 do 255. No, alespoň ji tak vnímáme - ve skutečnosti sestává
ze 32 bitů (jedničky a nuly). Podívejme se na jednu takovou:
Výpis kódu 3.8: Příklad IP adresy |
IP adresa (číslo): 192.168.0.2
IP adresa (bity): 11000000 10101000 00000000 00000010
-------- -------- -------- --------
192 168 0 2
|
Takováto IP adresa je unikátní pro každý stroj (host), mluvíme-li o
dosažitelných sítích (tj. všechny stroje, se kterými můžete komunikovat, musí
mít unikátní IP adresu). Abyste byli schopni rozlišovat mezi stroji uvnitř
Vaší sítě a mezi stroji v sítích jiných, je IP adresa rozdělena do dvou
částí: do části identifikující síť a části identifikující stroj
(host).
Oddělení je provedeno pomocí masky sítě, skupiny jedniček doplněné
skupinou nul. Ta část IP adresy, které v síťové masce odpovídají jedničky,
identifikuje síť (síťová část), zbytek identifikuje stroj v síti. Maska
sítě může být zapsána ve stejném formátu jako IP adresa:
Výpis kódu 3.9: Příklad oddělení sítě a stroje |
IP adresa: 192 168 0 2
11000000 10101000 00000000 00000010
Maska sítě: 11111111 11111111 11111111 00000000
255 255 255 0
+--------------------------+--------+
Network Host
|
Jinými slovy, 192.168.0.14 je součástí naší ukázkové sítě, zatímco 192.168.1.2
už ne.
Broadcast adresa je IP adresa, která má síťovou část stejnou jako Vaše IP
adresa, ale druhou část, která normálně identifikuje stroj, tvoří samé jedničky.
Každý stroj ve Vaší síti naslouchá na této adrese, ta je proto používána
pro posílání paketů určených pro všechny stanice v síti.
Výpis kódu 3.10: Broadcast adresa |
IP adresa: 192 168 0 2
11000000 10101000 00000000 00000010
Broadcast: 11000000 10101000 00000000 11111111
192 168 0 255
+--------------------------+--------+
Network Host
|
Abyste mohli brouzdat po Internetu, musíte vědět, kudy na něj, přes který
počítač. Tento počítač se nazývá gateway, brána. Protože je to normální
stroj, má také normální IP adresu (například 192.168.0.1).
Řekli jsme si, že každý stroj musí mít svoji vlastní IP adresu. Abyste
s ním však mohli komunikovat podle jména, musíte jej nepjrve nějak převést
na IP adresu (například z dev.gentoo.org udělat 64.5.62.82).
Služba, která se o to stará, se nazývá name service, a abyste ji mohli
využívat, musíte seznámit svůj stroj s adresami takzvaných nameserverů
neboli serverů DNS. Uděláte to tak, že je zapíšete do souboru
/etc/resolv.conf.
V některých případech slouží Vaše gateway také jako nameserver. Pokud ne,
budete muset zadat nameservery poskytované Vaším ISP.
Abychom si to shrnuli - před pokračováním budete potřebovat
následující informace:
| Položka |
Příklad |
| Vaše IP adresa |
192.168.0.2 |
| Maska sítě |
255.255.255.0 |
| Broadcast adresa |
192.168.0.255 |
| Gateway |
192.168.0.1 |
| Nameserver(y) |
195.130.130.5, 195.130.130.133 |
Použití ifconfig a route
Nastavení sítě sestává ze tří kroků: nejprve si přiřadíme IP adresu pomocí
ifconfig, poté nastavíme routování (směrování) na bránu pomocí
route a nakonec zapíšeme IP adresy nameserverů do souboru
/etc/resolv.conf.
Pro přiřazení IP adresy budete potřebovat svoji IP adresu, broadcast adresu
a masku sítě. Poté proveďte tento příkaz, ve kterém nahraďte
${IP_ADDR} svojí IP adresou, ${BROADCAST} svojí
broadcast adresou a ${NETMASK} maskou sítě:
Výpis kódu 3.11: Použití ifconfig |
# ifconfig eth0 ${IP_ADDR} broadcast ${BROADCAST} netmask ${NETMASK} up
|
Nyní nastavte routování pomocí route. Nahraďte ${GATEWAY} IP
adresou brány:
Výpis kódu 3.12: Použití route |
# route add default gw ${GATEWAY}
|
Nyní otevřete /etc/resolv.conf ve svém oblíbeném editoru
(v našem příkladu použijeme nano):
Výpis kódu 3.13: Vytvoření /etc/resolv.conf |
# nano -w /etc/resolv.conf
|
Nyní nastavte své DNS servery; použijte následující příklad jako šablonu.
Nahraďte ${NAMESERVER1} a ${NAMESERVER2} odpovídajícími adresami
nameserverů:
Výpis kódu 3.14: Šablona pro /etc/resolv.conf |
nameserver ${NAMESERVER1}
nameserver ${NAMESERVER2}
|
To je všechno. Nyní otestujte síť pomocí pingu na nějaký internetový server,
třeba Google. Pokud to funguje,
gratulujeme, nyní jste připraveni nainstalovat Gentoo. Pokračujte přípravou disků.
4. Příprava disků
5. Instalace instalačních souborů
5.a. Instalace stage archivu
Nastavení data a času
Před pokračováním budete muset nastavit systémový čas. Špatně nastavené hodiny
mohou vést k divným chybám v budoucnu.
Pro ověření aktuálního data a času spusťte date:
Výpis kódu 1.1: Ověření data a času |
# date
Fri Mar 29 16:21:18 UTC 2005
|
Pokud je zobrazené datum nebo čas špatně, nastavte ho pomocí date
MMDDhhmmRRRR (Měsíc, Den, hodina, minuta a
Rok). Údaje jsou pro časové pásmo UTC, místní čas bude nastaven později.
Například pro nastavení aktuálního data na 29. března 2005, 16:21 proveďte
toto:
Výpis kódu 1.2: Nastavení data a času v UTC |
# date 032916212004
|
Rozhodnutí
Další krok, který potřebujete udělat, je instalace stage3 archivu do
systému. Máte možnost stáhnout požadované soubory z Internetu a nebo,
nabootovali jste-li do Universal instalačního CD, zkopírovat je přímo
z něj. Pokud máte Universal CD a stage, kterou chcete použít, je na CD,
bylo by její stahování z Internetu zbytečné, protože stage soubory jsou
stejné. Ve většině případů Vám při rozhodování, kterou stage použít, pomůže
příkaz uname -m.
5.b. Výchozí: použití stage z Internetu
Stažení stage archivu
Přejděte do přípojného bodu (mountpoint), kam je připojená Vaše nová instalace
Gentoo, pravděpodobně /mnt/gentoo:
Výpis kódu 2.1: Přechod do Gentoo mountpointu |
# cd /mnt/gentoo
|
Podle použitého instalačního média máte k dispozici pár možností, jak
stáhnout stage. Máte-li dostupný links, můžete ihned otevřít seznam Gentoo mirrorů a vybrat si nějaký Vám
blízký.
Nemáte-li links, měli byste mít k dispozici lynx.
Potřebujete-li projít přes proxy, nastavte proměnné http_proxy a
ftp_proxy:
Výpis kódu 2.2: Nastavení informací o proxy pro lynx |
# export http_proxy="http://proxy.server.com:port"
# export ftp_proxy="http://proxy.server.com:port"
|
Dále budeme předpokládat, že máte k dispozici links.
Vejděte do adresáře releases/ následovaného Vaší architekturou
(například x86/) a verzí Gentoo (2006.1/) a do
podadresáře stages/. Zde byste měli vidět všechny stage soubory pro
svoji architekturu (mohou být uloženy do podadresářů podle různých
podarchitektur). Vyberte jednu a zmáčkněte D ke stažení. Až budete
hotoví, stiskem Q ukončíte prohlížeč.
Výpis kódu 2.3: Zobrazení seznamu mirrorů pomocí links |
# links http://www.gentoo.org/main/en/mirrors.xml
# links -http-proxy proxy.server.com:8080 http://www.gentoo.org/main/en/mirrors.xml
|
Ujistěte se, že jste si stáhli stage3 archiv — instalace ze stage1
či stage2 nejsou podporovány.
Chcete-li otestovat integritu staženého archivu, použijte md5sum a
porovnejte výsledek s MD5 součtem poskytnutým na zrcadle. Například pro
kontrolu x86 stage archivu:
Výpis kódu 4.6: Ukázkové ověření integrity stage archivu |
# md5sum -c stage3-x86-2006.1.tar.bz2.DIGESTS
stage3-x86-2006.1.tar.bz2: OK
|
Rozbalení stage archivu
Důležité:
LiveCD "Installer" pro architekturu xáž neobsahuje stage tarbally, budete
si je proto muset stáhnout z Internetu.
|
Nyní rozbalte archiv do systému. Použijeme tar, protože to je
nejjednodušší metoda:
Výpis kódu 2.5: Rozbalení stage |
# tar xvjpf stage3-*.tar.bz2
|
Ujistěte se, že zadáváte stejné parametry (xvjpf) — x znamená
rozbalit (extract), v výřečný (verbose) pro zobrazování
toho, co se děje, během průběhu operace (volitelně), j znamená
rozbalit pomocí bzip2, p zachovat přístupová práva a
konečně f pro určení, že chceme rozbalit soubor a ne stdin (standardní
vstup procesu).
Poznámka:
Instalační CD některých architektur (například MIPS) a bootovací image používají
tar zabudovaný do BusyBoxu, který nyní nepodporuje volbu v,
použijte na nich proto prosím pouze xjpf.
|
Nyní, když je stage rozbalená, pokračujme instalací Portage.
5.c. Alternativní: použití stage z instalačního CD
Rozbalení stage
Důležité:
Používáte-li LiveCD instalátoru (Installer LiveCD) na architektuře x86, stage
archivy na CD nenajdete, budete si je muset stáhnout z Internetu.
|
Stage soubory jsou na CD v adresáři /mnt/cdrom/stages. Abyste
zobrazili jejich výpis, použijte ls:
Výpis kódu 3.1: Seznam dostupných stage souborů |
# ls /mnt/cdrom/stages
|
Odpoví-li systém chybou, možná potřebujete nejdříve disk CD-ROM připojit:
Výpis kódu 3.2: Připojení CD-ROM |
# ls /mnt/cdrom/stages
ls: /mnt/cdrom/stages: No such file or directory
# mount /dev/cdroms/cdrom0 /mnt/cdrom
# ls /mnt/cdrom/stages
|
Nyní přejděte do přípojného bodu (mountpoint), kam je připojená Vaše nová
instalace Gentoo, pravděpodobně /mnt/gentoo:
Výpis kódu 3.3: Přechod do Gentoo mountpointu |
# cd /mnt/gentoo
|
Nyní rozbalíte stage archiv dle Vašeho výběru pomocí tar. Ujistěte se, že
používáte stejné parametry (xvjpf)! (v je opět volitelné a nemusí
pracovat s některými verzemi nástroje tar). V dalším příkladu
rozbalíme archiv stage3-<subarchitektura>-2006.1.tar.bz2.
Nahraďte toto jméno jménem souboru archivu své stage.
Výpis kódu 3.4: Rozbalení stage |
# tar xvjpf /mnt/cdrom/stages/stage3-<subarchitektura>-2006.1.tar.bz2
|
Nyní, když je stage rozbalená, pokračujme instalací Portage.
5.d. Instalace Portage
Aktualizace archivu Portage stromu
Nyní musíte nainstalovat archiv Portage stromu (Portage snapshot), kolekci
souborů, které informují Portage o tom, jaký software můžete nainstalovat, jaké
profily jsou dostupné atd.
Stažení a instalace Portage snapshotu
Vejděte do mountpointu, kam jste připojili své souborové systémy (pravděpodobně
/mnt/gentoo):
Výpis kódu 4.1: Změna adresáře do Gentoo mountpointu |
# cd /mnt/gentoo
|
Spusťte links (či lynx) přejděte na náš seznam Gentoo mirrorů. Vyberte si mirror,
který je Vám blízko, a otevřete adresář snapshots/. Odtud stáhněte
nejnovější archiv (portage-latest.tar.bz2) tím, že ho vyberete a
zmáčknete D.
Výpis kódu 4.2: Zobrazení seznamu mirrorů |
# links http://www.gentoo.org/main/en/mirrors.xml
|
Nyní stisknutím Q ukončete prohlížeč. Portage snapshot je nyní uložen
v adresáři /mnt/gentoo.
Pokud budete chtít ověřit integritu staženého snapshotu, porovnejte nástrojem
md5sum MD5 hash vašeho souboru a souboru na mirrorech:
Výpis kódu 4.3: Kontrola integrity staženého souboru |
# md5sum -c portage-latest.tar.bz2.md5sum
portage-latest.tar.bz2: OK
|
V dalším kroku rozbalíme archiv do filesystému. Ujistěte se, že používáte
přesně stejné parametry, poslední je velké C, ne c.
Výpis kódu 4.4: Rozbalení Portage snapshotu |
# tar xvjf /mnt/gentoo/portage-latest.tar.bz2 -C /mnt/gentoo/usr
|
5.e. Nastavení voleb pro kompilaci
Úvod
Pro optimalizaci Gentoo můžete nastavit několik proměnných, které ovlivní
chování Portage. Všechny tyto proměnné mohou být nastaveny jako proměnné
prostředí (použitím export), avšak takováto změna není stálá. Abyste
nastavení zachovali, nabízí Portage svůj konfigurační soubor
/etc/make.conf. Ten budeme nyní editovat.
Poznámka:
Komentovaný výpis všech možných proměnných můžete najít
v /mnt/gentoo/etc/make.conf.example. Pro úspěšnou instalaci
Gentoo potřebujete nastavit pouze dále zmíněné proměnné.
|
Spusťte svůj oblíbený editor (v této příručce užíváme nano),
abychom mohli změnit zmíněné optimalizační proměnné:
Výpis kódu 5.1: Otevření /etc/make.conf |
# nano -w /mnt/gentoo/etc/make.conf
|
Jak jste si pravděpodobně všimli, soubor make.conf.example má
určitou strukturu - komentáře začínají na "#", jiné řádky definují proměnné
pomocí syntaxe PROMĚNNÁ="hodnota". Soubor make.conf má ten
samý formát. Některé proměnné probereme dále.
CHOST
Proměnná CHOST definuje "build host" vašeho systému. Její hodnota by již
měla být správně nastavena na správnou hodnotu. Neměňte ji,
protože byste mohli zničit celý systém. Pokud vám její hodnota přijde divná,
možná používáte špatný stage3 archiv.
CFLAGS a CXXFLAGS
Proměnné CFLAGS a CXXFLAGS definují optimalizační
parametry pro C (resp. C++) kompilátor gcc. I když je zde definujeme
obecně, nejlepších výsledků dosáhnete, pokud je budete optimalizovat pro každý
program zvlášť, neboť každý program je jiný.
V make.conf byste měli definovat takové optimalizační
parametry, o kterých si myslíte, že Váš systém zlepší celkově a obecně.
Nenastavujte tyto proměnné na experimentální hodnoty; příliš optimalizací může
přinutit programy selhat (spadnout, nebo ještě hůře, fungovat špatně).
Nepopíšeme si všechna možná nastavení optimalizací. Pokud je chcete znát
všechny, přečtěte si GNU
Online Manuál(y) nebo gcc info stránku (info gcc --
pouze z funkčního linuxového systému). Samotný soubor
make.conf.example také obsahuje hodně příkladů a informací,
nezapomeňte si ho přečíst.
První nastavení je volba -march=, která specifikuje jméno cílové
architektury. Možné volby jsou popsány jako
komentáře v souboru make.conf.example. Například pro x86
Athlon XP:
Výpis kódu 5.2: Nastavení GCC march |
-march=athlon-xp
|
Druhý parametr je -O (velké písmeno O, nikoli nula), který specifikuje
třídu optimalizací prováděnou gcc. Možné hodnoty jsou s
(optimalizace na velikost - size), 0 (nula - pro žádné optimalizace),
1, 2 nebo 3 pro více rychlostně orientovaných
optimalizací (každá třída provádí stejné optimalizace jako třída předchozí plus
nějaké další). Například pro optimalizace třídy 2:
Výpis kódu 5.3: Nastavení O pro GCC |
-O2
|
Dalším populárním parametrem je -pipe, který použije roury (pipes)
namísto dočasných souborů pro komunikaci mezi různými stupni kompilace.
Pamatujte, že použití -fomit-frame-pointer (které neudržuje frame
pointer v registrech pro funkce, které to nepotřebují) může mít
kritický vliv na ladění aplikací!
Do definice CFLAGS a CXXFLAGS byste měli zahrnout více
optimalizačních příznaků, jako v následujícím příkladě:
Výpis kódu 5.4: Definice proměnných CFLAGS a CXXFLAGS |
CFLAGS="-march=athlon-xp -pipe -O2"
CXXFLAGS="${CFLAGS}"
|
MAKEOPTS
Proměnnou MAKEOPTS definujete, kolik paralelních kompilací má probíhat
najednou, zatímco Portage instaluje software. Dobrá hodnota je počet CPU
ve Vašem systému plus jedna, ale neplatí to absolutně.
Výpis kódu 5.5: MAKEOPTS pro normální, jednoprocesorový systém |
MAKEOPTS="-j2"
|
Připravit, pozor, teď!
Aktualizujte /mnt/gentoo/etc/make.conf podle svých představ a
uložte jej (uživatelé nano zmáčknou Ctrl-X). Nyní jste připraveni
pokračovat instalací základního Gentoo
systému.
6. Instalace základního Gentoo systému
6.a. Chroot
Volitelně: volba mirrorů
Abyste mohli stáhnout potřebné archivy zdrojových kódů co nejrychleji, je
doporučeno nastavit používání blízkého mirroru (zrcadla, serveru obsahujícího
potřebné soubory). Portage zjišťuje použité mirrory podle proměnné
GENTOO_MIRRORS v souboru make.conf. Nejbližší (a tudíž
zpravidla i ten nejrychlejší) mirror si můžete vybrat z našeho seznamu a nebo můžete využít nástroj
mirrorselect, který Vám výběr usnadní hezkým rozhraním.
Výpis kódu 1.1: Použítí mirrorselect pro nastavení proměnné GENTOO_MIRRORS |
# mirrorselect -i -o >> /mnt/gentoo/etc/make.conf
|
Varování:
Nevybírejte žádná IPv6 zrcadla - naše stage soubory je v současné době
neumožňují použít.
|
Druhé důležité nastavení je proměnná SYNC, opět v souboru
make.conf. Obsahuje jméno rsync serveru, který chcete používat pro
synchronizaci svého Portage stromu (sbírky souborů ebuild, skriptů
obsahujících vše, co Portage potřebuje pro stažení a instalaci softwaru). I
když můžete nastavit proměnnou RSYNC ručně (pro použití v České republice
je doporučená hodnota rsync://rsync.europe.gentoo.org/gentoo-portage),
mirrorselect Vám může ulehčit práci:
Výpis kódu 1.2: Výběr rsync mirroru pomocí mirrorselect |
# mirrorselect -i -r -o >> /mnt/gentoo/etc/make.conf
|
Po použití nástroje mirrorselect je doporučeno překontrolovat
nastavení v souboru /mnt/gentoo/etc/make.conf!
Kopírování nastavení DNS
Ještě je potřeba zkopírovat nastavení DNS z instalačního CD do nového
systému, aby síť správně pracovala i nadále. Tyto informace jsou uloženy
v souboru /etc/resolv.conf.
Výpis kódu 1.3: Kopírování informací o DNS |
# cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf
|
Připojení souborových systémů /proc a /dev
Připojte souborový systém /proc do /mnt/gentoo/proc,
aby instalace v novém prostředí mohla využívat informace poskytované
jádrem, a rovněž zpřístupněte i systém /dev:
Výpis kódu 1.4: Připojení /proc a /dev |
# mount -t proc none /mnt/gentoo/proc
# mount -o bind /dev /mnt/gentoo/dev
|
Vstup do nového prostředí
Nyní jsou všechny diskové oddíly inicializovány a základní prostředí připraveno,
můžeme do něj tedy vstoupit. Použijeme k tomu chroot, proces je
proto také nazýván chrooting. Aktivní prostředí se změní
z instalačního média (například z instalačního CD) do nově
instalovaného systému (do nového prostředí).
Chroot je tvořen třemi kroky. Nejprve změníme aktuální root
z / (na instalačním médiu) na /mnt/gentoo (na
nově inicializovaných oddílech), poté vytvoříme nové prostředí pomocí
env-update (vytvoření proměnných prostředí) a nakonec tyto proměnné
načteme do paměti přes source.
Výpis kódu 1.5: Chroot do nového prostředí |
# chroot /mnt/gentoo /bin/bash
# env-update
>> Regenerating /etc/ld.so.cache...
# source /etc/profile
# export PS1="(chroot) $PS1"
|
Gratulujeme! Nyní jste uvnitř svého nového Gentoo Linuxu. Samozřejmě ještě
zdaleka nejste hotovi, proto Vám ostatně také ještě zbývá pár kapitol :-)
6.b. Konfigurace Portage
Aktualizace stromu Portage
Nyní byste měli aktualizovat svůj Portage strom na nejnovější verzi. emerge
--sync to zařídí:
Výpis kódu 2.1: Aktualizace stromu Portage |
# emerge --sync
# emerge --sync --quiet
|
Blokuje-li Váš firewall protokol rsync, můžete použít emerge-webrsync,
který stáhne a nainstaluje aktualizovaný strom Portage jinou metodou.
Pokud dostanete varování, že je k dispozici nová verze Portage a že byste
jej měli zaktualizovat, je dobré tak učinit. Aktualizaci Portage provedete
příkazem emerge portage.
Výběr správného profilu
Nejprve si vysvětlíme, co profil znamená.
Profil je základ každého Gentoo systému. Nejen, že specifikuje výchozí hodnoty
CHOST, CFLAGS a jiných důležitých proměnných, ale zároveň nastavuje, jaké verze
balíčků bude systém používat. Toto vše udržují vývojáři Gentoo.
Dříve se uživatelé o profily téměř vůbec nezajímali. Avšak na architekturách
x86, hppa a alpha je nyní možné zvolit z více možností; je k dispozici
jeden profil pro jádra řady 2.4 a jeden pro řadu 2.6. Bez dvou profilů by se
integrace jader řady 2.6 zkomplikovala. Rovněž uživatelé architektur ppc a ppc64
mají k dispozici více profilů; detaily budou zmíněny později.
Zjistit, jaký profil právě používáte, můžete tímto příkazem:
Výpis kódu 2.2: Ověření systémového profilu |
# ls -FGg /etc/make.profile
lrwxrwxrwx 1 48 Apr 8 18:51 /etc/make.profile -> ../usr/portage/profiles/default-linux/x86/2006.0/
|
Používáte-li jednu z výše zmíněných tří architektur, výchozí profil používá
jádro řady 2.6. Toto nastavení je doporučené, ale máte možnost jej změnit.
Někteří uživatelé mohou chtít nainstalovat systém založený na starším profilu
využívajícím linuxové jádro řady 2.4. Máte-li k tomu dobrý důvod, nejprve
se přesvědčte o tom, že takový profil existuje. Na architektuře x86 použijte
tento příkaz:
Výpis kódu 2.3: Zjištění, zda další profil existuje |
# ls -d /usr/portage/profiles/default-linux/x86/no-nptl/2.4
/usr/portage/profiles/default-linux/x86/no-nptl/2.4
|
Ve výše uvedeném příkladu vidíte, že hledaný profil existuje (tj. příkaz
ls si nestěžoval na nenalezený soubor či adresář). Profil není doporučeno
měnit, avšak chcete-li tak učinit, máte možnost:
Výpis kódu 2.4: Přepnutí na profil 2.4 |
# ln -snf /usr/portage/profiles/default-linux/x86/no-nptl/2.4 /etc/make.profile
# ls -FGg /etc/make.profile/
total 12
-rw-r--r-- 1 939 Dec 10 14:06 packages
-rw-r--r-- 1 347 Dec 3 2004 parent
-rw-r--r-- 1 573 Dec 3 2004 virtuals
|
Pro ppc je ve verzi 2006.0 k dispozici několik nových profilů.
Výpis kódu 2.5: PPC profily |
# ln -snf /usr/portage/profiles/default-linux/ppc/ppc32/2006.0 /etc/make.profile
# ln -snf /usr/portage/profiles/default-linux/ppc/ppc32/2006.0/G3 /etc/make.profile
# ln -snf /usr/portage/profiles/default-linux/ppc/ppc32/2006.0/G3/Pegasos/ /etc/make.profile
# ln -snf /usr/portage/profiles/default-linux/ppc/ppc32/2006.0/G4 /etc/make.profile
# ln -snf /usr/portage/profiles/default-linux/ppc/ppc32/2006.0/G4/Pegasos/ /etc/make.profile
|
Podobně i pro ppc64:
Výpis kódu 2.6: PPC64 profily |
# ln -snf /usr/portage/profiles/default-linux/ppc/ppc64/2006.0/64bit-userland /etc/make.profile
# ln -snf /usr/portage/profiles/default-linux/ppc/ppc64/2006.0/32bit-userland /etc/make.profile
# ln -snf /usr/portage/profiles/default-linux/ppc/ppc64/2006.0/(userland)/970 /etc/make.profile
# ln -snf /usr/portage/profiles/default-linux/ppc/ppc64/2006.0/(userland)/970/pmac /etc/make.profile
# ln -snf /usr/portage/profiles/default-linux/ppc/ppc64/2006.0/(userland)/power3 /etc/make.profile
# ln -snf /usr/portage/profiles/default-linux/ppc/ppc64/2006.0/(userland)/power4 /etc/make.profile
# ln -snf /usr/portage/profiles/default-linux/ppc/ppc64/2006.0/(userland)/power5 /etc/make.profile
|
Nastavení USE proměnných
USE je jedna z nejmocnějších proměnných, které Gentoo nabízí.
Programy mohou být zkompilovány s podporou různých rozšíření, například
GTK nebo QT, jiné s a nebo bez podpory SSL, některé s podporou
framebufferu (svgalib) namísto X11 (X-serveru).
Většina distribucí kompiluje balíčky s podporou co nejvíce věcí, což
způsobuje značnou velikost programů a delší čas spouštění, o ohromném množství
závislostí ani nemluvě. Proto jsme zavedli USE.
Pomocí proměnné USE definujete klíčová slova, která jsou promítnuta do
voleb pro kompilaci. Například ssl aktivuje podporu SSL
v programech, které ji mohou využít. Nastavení gnome gtk -kde -qt
zkompiluje Vaše programy s podporou GTK a GNOME a bez KDE a QT, takže bude
Váš systém vyladěn pro GNOME.
Výchozí hodnoty USE jsou umístěny v souboru
make.defaults Vašeho profilu. Tento soubor najdete v adresáři,
kam ukazuje /etc/make.profile, a v jeho nadřazených adresářích.
Výchozí nastavení USE jsou výsledkem kombinace všech souborů
make.defaults. To, co umístíte do svého
/etc/make.conf, je zpracováváno po výchozích nastaveních - pokud
něco přidáte, přidá se to i do výsledku, pokud něco uberete (provádí se
to znaménkem mínus před konkrétní USE volbou), bude daná možnost ze seznamu
USE proměnných odstraněna, pokud v nich vůbec byla. Nikdy neměňte
nic uvnitř adresáře /etc/make.profile, tato nastavení by byla
ztracena při aktualizaci Portage!
Celkový popis USE proměnných můžete nalézt ve druhé části Gentoo Handbooku, USE proměnné. Ve Vašem systému je popis uložen
v souboru /usr/portage/profiles/use.desc.
Výpis kódu 2.7: Zobrazení dostupných USE proměnných |
# less /usr/portage/profiles/use.desc
|
Jako příklad si uvedeme nastavení USE pro systém založený na KDE
s podporou DVD, ALSA a vytváření CD:
Výpis kódu 2.8: Otevření /etc/make.conf |
# nano -w /etc/make.conf
|
Výpis kódu 2.9: Nastavení USE |
USE="-gtk -gnome qt kde dvd alsa cdr"
|
Volitelně: lokalizační nastavení GLIBC
Pravděpodobně budete používat pouze jedno či dvě lokalizační nastavení
(locales). Zadejte je do souboru /etc/locale.gen.
Výpis kódu 2.10: Editace /etc/locale.gen |
# nano -w /etc/locale.gen
|
Následující nastavení jsou příkladem, jak povolit angličtinu (Spojené Státy) a
češtinu (Česká republika) s odpovídajícími kódováními (například UTF-8):
Výpis kódu 2.11: Určení locales |
en_US ISO-8859-1
en_US.UTF-8 UTF-8
cs_CZ ISO-8859-2
cs_CZ.UTF-8 UTF-8
|
Nyní je na čase spustit locale-gen. Tento příkaz se postará o
vygenerování všech potřebných locales, jak jste určili v souboru
/etc/locale.gen.
Poznámka:
locale-gen je obsažena v balíčku glibc-2.3.6-r4 a novějších.
Pokud používáte starší verzi, může být nyní vhodná doba pro jeho aktualizaci.
|
Nyní pokračujte konfigurací jádra.
7. Konfigurace kernelu
8. Konfigurace systému
8.a. Informace o souborových systémech
Co je to fstab?
Pod Linuxem musí být všechny používané oddíly zapsány v souboru
/etc/fstab, který obsahuje informace o přiřazení přípojných bodů
jednotlivým diskovým oddílům a různé další informace (například zda připojovat
automaticky, zda je může připojit běžný uživatel atd.).
Vytvoření /etc/fstab
/etc/fstab má speciální skladbu - každý řádek sestává ze šesti
polí oddělených nějakým druhem mezery (jedna či více obyčejných mezer,
tabulátor,...). Každé políčko má vlastní význam:
-
První pole specifikuje oddíl - cestu k blokovému zařízení, na
kterém je souborový systém uložen.
-
Druhé pole určuje přípojný bod - místo, kam se má filesystém připojit.
-
Jako třetí je specifikován typ souborového systému.
-
Čtvrté pole je určeno pro volby používané programem mount pro
připojování oddílu. Každý typ souborového systému má své vlastní povolené
parametry, pro jejich přehled použijte man mount (zobrazení manuálové
stránky). Jednotlivé volby se oddělují čárkami.
-
Páté pole je používáno programem dump pro určení, zda má být tento
oddíl tímto způsobem zálohován. Políčku můžete klidně ponechat
hodnotu 0 (nula).
-
Šesté pole používá program fsck pro určení pořadí, ve kterém
se bude provádět kontrola souborových systémů v případě, že
systém nebyl řádně ukončen. Kořenový filesystém by zde měl mít uvedeno
1, ostatní 2 (případně 0, nevyžadují-li kontrolu).
Důležité:
Výchozí /etc/fstab, který je obsažen v Gentoo, není
přímo použitelný, budete si muset vytvořit vlastní.
|
Výpis kódu 1.1: Otevření /etc/fstab |
# nano -w /etc/fstab
|
Nakonec přidáme pravidla pro /proc, tmpfs a pro CD-ROM
mechaniku, a samozřejmě pokud máte další disky nebo oddíly, tak i pro ně.
Pojme tedy vytvořit soubor /etc/fstab:
Volba auto říká programu mount, aby se snažil uhádnout použitý
systém souborů; hodí se to pro výměnná média, kde se můžete setkat s více
možnostmi. Volba user umožňuje připojit CD i pro obyčejné uživatele.
Pro zlepšení výkonu je dobré přidate volbu noatime. Při přistupu
k souborům nebude muset docházet k aktualizaci informace o času
posledního přístupu, která většinou ani není potřeba.
Soubor po sobě překontrolujte, uložte a ukončete editor.
8.b. Informace o síti
Jméno počítače, domény,...
Další z voleb, kterou musí uživatel podstoupit, je pojmenování svého
stroje. Zdá se to jednoduché, ale ve skutečnosti má mnoho uživatelů
problémy s výběrem správného jména. Nebojte se, naštěstí jde kdykoliv
změnit. Dále budeme používat jméno tux a doménu domacisit. Nejprve
nastavíme jméno počítače, hostname:
Výpis kódu 2.1: Nastavení hostname |
# nano -w /etc/conf.d/hostname
HOSTNAME="tux"
|
Nyní jméno domény, tentokrát v /etc/conf.d/net:
Výpis kódu 2.2: Natavení jména domény |
# nano -w /etc/conf.d/net
dns_domain_lo="domacisit"
|
Máte-li NIS doménu (pokud nevíte, co to je, tak ji nemáte), nastavte ji:
Výpis kódu 2.3: Nastavení jména NIS domény |
# nano -w /etc/conf.d/net
nis_domain_lo="my-nisdomain"
|
Nastavení sítě
Předtím, než podlehnete pocitu "ale to už jsme přece udělali", měli byste si
uvědomit, že nastavení sítě provedené před instalací bylo pouze dočasné pro
její potřeby; nyní nakonfigurujete síť nastálo.
Poznámka:
Detailnější informace o nastavení sítí včetně pokročilých oblastí jako bonding,
bridging, 802.1Q VLANy nebo bezdrátové sítě najdete v části Konfigurace sítě v Gentoo.
|
Všechny potřebné informace jsou shromážděny v souboru
/etc/conf.d/net. Jeho formát je vcelku přímočarý, avšak nevíte-li,
jak nastavit síť ručně, nemusí Vám připadat zrovna intuitivní. Ale nebojte se,
všechno si vysvětlíme :-). Ukázkovou konfiguraci doplněnou mnoha komentáři
naleznete v souboru /etc/conf.d/net.example.
Výchozí volba je nastavení přes DHCP, abyste jej však mohli používat, budete si
muset nainstalovat DHCP klienta. Instrukce naleznete v části o instalaci nezbytných systémových
nástrojů. Nezapomeňte DHCP klienta nainstalovat.
Potřebujete-li nakonfigurovat Vaše síťové připojení (například kvůli dalšímu
nastavení DHCP nebo pro ruční konfiguraci), otevřete
/etc/conf.d/net ve svém oblíbeném editoru (v tomto
příkladu použijeme nano):
Výpis kódu 2.4: Editace /etc/conf.d/net |
# nano -w /etc/conf.d/net
|
Uvidíte toto:
Výpis kódu 2.5: Výchozí /etc/conf.d/net |
# This blank configuration will automatically use DHCP for any net.*
# scripts in /etc/init.d. To create a more complete configuration,
# please review /etc/conf.d/net.example and save your configuration
# in /etc/conf.d/net (this file :]!).
|
Pro zadání vlastní IP adresy, masky sítě a brány potřebujete nastavit
config_eth0 a routes_eth0:
Výpis kódu 2.6: Ruční nastavení IP adresy pro eth0 |
config_eth0=( "192.168.0.2 netmask 255.255.255.0 brd 192.168.0.255" )
routes_eth0=( "default gw 192.168.0.1" )
|
Chcete-li použít DHCP a ovlivnit jeho chování, definujte proměnné
config_eth0 a dhcp_eth0:
Výpis kódu 2.7: Automatické získání IP adresy pro eth0 |
config_eth0=( "dhcp" )
dhcp_eth0="nodns nontp nonis"
|
Pro přehled všech dostupných voleb se prosím podívejte do souboru
/etc/conf.d/net.example.
Máte-li více síťových rozhraní, aplikujte výše uvedený postup na
config_eth1, config_eth2, atd.
Nyní uložte konfiguraci a ukončete editor.
Automatické spouštění sítě při startu
Aby byla Vaše síťová rozhraní spuštěna během bootu systému, musíte přidat
skript do výchozího runlevelu. Máte-li PCMCIA rozhraní, měli byste tento krok
přeskočit, protože taková rozhraní jsou spouštěna init skriptem pro PCMCIA.
Výpis kódu 2.8: Přidání net.eth0 do výchozího runlevelu |
# rc-update add net.eth0 default
|
Máte-li více síťových rozhraní, musíte vytvořit odpovídající initskripty
net.eth1, net.eth2,... Můžete pro to použít
příkaz ln:
Výpis kódu 2.9: Vytvoření dalších initskriptů |
# cd /etc/init.d
# ln -s net.lo net.eth1
# rc-update add net.eth1 default
|
Informace o síti
Dále budete muset systému sdělit některé informace o síti. Pro převod
(resolving) jmen strojů na IP adresy se jako doplněk služby DNS používá soubor
/etc/hosts. Tento soubor by měl obsahovat informace o stroji, který
právě instalujete, a pokud ve své síti nepoužíváte službu DNS, tak i o
dalších počítačích.
Výpis kódu 2.10: Otevření souboru /etc/hosts |
# nano -w /etc/hosts
|
Výpis kódu 2.11: Vyplnění informací o síti |
127.0.0.1 tux.domacisit tux localhost
192.168.0.5 janicka.domacisit janicka
192.168.0.6 barborka.domacisit barborka
|
Změny uložte a ukončete editor.
8.c. Systémové informace
Heslo superuživatele root
Nejprve nastavíme rootovské heslo:
Výpis kódu 3.1: Nastavení rootovského hesla |
# passwd
|
Přejete-li si, aby se mohl root přihlašovat i přes sériovou konzoli, přidejte
tts/0 do souboru /etc/securetty:
Výpis kódu 3.2: Přidání tts/0 do /etc/securetty |
# echo "tts/0" >> /etc/securetty
|
Systémové informace
Pro všeobecnou konfiguraci systému používá Gentoo soubor
/etc/rc.conf. Otevřete jej a užijte si jeho přehlednou dokumentaci
v podobě komentářů :-)
Výpis kódu 3.3: Otevření /etc/rc.conf |
# nano -w /etc/rc.conf
|
Až provedete potřebné změny, soubor /etc/rc.conf uložte a ukončete
editor.
Jak vidíte, soubor je velmi dobře okomentován, což by Vám mělo pomoci
s nastavením nezbytných proměnných. Určíte, zda má systém používat
Unicode a nastavíte výchozí editor a display manager (grafické přihlašování,
například gdm nebo kdm).
Klávesové mapy se v Gentoo nastavují pomocí souboru
/etc/conf.d/keymaps.
Výpis kódu 3.4: Editace /etc/conf.d/keymaps |
# nano -w /etc/conf.d/keymaps
|
Dejte pozor na správnou hodnotu KEYMAP, jinak může psaní na klávesnici
dopadnout podivně.
Až dokončíte konfiguraci souboru /etc/conf.d/keymaps, uložte
jej a ukončete editor.
Nastavení voleb ovlivňujících hodiny je v souboru
/etc/conf.d/clock; změňte jej podle Vašich potřeb.
Výpis kódu 3.5: Editace /etc/conf.d/clock |
# nano -w /etc/conf.d/clock
|
Neběží-li Vaše hardwarové hodiny v UTC, je potřeba navíc přidat řádek
CLOCK="local", jinak mohou být posunuté.
Až budete hotovi s konfigurací souboru /etc/conf.d/clock, uložte
jej a ukončete editor.
Pokračujte instalací nezbytných systémových
nástrojů.
9. Instalace nezbytných systémových nástrojů
9.a. Device Manager
Používáte-li jádro řady 2.4 a instalujete-li Gentoo ze stage 3,
je potřeba, abyste podnikli několik kroků. Protože Gentoo nyní
ve výchozím nastavení používá udev, který není podporován pod jádry 2.4,
musíte použít devfsd a udev odebrat.
Výpis kódu 1.1: Instalace devfsd |
# emerge --unmerge udev
# emerge devfsd
|
9.b. Systémový logger
Některé nástroje ve stage3 obsaženy nejsou, protože pro ně existuje
více různých implementací. Nyní je na vás, abyste se rozhodli, jaké z nich
budete chtít nainstalovat.
První takový nástroj se stará o zaznamenávání různých událostí -- chcete-li,
můžete vše, co se v systému děje, zaznamenávat (logovat) do logovacích
souborů, do logů. Tuto činnost obstarává systémový logger.
S Gentoo si můžete vybrat z několika různých loggerů. Nabízíme
sysklogd, tradiční záznamník, syslog-ng, pokročilý logger, a
vysoce konfigurovatelný metalog. Další mohou být dostupné přes Portage -
počet balíčků roste každým dnem.
Plánujete-li používat sysklogd nebo syslog-ng, nejspíše budete
poté chtít nainstalovat také logrotate, protože tyto záznamníky
neposkytují žádnou funkci pro rotaci logovacích souborů.
Instalaci systémového loggeru provedete příkazem emerge. Nezapomeňte
záznamník rovněž přidat do výchozího runlevelu pomocí rc-update.
Následující příklad demonstruje instalaci balíčku syslog-ng, samozřejmě
jej můžete nahradit za jakýkoli jiný:
Výpis kódu 2.1: Instalace systémového loggeru |
# emerge syslog-ng
# rc-update add syslog-ng default
|
9.c. Volitelně: démon cron
Další na řadě je démon cron. Tento krok je sice volitelný, avšak v každém
případě se vyplatí. Cron démon slouží k plánování provádění příkazů; hodí
se tehdy, když potřebujete něco pravidelně spouštět, ať už jednou za den, týden
nebo třeba měsíc.
Gentoo Vám nabízí hned tři možné crony: dcron, fcron a
vixie-cron. Instalace jednoho z nich je podobná instalaci
systémového loggeru. dcron a fcron však navíc vyžadují další
konfigurační příkaz, konkrétně crontab /etc/crontab. Nevíte-li, jaký
cron si vybrat, zvolte vixie-cron.
Pro instalace bez použití sítě je dostupný pouze vixie-cron. Chcete-li
používat jiný, musíte s jeho instalací počkat na později.
Výpis kódu 4.6: Instalace cron démona |
# emerge vixie-cron
# rc-update add vixie-cron default
# crontab /etc/crontab
|
9.d. Volitelně: indexování souborů
Chcete-li indexovat soubory ve svém systému pro rychlejší vyhledávání nástrojem
locate, musíte nejdříve nainstalovat sys-apps/slocate:
Výpis kódu 4.1: Instalace slocate |
# emerge slocate
|
9.e. Nástroje pro souborové systémy
Podle toho, jaký systém souborů jste si zvolili, budete potřebovat nainstalovat
potřebné nástroje, například pro kontrolu filesystémů, vytváření dalších atd.
Následující tabulka podává přehled potřebných nástrojů pro jednotlivé souborové
systémy:
| Systém souborů |
Nástroj |
Příkaz pro instalaci |
| XFS |
xfsprogs |
emerge xfsprogs |
| ReiserFS |
reiserfsprogs |
emerge reiserfsprogs |
| JFS |
jfsutils |
emerge jfsutils |
Jste-li uživatel EVMS, musíte nainstalovat balíček evms:
Výpis kódu 5.1: Instalace nástrojů pro EVMS |
# USE="-gtk" emerge evms
|
Nastavení USE="-gtk" zabrání instalaci závislostí. Pokud budete chtít
používat grafické nástroje pro evms, budete moci tento balíček
přeinstalovat později.
Nepotřebujete-li žádné další balíčky související se síťováním, jako například
rp-pppoe nebo DHCP klienta, pokračujte konfigurací bootloaderu.
9.f. Nástroje pro síť
Volitelně: instalace DHCP klienta
Požadujete-li, aby Gentoo automaticky nastavilo IP adresu Vašich síťových
rozhraní, musíte nejprve nainstalovat DHCP klienta, například dhcpcd.
Neučiníte-li tak nyní, nebudete se moci po instalaci připojit k Internetu!
Výpis kódu 6.1: Instalace dhcpcd |
# emerge dhcpcd
|
Volitelně: instalace klienta PPPoE
Potřebujete-li pro připojení k síti rp-pppoe, nainstalujte jej:
Výpis kódu 6.2: Instalace rp-pppoe |
# USE="-X" emerge rp-pppoe
|
Proměnná USE="-X" zabrání instalaci xorg-x11 jako závislosti
(rp-pppoe obsahuje grafické nástroje; potřebujete-li je, můžete
rp-pppoe překompilovat později a nebo nechat xorg-x11
nainstalovat teď, což však zabere poměrně hodně času).
Volitelně: Nástroje pro RAID na systémech IBM
Používáte-li SCSI RAID na systémech založených na POWER5, měli byste zvážit
instalaci balíčku iprutils, který mimo jiné umožňuje pracovat
s diskovým polem, zkontrolovat stav disků v polích nebo aktualizovat
mikrokód.
Výpis kódu 6.3: Instalace iprutils |
# emerge iprutils
|
Nyní pokračujte konfigurací bootloaderu.
10. Konfigurace bootloaderu
10.a. Vyberte si
Úvod
Po kompilaci jádra, instalaci nezbytných systémových nástrojů a další
konfiguraci nastal nyní čas nainstalovat program, který po startu systému jádro
načítá, tzv. bootloader (zavaděč).
Pro Linux na platformě Alpha existuje více různých bootloaderů. Jeden
z nich si nyní budete muset vybrat; volit můžete mezi aBoot a MILO.
Poznámka:
aboot umí bootovat pouze z oddílů typu ext2 a ext3.
|
10.b. Výchozí: použití aBootu
Nejprve si aboot nainstalujte, jak jinak, než přes emerge:
Výpis kódu 2.1: Instalace aboot |
# emerge aboot
|
Dále zařídíme, aby se dalo z bootdisku bootovat, čili aby se po spuštění
systému aktivoval aboot. Zapíšeme tedy aboot na začátek disku.
Výpis kódu 2.2: Učiňme bootdisk bootovatelným |
# swriteboot -f3 /dev/sda /boot/bootlx
# abootconf /dev/sda 2
|
Poznámka:
Pokud jste se rozhodli rozdělit disk jinak, než jak uvádějí naše příklady,
budete muset některé příkazy poupravit. Přečtěte si prosím odpovídající
manuálové stránky (man 8 swriteboot a man 8 abootconf). Pokud pro
root filesystém používáte JFS, ujistěte se, že se zprvu připojí pouze pro čtení
- přidejte jádru parametr ro.
|
Pokud chcete, aby Gentoo botovalo automaticky, musíte nastavit konfigurační
soubor abootu a některé SRM proměnné. Můžete se o to pokusit přímo
z Linuxu, avšak snazší to může být přímo ze SRM konzole.
Výpis kódu 2.3: Automatické bootování Gentoo |
# echo '0:2/boot/vmlinux.gz root=/dev/sda2' > /etc/aboot.conf
# cd /proc/srm_environment/named_variables
# echo -n 0 > boot_osflags
# echo -n '' > boot_file
# echo -n 'BOOT' > auto_action
# echo -n 'dkc100' > bootdef_dev
|
Pokud se do SRM konzoly budete chtít někdy v budoucnu vrátit (třeba pro
opravu instalace, hraní si s některými proměnnými nebo jen tak), stačí
během bootu stisknout CTRL+C.
Instalujete-li přes sériovou konzoli, nezapomeňte odpovídajícím způsobem
nastavit aboot.conf, pro další informace viz
/etc/aboot.conf.example.
Aboot je nyní nakonfigurovaný a připraven k použití. Pokračujte prosím
rebootem systému.
10.c. Alternativní: použití MILO
Před pokračováním byste se měli rozhodnout, jak budete MILO používat.
V této sekci budeme předpokládat, že chcete použít MILO bootovací disketu.
Hodláte-li bootovat z MS-DOS oddílu na disku, změňte příslušné příkazy.
Pro instalaci MILO použijeme příkaz emerge.
Výpis kódu 3.1: Instalace MILO |
# emerge --usepkg milo
|
Po instalaci najdete image MILO v adresáři /opt/milo.
Následující příkazy připraví bootovací disketu; nezapomeňte použít správný image
podle konkrétního systému.
Výpis kódu 3.2: Instalace MILO na disketu |
# fdformat /dev/fd0
# mformat a:
# mcopy /opt/milo/milo-2.2-18-gentoo-ruffian a:\milo
# mcopy /opt/milo/linload.exe a:\linload.exe
# mcopy /opt/milo/ldmilo.exe a:\ldmilo.exe
# echo -ne '\125\252' | dd of=/dev/fd0 bs=1 seek=510 count=2
|
Vaše MILO disketa nyní umí bootovat Gentoo Linux. Možná budete potřebovat
nastavit proměnné prostředí v ARCS firmwaru; vše je popsáno v MILO-HOWTO spolu s příklady
nastavení na běžných systémech a použitím příkazů v interaktivním režimu.
Pokud si nechcete přečíst
MILO-HOWTO, neděláte
dobře.
Nyní pokračujte restartem systému.
10.d. Restart systému
Opusťte chrootované prostředí a odpojte všechny připojené oddíly. Pak zadejte
onen magický příkaz, na který jste tolik čekali: reboot.
Výpis kódu 4.1: Ukončení chrootu, odpojení všech oddílů a reboot |
# exit
cdimage ~# cd
cdimage ~# umount /mnt/gentoo/boot /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo
cdimage ~# reboot
|
Nezapomeňte vyjmout bootovací CD, jinak místo nového systému Gentoo naběhne
znovu jen CD.
Až se nově nainstalovaný systém Gentoo spustí, pokračujte dokončením instalace.
11. Dokončení instalace Gentoo
11.a. Správa uživatelů
Přidání uživatelského účtu pro každodenní použití
Pracovat jako root je nebezpečné a měli byste se toho pokud možno
vyvarovat. Proto je silně doporučeno přidat pro běžné použití další
uživatelský účet.
Skupiny, do kterých účet patří, určují, jaké činnosti mu jsou povoleny.
Následující tabulka obsahuje seznam důležitých skupin, které byste mohli chtít
použít:
| Skupina |
Popis |
| audio |
umožní přístup ke zvukovým zařízením |
| cdrom |
umožní přímý přístup k optickým mechanikám |
| floppy |
umožní přímý přístup k disketovým mechanikám |
| games |
umožní hrát hry |
| portage |
povolí použití emerge --pretend pod běžným uživatelem |
| usb |
umožní přístup k USB zařízením |
| plugdev |
povolí připojovat a používat připojitelná zařízení jako fotoaparáty či USB disky
|
| video |
umožní přistupovat k zařízením pro záznam videa a hardwarovou
akceleraci
|
| wheel |
dovolí použít su
|
Pokud například chcete vytvořit uživatele jenicek, který bude patřit do
skupin wheel, users a audio, přihlašte se nejprve jako
root (který jako jediný může přidávat nové uživatele) a spusťte useradd:
Výpis kódu 1.1: Přidání uživatele pro běžné použití |
Login: root
Password:
# useradd -m -G users,wheel,audio -s /bin/bash jenicek
# passwd jenicek
Password:
Re-enter password:
|
Pokud uživatel potřebuje vykonat nějakou činnost s právy roota, může
k jejich dočasnému získání použít příkaz su -. Další možnost
poskytuje balíček sudo, který, pokud je správně nastaven, je velmi
bezpečný.
12. Co dělat teď?
12.a. Dokumentace
Blahopřejeme! Nyní máte funkční systém s Gentoo. Ale kam jít teď? Jaké máte
další možnosti? Co zkoumat nejdřív? Gentoo nabízí svým uživatelům spoustu
možností, a tedy i mnoho více či méně zdokumentovaných vlastností.
Určitě byste měli věnovat pár chvil další části této příručky, nesoucí název
Práce s Gentoo, která vysvětluje postup při
instalaci dalšího softwaru, jeho aktualizacích, použití USE proměnných, způsob
práce Gentoo init systému atd.
Pokud Vás zajímá optimalizace Vašeho systému pro desktopové použití nebo se
jej chcete naučit nastavit tak, aby se z něj stal plnohodnotný desktopový
systém, nahlédněte do rozsáhlé Dokumentace Gentoo pro desktop.
Také doporučujeme lokalizační
příručku, abyste se v systému cítili více doma.
Za přečtení stojí také Gentoo bezpečnostní
příručka.
Kompletní soupis dokumentace naleznete na stránce Gentoo dokumentační zdroje.
12.b. Gentoo Online
Samozřejmě jste kdykoliv vítáni na našem Gentoo Fóru nebo na některém z mnoha
Gentoo IRC kanálů.
Také provozujeme několik poštovních
konferencí, které jsou otevřené pro všechny uživatele. Způsob registrace
je popsán na výše uvedené stránce.
Ale teď už zmlkneme a necháme Vás užívat si svou novou instalaci :)
B. Práce s Gentoo
1. Úvod do Portage
1.a. Vítejte do Portage
Portage je pravděpodobně jedna z nejvýznamnějších inovací v oblasti
správy softwaru. Díky své vysoké flexibilitě a širokému rozsahu možností je
často pokládáno za nejlepší dostupný nástroj pro správu softwaru pod Linuxem.
Portage je celé napsáno ve skriptovacích jazycích
Pythonu a
Bash, a proto i otevřené
vůči uživatelům.
Většina uživatelů se s Portage setká prostřednictvím nástroje
emerge. Tato kapitola nesupluje jeho manuálovou stránku, ve které
najdete kompletní popis možností:
Výpis kódu 1.1: Zobrazení manuálové stránky emerge |
$ man emerge
|
1.b. Strom Portage
Ebuildy
Mluvíme-li o balíčcích, často myslíme softwarové produkty dostupné přes strom
Portage, strukturu obsahující sbírku ebuildů, souborů obsahujících
všechny informace potřebné ke správě softwaru (instalace, vyhledávání,...).
Ve výchozím nastavení jsou tyto soubory uloženy
v /usr/portage.
Kdykoli požádáte Portage, aby podniklo nějakou akci, použije ebuildy
z Vašeho systému jako základ. Proto je důležité, abyste je pravidelně
aktualizovali, aby Portage vědělo o nových verzích, bezpečnostních
aktualizacích atd.
Aktualizace stromu Portage
Strom Portage je obvykle aktualizován přes rsync, rychlý nástroj pro inkrementální
synchronizaci. Celý proces je jednoduchý, protože příkaz emerge
sám zavolá rsync:
Výpis kódu 2.1: Aktualizace stromu Portage |
# emerge --sync
|
Nelze-li kvůli omezení firewallem použít rsync, stále můžete aktualizovat
pomocí denně vytvářených snapshotů stromu. Nástroj emerge-webrsync
automaticky stáhne a nainstaluje poslední dostupnou verzi:
Výpis kódu 2.2: Spuštění emerge-webrsync |
# emerge-webrsync
|
1.c. Správa softwaru
Vyhledávání softwaru
Pro vyhledávání ve stromu Portage můžete rovněž použít příkaz
emerge. emerge --search vrátí jména balíčků, jejichž název
alespoň částečně odpovídá zadanému výrazu.
Například pro zobrazení všech balíčků obsahujících v názvu "pdf":
Výpis kódu 3.1: Hledání balíčků pojmenovaných po pdf |
$ emerge --search pdf
|
Chcete-li prohledávat i popisy, můžete použít volbu --searchdesc (nebo
-S):
Výpis kódu 3.2: Hledání balíčků souvisejících s PDF |
$ emerge --searchdesc pdf
|
Podíváte-li se na výstup, uvidíte, že podává velké množství informací. Vše je
jasně popsáno, proto nebudeme vysvětlovat, co která řádka znamená:
Výpis kódu 3.3: Ukázka výstupu 'emerge --search' |
* net-print/cups-pdf
Latest version available: 1.5.2
Latest version installed: [ Not Installed ]
Size of downloaded files: 15 kB
Homepage: http://cip.physik.uni-wuerzburg.de/~vrbehr/cups-pdf/
Description: Provides a virtual printer for CUPS to produce PDF files.
License: GPL-2
|
Instalace softwaru
Když naleznete balíček, který se Vám líbí, můžete ho snadno nainstalovat pomocí
emerge; jednoduše zadáte jeho jméno. Například pokud Vás zaujal
gnumeric:
Výpis kódu 3.4: Instalujeme gnumeric |
# emerge gnumeric
|
Protože mnoho aplikací závisí na jiných, pokus o jejich instalaci může způsobit
i jejich instalaci. Není však žádný důvod k obavám, Portage se o
závislosti postará samo. Chcete-li vědět, co by Portage nainstalovalo
"navíc", přidejte volbu --pretend, například takto:
Výpis kódu 4.15: Jak by se nainstaloval gnumeric |
# emerge --pretend gnumeric
|
Požádáte-li Portage o instalaci konkrétního balíčku, je-li potřeba, samo stáhne
potřebné zdrojové kódy z Internetu, uloží je (ve výchozím nastavení)
do /usr/portage/distfiles, rozbalí, zkompiluje a nainstaluje je.
Chcete-li, aby proběhlo pouze stažení a ne samotná instalace, přidejte volbu
--fetchonly:
Výpis kódu 3.6: Stažení zdrojových kódů pro gnumeric |
# emerge --fetchonly gnumeric
|
Dokumentace nainstalovaných balíčků
Mnoho balíčků je dodáváno s vlastní dokumentací, někdy pouze při použití
USE proměnné doc. Její nastavení můžete ověřit pomocí příkazu emerge
-vp <jméno balíčku>.
Výpis kódu 3.7: Kontrola USE proměnné doc |
# emerge -vp alsa-lib
[ebuild N ] media-libs/alsa-lib-1.0.9_rc3 +doc -jack 674 kB
|
USE proměnná doc může být nastavena buď globálně v souboru
/etc/make.conf nebo pro konkrétní balíčky v souboru
/etc/portage/package.use. Podrobnější informace o tomto tématu
najdete v kapitole USE proměnné.
Jakmile je balíček nainstalovaný, jeho dokumentace se většinou nalézá
v podadresáři pojmenovaném podle balíčku uvnitř adresáře
/usr/share/doc. Také si můžete zobrazit seznam všech
nainstalovaných souborů pomocí nástroje equery z balíčku app-portage/gentoolkit.
Výpis kódu 3.8: Dokumentace balíčků |
# ls -l /usr/share/doc/alsa-lib-1.0.9_rc3
total 28
-rw-r--r-- 1 root root 669 May 17 21:54 ChangeLog.gz
-rw-r--r-- 1 root root 9373 May 17 21:54 COPYING.gz
drwxr-xr-x 2 root root 8560 May 17 21:54 html
-rw-r--r-- 1 root root 196 May 17 21:54 TODO.gz
# equery files alsa-lib | less
media-libs/alsa-lib-1.0.9_rc3
* Contents of media-libs/alsa-lib-1.0.9_rc3:
/usr
/usr/bin
/usr/bin/alsalisp
|
Odebrání softwaru
Když chcete ze svého systému odebrat softwarový balíček, použijte příkaz
emerge --unmerge, který odebere všechny soubory patřící danému balíčku
kromě konfiguračních souborů, pokud od instalace došlo k jejich
změně. Tyto soubory jsou v systému ponechány pro případ, že byste se
v budoucnu rozhodli balíček znovu nainstalovat.
Avšak zde je na místě velké varování - Portage
nekontroluje, zda balíček, který chcete odebrat, není vyžadován jako
závislost jiného balíčku. Varování však dostanete, pokusíte-li se odebrat
důležitý balíček nutný pro chod systému.
Výpis kódu 3.9: Odstranění gnumeric ze systému |
# emerge --unmerge gnumeric
|
Odinstalace balíčku neovlivní jeho závislosti, ty v systému zůstanou
nainstalované. Pokud chcete, aby Portage nalezl všechny balíčky, které již
nemají důvod v systému být, použijte volbu --depclean příkazu
emerge, toto bude popsáno později.
Aktualizace systému
Aby byl Váš systém v dobrém stavu (o bezpečnostních aktualizacích ani
nemluvě), je potřeba ho pravidelně aktualizovat. Protože Portage pracuje pouze
s ebuildy ve Vašem místním stromu Portage, je potřeba nejprve
aktualizovat jej. Zbytek systému se zaktualizuje pomocí emerge --update
world. V následujícím příkladu navíc použijeme i přepínač --ask,
který Portage požádá o zobrazení aktualizovaných balíčků a vyžádá si váš
souhlas s dalším postupem:
Výpis kódu 3.10: Aktualizace systému |
# emerge --update --ask world
|
Tento příkaz řekne Portage, aby se pokusilo nainstalovat novější verze od všech
balíčků, jež máte nainstalované. Bude se však zabývat pouze těmi, které jste
explicitně nainstalovali, ne jejich závislostmi. Budete-li chtít provést
aktualizaci všech přítomných balíčků, přidejte parametr --deep:
Výpis kódu 3.11: Aktualizace celého systému |
# emerge --update --deep world
|
Protože jsou bezpečnostní aktualizace vydávány i pro balíčky, které
v systému nemáte nainstalovány přímo, ale jako závislosti jiných programů,
je doporučeno občas tento příkaz spustit.
V případě, že jste nedávno změnili nastavení USE proměnných, pravděpodobně budete chtít
přidat i parametr --newuse. Portage pozná změnu nastavení a balíček podle
něj překompiluje:
Výpis kódu 3.12: Úplná aktualizace |
# emerge --update --deep --newuse world
|
Metabalíčky
Některé balíčky nemají žádný skutečný obsah, ale slouží k instalaci určité
skupiny balíčků. Například balík kde nainstaluje kompletní prostředí
KDE, protože má v závislostech uvedeny všechny potřebné balíčky.
Když byste chtěli takový balíček odinstalovat, emerge --unmerge Vám moc
nepomůže, protože závislosti v systému zůstávají.
Portage samozřejmě umí najít a odstranit i takovéto osiřelé závislosti, ale
protože se tyto závislosti dynamicky mění, je potřeba nejprve plně
zaktualizovat systém, včetně následků případných změn USE proměnných. Poté již
můžete spustit emerge --depclean pro odstranění balíčků, jež nejsou
potřeba, a nakonec znovu přeložit balíčky, které jsou dynamicky linkovány
s nyní odebraným softwarem, ale nevyžadují je.
Toho všeho dosáhnete těmito třemi příkazy:
Výpis kódu 3.13: Ostranění nepotřebných závislostí |
# emerge --update --deep --newuse world
# emerge --depclean
# revdep-rebuild
|
revdep-rebuild je součástí balíčku gentoolkit; nezapomeňte si ho
nainstalovat:
Výpis kódu 3.14: Instalace balíčku gentoolkit |
# emerge gentoolkit
|
1.d. Když si Portage stěžuje...
O SLOTech, virtuálech, větvích, architekturách a profilech
Jak již bylo řečeno, Portage je mocný nástroj mající mnoho vlastností, které
jiné nástroje pro správu softwaru postrádají. Pro lepší představu popíšeme
některé jeho aspekty, aniž bychom zabíhali do větší hloubky.
S Portage není problém mít více verzí jednoho balíčku v systému
najednou. Jiné distribuce často pojmenovávají své balíčky včetně verzí (jako
například freetype a freetype2), Portage používá technologii
SLOTů. Ebuild deklaruje, do kterého SLOTu daná verze patří, a ebuildy
s různými SLOTy mohou existovat vedle sebe. Například ebuildy balíčku
freetype mají SLOT="1" a SLOT="2".
Existují balíčky poskytující shodné funkce, avšak různými způsoby. Například
metalogd, sysklogd a syslog-ng jsou systémové loggery, a
proto uspokojí závislost aplikace vyžadující "syslog". Taková aplikace nemůže
záviset například na balíčku metalogd, protože existují i jiné loggery.
Proto přichází Portage s konceptem virtuálů - každý systémový
logger poskytuje virtual/syslog, a proto mohou aplikace záviset právě na
této hodnotě.
Software ve stromu Portage se může nacházet ve více větvích.
Ve výchozím nastavení se Portage zabývá pouze softwarem, který Gentoo
považuje za stabilní. Když je do stromu přidán nový balíček, jde většinou
nejprve do testovací větve, což znamená, že před tím, než bude označen jako
stabilní, musí projít více testy. Ebuildy jsou již sice součástí stromu, avšak
Portage je nepoužije, dokud nepřejdou do stabilní větve.
Některý software je dostupný pouze pro pár architektur, nebo na některých
nefunguje, případně ještě vyžaduje testování. Je také možné, že vývojář, který
balíček do stromu umístil, není schopen ověřit, zda je software funkční na
jiných architekturách.
Každá instalace Gentoo se řídí určitým profilem, který obsahuje, kromě
dalších informací, seznam balíčků nutných pro normální chod systému.
Blokované balíčky
Výpis kódu 4.1: Varování Portage o blokovaných balíčcích (s --pretend) |
[blocks B ] mail-mta/ssmtp (is blocking mail-mta/postfix-2.2.2-r1)
|
Výpis kódu 4.2: Varování Portage o blokovaných balíčcích (bez --pretend) |
!!! Error: the mail-mta/postfix package conflicts with another package.
!!! both can't be installed on the same system together.
!!! Please use 'emerge --pretend' to determine blockers.
|
Ebuildy v sobě obsahují informaci, podle které Portage určuje závislosti.
Jsou dva druhy závislostí: závislosti pro překlad, deklarované pomocí
DEPEND, a závislosti pro běh programu, deklarované v sekci
RDEPEND. Když jedna z nich označí balíček nebo virtuál jako
nekompatibilní, nastane blokování.
Pro vyřešení blokování máte dvě možnosti - nový balíček nemusíte instalovat, a
nebo odstraníte balík vytvářející konflikt. Ve výše uvedeném příkladu
se buď můžete rozhodnout nenainstalovat postfix a nebo nejprve
odstranit ssmtp.
Je také možné, že se mají nainstalovat dva balíčky, které se však navzájem
blokují. Pokud tento případ nastane (což se neděje nijak často), měli byste
zvážit, k čemu je potřebujete oba; pokud najdete nějaký důvod, budeme rádi,
když nám jej ohlásíte prostřednictvím Bugzilly.
Zamaskované balíčky
Výpis kódu 4.3: Varování Portage o zamaskovaných balíčcích |
!!! all ebuilds that could satisfy "bootsplash" have been masked.
|
Výpis kódu 4.4: Varování Portage o zamaskovaných balíčcích - důvod |
!!! possible candidates are:
- gnome-base/gnome-2.8.0_pre1 (masked by: ~x86 keyword)
- lm-sensors/lm-sensors-2.8.7 (masked by: -sparc keyword)
- sys-libs/glibc-2.3.4.20040808 (masked by: -* keyword)
- dev-util/cvsd-1.0.2 (masked by: missing keyword)
- media-video/ati-gatos-4.3.0 (masked by: package.mask)
- sys-libs/glibc-2.3.2-r11 (masked by: profile)
|
Když se pokusíte nainstalovat balíček, který není pro Váš systém dostupný,
dočkáte se takovéto chyby. Měli byste buď nainstalovat jiný podobný balíček a
nebo počkat, než ten Vámi vybraný bude dostupný. Vždy je důvod, proč je
konkrétní balíček nedostupný:
-
~arch keyword znamená, že balíček ještě není dostatečně otestovaný
pro stabilní větev. Počkejte pár dní nebo týdnů a zkuste to znovu.
-
-arch keyword nebo -* keyword znamená, že aplikace nepracuje
na Vaší architektuře. Věříte-li, že ano, vyplňte oznámení o chybě
v naší bugzille.
-
missing keyword znamená, že aplikace ještě nebyla na Vaší
architektuře testována. Zeptejte se týmu starajícího se o portování na danou
architekturu, případně balíček rovnou vyzkoušejte a oznamte své výsledky
přes naší bugzillu.
-
package.mask znamená, že je balíček poškozený, nestabilní nebo
něco ještě horšího, a byl po zralé úvaze označen "nepoužívejte".
-
profile znamená, že balíček není vhodný pro Váš profil. Aplikace
může poškodit Váš systém, pokud ji nainstalujete, a nebo prostě není
s Vámi používaným profilem kompatibilní.
Chybějící závislosti
Výpis kódu 4.5: Varování Portage o chybějící závislosti |
emerge: there are no ebuilds to satisfy ">=sys-devel/gcc-3.4.2-r4".
!!! Problem with ebuild sys-devel/gcc-3.4.2-r2
!!! Possibly a DEPEND/*DEPEND problem.
|
Aplikace, kterou se pokoušíte nainstalovat, závisí na jiné, které na Vašem
systému není dostupná. Prosím přesvědčte se, zda naše bugzilla o problému ví, a pokud ne, ohlaste
ho, prosím. Pokud nekombinujete více větví, neměla by taková situace nastat a
je to tudíž chyba.
Nejednoznačná jména ebuildů
Výpis kódu 4.6: Varování Portage o nejednoznačných jménech balíčků |
!!! The short ebuild name "aterm" is ambiguous. Please specify
!!! one of the following fully-qualified ebuild names instead:
dev-libs/aterm
x11-terms/aterm
|
Aplikace, kterou chcete nainstalovat, má stejné jméno, jako jiný balíček, a
proto je potřeba, abyste uvedli i jméno kategorie. Portage Vám dá vybrat
z možných řešení.
Kruhové závislosti
Výpis kódu 4.7: Varování Portage o kruhových závislostech |
!!! Error: circular dependencies:
ebuild / net-print/cups-1.1.15-r2 depends on ebuild / app-text/ghostscript-7.05.3-r1
ebuild / app-text/ghostscript-7.05.3-r1 depends on ebuild / net-print/cups-1.1.15-r2
|
Dva (nebo více) balíčky, které chcete nainstalovat, na sobě navzájem závisí, a
proto nemohou být nainstalovány. Toto je velmi pravděpodobně chyba
ve stromu Portage, a proto prosím zkuste znovu sesynchronizovat svoji
kopii z Internetu o chvíli později, a pokuste se instalaci opakovat. Také
se můžete podívat do bugzilly, zda je
problém znám, a pokud ne, ohlásit ho.
Selhání stažení
Výpis kódu 4.8: Varování Portage o selhání stažení |
!!! Fetch failed for sys-libs/ncurses-5.4-r5, continuing...
!!! Some fetch errors were encountered. Please see above for details.
|
Portage nebylo schopné stáhnout zdrojové kódy dané aplikace a bude pokračovat
instalací dalšího softwaru (pokud to půjde). Tato chyba může být způsobena
zrcadlem, které nebylo správně synchronizované, nebo ebuildem, který se pokouší
stáhnout špatný soubor. Je také možné, že server, na kterém jsou soubory
umístěny, je zrovna z nějakého důvodu nedostupný.
Zkuste to znovu za hodinu, problém pravděpodobně vymizí.
Ochrana profilem systému
Výpis kódu 4.9: Varování Portage o ochraně balíčku profilem |
!!! Trying to unmerge package(s) in system profile. 'sys-apps/portage'
!!! This could be damaging to your system.
|
Chcete odebrat balíček, který tvoří důležitou část systému. Je uveden
v profilu jako vyžadovaný, a proto by neměl být ze systému odstraněn.
2. USE proměnné
2.a. Co jsou USE proměnné?
Proč USE proměnné
Při instalaci Gentoo (nebo jakékoli jiné distribuce, a dokonce i jakéhokoli
operačního systému) činíte volby závisející na prostředí, se kterým
pracujete. Nastavení pro server je jiné než nastavení pro pracovní stanici.
Stanice určená pro hry je jiná než stanice pro renderování 3D grafiky.
Tyto volby se nevztahují jenom na výběr balíčků, ale týkají se i vlastností,
které by měl daný balíček poskytovat. Nebudete-li používat OpenGL, nač ho
instalovat a proč aktivovat jeho podporu v jiných balíčcích? Nechcete-li
používat KDE, proč byste měli aktivovat jeho podporu v balíčcích, které
bezchybně fungují i bez ní?
Abychom uživatelům usnadnili rozhodování co aktivovat a co ne, chceme od nich,
aby jednoduše specifikovali své prostředí. To je přiměje k tomu, že si
rozmyslí, co vlastně potřebují, a umožní Portage, našemu systému pro správu
balíčků, užitečné rozhodování.
Definice USE proměnné
Vítejte do USE proměnných. Tyto proměnné (USE flags) jsou klíčová slova
obsahující podporu a informace o závislosti pro konkrétní oblast. Když definujete
nějakou USE proměnnou, dáváte tím Portage vědět, že chcete podporu pro danou
funkci. To samozřejmě ovlivní závislosti balíčků.
Pojďme se podívat na konkrétní příklad - klíčové slovo kde. Pokud jej
nemáte v proměnné USE, všechny balíčky, které mají volitelnou
podporu pro KDE budou zkompilovány bez ní. Balíčky, které mají KDE
uvedeno jako volitelnou závislost, nebudou instalovat knihovny
z KDE. Naopak přidáte-li kde do USE proměnné, budou tyto
balíčky zkompilovány s podporou KDE a knihovny z tohoto prostředí
budou nainstalovány jako závislosti.
Správným nastavením této proměnné dostanete systém ušitý na míru Vaším potřebám.
Jaké USE proměnné existují?
Jsou dva druhy USE proměnných - globální a lokální.
-
Globální USE proměnnou používá více balíčků z celého systému.
Tento druh USE proměnných je to, čemu většina lidí říká USE proměnné.
-
Lokální USE proměnné jsou používané jedním balíčkem pro rozhodnutí,
která se týkají pouze jej samotného.
Seznam dostupných globálních USE proměnných je k dispozici na webu nebo na Vašem systému v souboru
/usr/portage/profiles/use.desc.
Seznam dostupných lokálních USE proměnných je v nainstalovaném systému
dostupný v souboru /usr/portage/profiles/use.local.desc.
2.b. Používáme USE proměnné
Deklarace stálých USE proměnných
Doufejme, že jste již přesvědčeni o důležitosti USE proměnných; nyní Vám
ukážeme, jak je používat.
Jak jsme již zmínili, USE flagy se nastavují v proměnné USE. Abychom
usnadnili uživatelům život, existují výchozí nastavení USE, která
reflektují to, co si myslíme, že bude používat většina uživatelů Gentoo Linuxu.
Tato výchozí nastavení jsou deklarována v souboru
make.defaults a jsou součást profilu.
Profil, kterým se Váš systém řídí, je určen symbolickým odkazem
/etc/make.profile. Konečné nastavení je kombinací celého stromu
profilů, z nichž hlavní se jmenuje base
(/usr/portage/profiles/base).
Podívejme se na výchozí nastavení pro profil 2004.3:
Výpis kódu 4.15: Celkové nastavení proměnné USE pro profil 2004.3 |
USE="x86 oss apm arts avi berkdb bitmap-fonts crypt cups encode fortran f77
foomaticdb gdbm gif gpm gtk imlib jpeg kde gnome libg++ libwww mad
mikmod motif mpeg ncurses nls oggvorbis opengl pam pdflib png python qt
quicktime readline sdl spell ssl svga tcpd truetype X xml2 xmms xv zlib"
|
Jak vidíte, poměrně hodně klíčových slov je již aktivních. Neměňte
žádná nastavení v souboru make.defaults - změny v tomto
souboru budou potlačeny při aktualizaci Portage.
Chcete-li změnit tato výchozí nastavení, musíte změnit proměnnou USE. Celý
systém ovlivní její nastavení v souboru /etc/make.conf.
USE proměnné můžete přidávat i odebírat; odstranění se provádí přidáním znaménka
mínus ("-") před dané klíčové slovo.
Například pro odstranění podpory KDE a QT a zároveň aktivaci podpory pro LDAP
nastavte USE v souboru /etc/make.conf takto:
Výpis kódu 2.2: Ukázka nastavení USE proměnné v /etc/make.conf |
USE="-kde -qt ldap"
|
Individuální nastavení USE proměnných
Někdy je potřeba nastavit USE proměnnou pro jeden (nebo více) balíčků, avšak ne
pro celý systém. V takovém případě musíte vytvořit adresář
/etc/portage (pokud ještě neexistuje) a použít soubor
/etc/portage/package.use.
Například nechcete-li mít většinu systému zkompilovanou s podporou
berkdb, avšak chcete ji používat v mysql, měli byste přidat:
Výpis kódu 2.3: Ukázka /etc/portage/package.use |
dev-db/mysql berkdb
|
Je také možné danou USE proměnnou pro daný balíček zakázat. Například
pokud nechcete mít aktivovanou java v PHP:
Výpis kódu 2.4: Druhý příklad /etc/portage/package.use |
dev-php/php -java
|
Dočasná nastavení USE proměnných
Někdy můžete chtít nastavit určitou USE proměnnou pouze jednou. Namísto
dvojnásobné editace /etc/make.conf (nejprve změna nastavení a poté
uvedení do původního stavu) můžete použít USE jako proměnnou prostředí. Avšak
pamatujte, že při aktualizaci dané aplikace (ať už explicitně jí samotné a nebo
při aktualizaci systému) o svá nastavení přijdete!
Jako příklad dočasně zakážeme Javu během instalace Mozilly.
Výpis kódu 2.5: Použití USE jako proměnné prostředí |
# USE="-java" emerge mozilla
|
Přednosti
Nastavení USE proměnných se řídí určitými pravidly o přednosti. Například může
být zbytečné deklarovat USE="-java" jen abyste zjistili, že je definovaná
jinde a s vyšší prioritou. USE proměnné jsou zpracovávány v tomto
pořadí (počínaje nejnižší prioritou):
-
výchozí nastavení USE deklarované v souboru make.defaults
uvnitř profilu
-
uživatelem definovaná nastavení v /etc/make.conf
-
uživatelem definovaná nastavení v /etc/portage/package.use
-
uživatelem definovaná nastavení předaná jako proměnná prostředí
Pro zobrazení výsledných nastavení USE proměnných spusťte emerge --info;
tato volba zajistí zobrazení všech proměnných, které Portage použije, včetně
USE.
Výpis kódu 2.6: Zobrazení emerge --info |
# emerge --info
|
Promítnutí změn USE proměnných do systému
Změnili-li jste nastavení USE proměnných a přejete-li si, aby se tyto změny
promítly do systému, použijte volbu --newuse příkazu emerge:
Výpis kódu 2.7: Rebuild systému |
# emerge --update --deep --newuse world
|
Nyní spusťte depclean (součást Portage), který odstraní závislosti, které již
nejsou kvůli změněným USE proměnným potřeba.
Varování:
Spouštění emerge --depclean je nebezpečná operace a měli byste na ní dát
pozor. Překontrolujte, zda jsou "zbytečné" balíčky opravdu zbytečné, abyste si
neodstranili něco, co potřebujete. V následujícím příkladu přidáme parametr
-p, který zajistí, že depclean pouze vypíše seznam balíčků, aniž by je
odstranil.
|
Výpis kódu 2.8: Odstranění nepotřebných balíčků |
# emerge -p --depclean
|
Až depclean skončí, spusťte revdep-rebuild pro nový překlad aplikací, jež
jsou dynamicky linkované se sdílenými objekty patřícími možná odstraněným
balíčkům. revdep-rebuild je součástí balíčku gentoolkit;
nezapomeňte si ho nejprve nainstalovat.
Výpis kódu 2.9: Spuštění revdep-rebuild |
# revdep-rebuild
|
Až toto vše proběhne, bude Váš systém používat nová nastavení USE proměnných.
2.c. USE proměnné pro specifické pro balíčky
Zobrazení dostupných USE proměnných
Podívejme se kupříkladu na Mozillu - jaké USE proměnné ji ovlivní? Pro jejich
zobrazení předejte emerge parametry --pretend a --verbose:
Výpis kódu 3.1: Zobrazení použitých USE proměnných |
# emerge --pretend --verbose mozilla
These are the packages that I would merge, in order:
Calculating dependencies ...done!
[ebuild R ] www-client/mozilla-1.7.12-r2 USE="crypt gnome java mozsvg ssl
truetype xprint -debug -ipv6 -ldap -mozcalendar -mozdevelop -moznocompose
-moznoirc -moznomail -moznoxft -postgres -xinerama" 0 kB
|
emerge není jediný nástroj vhodný k tomuto účelu.
Ve skutečnosti existuje nástroj pro informace o balíčcích jménem
equery, který je opět součástí balíčku gentoolkit. Nejprve jej
tedy nainstalujme:
Výpis kódu 3.2: Instalace gentoolkitu |
# emerge gentoolkit
|
Nyní spusťte equery s argumentem uses, což zobrazí přehled
USE proměnných používaných daným balíčkem. Kupříkladu pro balíček
gnumeric:
Výpis kódu 3.3: Použití equery pro přehled aktivních USE proměnných |
# equery uses gnumeric
[ Colour Code : set ]
[ Legend : (U) Col 1 - Current USE flags ]
[ : (I) Col 2 - Installed With USE flags ]
U I [ Found these USE variables in : app-office/gnumeric-1.2.0 ]
- - : Adds GNU Data Access (CORBA wrapper) support for gnumeric
- - : unknown
+ + python : Adds support/bindings for the Python language
+ + bonobo : Adds support for gnome-base/bonobo (Gnome CORBA interfaces)
|
3. Možnosti Portage — FEATURES
3.a. Možnosti Portage (FEATURES)
Aby se Vám s Gentoo lépe pracovalo, nabízí Portage mnoho dalších možností.
Některé z nich závisí na různých doplňkových nástrojích vylepšujících výkon,
spolehlivost, bezpečnost,...
Pro povolení nebo zakázání určité možnosti musíte změnit proměnnou
FEATURES v souboru /etc/make.conf, která obsahuje
různé hodnoty oddělené mezerami. V některých případech budete navíc muset
doinstalovat příslušný nástroj, na kterém daná funkce závisí.
V tomto dokumentu nebudou popsány všechny funkce, které Portage umí; pro
jejich kompletní přehled se podívejte na manuálovou stránku
make.conf:
Výpis kódu 1.1: Zobrazení manuálové stránky make.conf |
$ man make.conf
|
Abyste zjistili, jaké možnosti jsou zapnuty, podívejte se do výstupu
emerge --info na proměnnou FEATURES:
Výpis kódu 1.2: Které FEATURES jsou již zapnuté? |
$ emerge --info | grep FEATURES
|
3.b. Distribuované kompilace
Použití distcc
distcc slouží pro rozdělení kompilace mezi více strojů v síti, které
navíc nemusí být nutně stejné. Klient distcc posílá dostupným serverům, na
kterých běží distccd, všechny potřebné informace, takže mohou kompilovat
části zdrojového kódu paralelně. Výsledkem je celkové urychlení kompilace.
Více informací o distcc a o jejím použití s Gentoo můžete najít
v Gentoo distcc dokumentaci.
Instalace distcc
Distcc je dodávaná s grafickým nástrojem pro monitorování úkolů, které Váš
počítač požaduje od ostatních. Používáte-li Gnome, přidejte do USE proměnnou
'gnome', pokud ne, a přesto chcete mít tento nástroj k dispozici, přidejte
'gtk'.
Výpis kódu 2.1: Instalace distcc |
# emerge distcc
|
Aktivace podpory v Portage
V souboru /etc/make.conf přidejte do proměnné FEATURES hodnotu
distcc. Dále je potřeba změnit nastavení MAKEOPTS; známé pravidlo je
hodnota "-jX", kde X je celkový počet procesorů, na kterých běží distccd
(včetně počítače, který posílá požadavky na kompilace) plus jedna, avšak můžete
dosáhnout lepších výsledků i s jinými hodnotami.
Nyní spusťte distcc-config a zadejte seznam dostupných distcc serverů.
Popíšeme si jednoduchý příklad, kde budeme používat servery 192.168.1.102
(počítač, na kterém nyní pracujeme), 192.168.1.103 a 192.168.1.104 ("vzdálené"
stroje):
Výpis kódu 2.2: Nastavení distcc pro použití tří serverů |
# distcc-config --set-hosts "192.168.1.102 192.168.1.103 192.168.1.104"
|
Nezapomeňte spustit démona distccd:
Výpis kódu 2.3: Spuštění démonu distccd |
# rc-update add distccd default
# /etc/init.d/distccd start
|
3.c. Vyrovnávací paměť kompilace (cache)
Představujeme ccache
ccache je rychlá vyrovnávací paměť (cache) kompilátoru, která si
zapamatuje výsledek každého překladu. V případě, že budete chtít
překompilovat stejný program později, se tak celý proces podstatně urychlí, pro
běžné aplikace přibližně pětkrát až desetkrát.
Pokud Vás zajímají výhody i nevýhody ccache, navštivte prosím její
domovskou stránku.
Instalace ccache
Pro instalaci ccache spusťte emerge ccache:
Výpis kódu 3.1: Instalace ccache |
# emerge ccache
|
Aktivace podpory v Portage
Otevřete soubor /etc/make.conf a přidejte ccache do proměnné
FEATURES. Navíc vytvořte další proměnnou CCACHE_SIZE a nastavte ji na hodnotu
"2G":
Výpis kódu 3.2: Změna CCACHE_SIZE v /etc/make.conf |
CCACHE_SIZE="2G"
|
Abyste zjistili, zda ccache funguje, požádejte ji o zobrazení statistiky.
Protože Portage používá pro ccache jiný domovský adresář, musíte nastavit
proměnnou CCACHE_DIR:
Výpis kódu 3.3: Zobrazení statistiky ccache |
# CCACHE_DIR="/var/tmp/ccache" ccache -s
|
Adresář /var/tmp/ccache je výchozí umístění domovského adresáře
ccache pro Portage. Chcete-li jej přesunout jinam, změňte proměnnou
CCACHE_DIR v souboru /etc/make.conf.
Když však spouštíte ccache ručně, snaží se používat adresář
${HOME}/.ccache. Při dotazech na využití ccache Portage proto
musíte použít proměnnou CCACHE_DIR.
Použití ccache pro C kompilace mimo Portage
Chcete-li používat ccache i pro kompilace mimo Portage, musíte přidat
/usr/lib/ccache/bin na začátek proměnné PATH (před
/usr/bin). Dosáhnete toho editací souboru
/etc/env.d/00basic, který obsahuje první definici proměnné
prostředí PATH:
Výpis kódu 3.4: Editace /etc/env.d/00basic |
PATH="/usr/lib/ccache/bin:/opt/bin"
|
3.d. Podpora binárních balíčků
Vytváření předkompilovaných balíčků
Portage podporuje instalace z předkompilovaných balíčků. I když je samo
Gentoo kromě takzvaných GRP snapshotů neposkytuje, Portage je zpracovávat umí.
Pokud je balíček již nainstalován, můžete z něj vytvořit binární pomocí
quickpkg; pokud není, použijte emerge s parametrem
--buildpkg či --buildpkgonly.
Chcete-li, aby Portage vytvářelo předkompilované balíčky při každé instalaci,
přidejte do proměnné FEATURES hodnotu buildpkg.
Rozšířenější podporu vytváření předkompilovaných skupin balíčků poskytuje
catalyst; pro více informací si prosím přečtěte Referenční manuál
Catalyst (anglicky) a Catalyst často kladené dotazy
(anglicky).
Instalace předkompilovaných balíčků
Gentoo sice předkompilované balíčky přímo neposkytuje, ale můžete si je vytvořit
sami. Pokud se tak rozhodnete, musíte Portage informovat, kde je má hledat,
a to pomocí proměnné PORTAGE_BINHOST. Ukládáte-li například balíčky na
ftp://buildhost/gentoo, použijte:
Výpis kódu 4.1: Nastavení PORTAGE_BINHOST v /etc/make.conf |
PORTAGE_BINHOST="ftp://buildhost/gentoo"
|
Když chcete nainstalovat předkompilovaný balíček, přidejte --getbinpkg
k volbě --usepkg příkazu emerge. První zajistí stažení
předkompilovaného balíčku, druhá jeho použití namísto nové kompilace.
Chcete-li například nainstalovat gnumeric z předkompilovaného
balíčku, použijte toto:
Výpis kódu 4.2: Instalace gnumeric z předkompilovaného balíčku |
# emerge --usepkg --getbinpkg gnumeric
|
Více informací o předkompilovaných balíčcích najdete v manuálové stránce
příkazu emerge:
Výpis kódu 4.3: Manuálová stránka příkazu emerge |
$ man emerge
|
4. Init skripty
4.a. Runlevely
Boot systému
Během bootování systému si pravděpodobně všimnete toho, jak po monitoru ubíhá
poměrně hodně textu. Budete-li pozorní, zjistíte, že při každém rebootu jde o
ty samé informace. Pořadí těchto akcí se nazývá bootovací sekvence a je
(do značné míry) pevně daná.
Nejprve bootloader načte do paměti obraz jádra (určený v konfiguračním
souboru) a předá jej CPU k provedení. Kernel si poté zinicializuje potřebné
datové struktury a pochody a spustí proces init.
Tento proces postupně namountuje všechny potřebné souborové systémy (určeno
v /etc/fstab) a spustí různé soubory z adresáře
/etc/init.d, které se starají o spuštění služeb, které potřebujete
k bezproblémovému provozu počítače.
Nakonec, když jsou všechny skripty provedeny, aktivuje init terminály
(ve většině případů pouze virtuální konzole ukryté za Alt-F1,
Alt-F2 atd.) pomocí procesu agetty. Ten se postará o to, abyste se
byli schopni přihlásit - spustí login.
Init skripty
init samozřejmě neprovádí skripty z adresáře
/etc/init.d náhodně. Nejen, že dodržuje jejich správné pořadí,
ale provádí jenom ty, které má. Všechny potřebné informace má k dispozici
v adresáři /etc/runlevels.
Nejprve spouští init ty skripty z /etc/init.d, na
které vede odkaz z /etc/runlevels/boot. Většinou je pořadí
spouštění určeno abecedně, ale některé skripty obsahují informace o
závislostech, podle kterých systém zjistí, že je potřeba nejdříve spustit jiný
skript.
Po zpracování /etc/runlevels/boot pokračuje init skripty,
na které vede symbolický odkaz z in /etc/runlevels/default.
Znovu platí, že pořadí jejich spuštění je určeno abecedně, a případné
závislosti jsou dodrženy.
Jak init pracuje
Samozřejmě se init o tom všem nerozhoduje sám; potřebuje konfigurační
soubor, který mu říká, co má dělat. Tento soubor se jmenuje
/etc/inittab.
Pamatujete-li si na bootovací sekvenci, jistě si vzpomenete i na to, že jako
první byly připojeny potřebné souborové systémy. Tuto akci obstará následující
řádek v /etc/inittab:
Výpis kódu 1.1: Řádek inicializace systému v /etc/inittab |
si::sysinit:/sbin/rc sysinit
|
Tento řádek říká initu, že pro inicializaci systému musí spustit
/sbin/rc sysinit. Skript /sbin/rc se o ni postará; můžeme
tedy říci, že init toho moc nedělá - úkol pouze převede na jiný proces.
Jako druhý krok init provede všechny skripty, na které vedou symbolické
odkazy z /etc/runlevels/boot, viz tento řádek:
Výpis kódu 1.2: Pokračování inicializace systému |
rc::bootwait:/sbin/rc boot
|
O samotné provedení úkolu se opět stará skript rc. Povšimněte si, že
parametr předaný skriptu (boot) je zároveň i jméno použitého adresáře
uvnitř /etc/runlevels.
Nyní se init podívá do svého konfiguračního souboru, aby zjistil,
v jakém runlevelu má systém běžet. Řádka
z /etc/inittab:
Výpis kódu 1.3: Řádek initdefault |
id:3:initdefault:
|
V tomto případě (který bude používat většina uživatelů Gentoo) je číslo
runlevelu 3. init tedy zjistí, že musí spustit
runlevel 3:
Výpis kódu 1.4: Definice runlevelů |
l0:0:wait:/sbin/rc shutdown
l1:S1:wait:/sbin/rc single
l2:2:wait:/sbin/rc nonetwork
l3:3:wait:/sbin/rc default
l4:4:wait:/sbin/rc default
l5:5:wait:/sbin/rc default
l6:6:wait:/sbin/rc reboot
|
Opět vidíme, že řádka definující runlevel 3 používá ke spuštění
služeb skript rc, nyní s parametrem default. Parametr
předaný skriptu rc se znovu shoduje se jménem adresáře
z /etc/runlevels.
Až rc skončí svoji práci, init se rozhodne, jaké virtuální
konzole má aktivovat a jaké programy na nich spustit:
Výpis kódu 1.5: Definice virtualních konzolí |
c1:12345:respawn:/sbin/agetty 38400 tty1 linux
c2:12345:respawn:/sbin/agetty 38400 tty2 linux
c3:12345:respawn:/sbin/agetty 38400 tty3 linux
c4:12345:respawn:/sbin/agetty 38400 tty4 linux
c5:12345:respawn:/sbin/agetty 38400 tty5 linux
c6:12345:respawn:/sbin/agetty 38400 tty6 linux
|
Co je to runlevel?
Ukázali jsme, že se init při rozhodování o tom, do jakého
runlevelu vstoupit, drží číselného schématu. Runlevel je stav, ve
kterém Váš systém běží; váží se k němu skripty (skripty runlevelu nebo
init skripty), které musí být spuštěny, když systém do runlevelu vstupuje
a nebo jej ukončuje.
V Gentoo je definováno sedm runlevelů: tři pro vnitřní potřebu a čtyři
uživatelsky definované. Runlevely pro vnitřní potřebu jsou sysinit,
shutdown a reboot a dělají to, co jejich jména napovídají -
starají se o inicializaci systému, jeho vypnutí a restart.
Uživatelsky definované runlevely jsou ty, které používají podadresář
/etc/runlevels - boot, default,
nonetwork a single. Runlevel boot
spouští všechny nezbytné služby, které dále používají další runlevely.
Zbývající tři runlevely se odlišují počtem a druhy služeb, které spouští:
runlevel default slouží pro běžný chod systému,
nonetwork pro dobu, kdy není potřeba síť, a single
tehdy, je-li potřeba opravit systém.
Práce s init skripty
Skripty, které spouští proces rc, se nazývají init skripty. Každý
ze skriptů uložených v /etc/init.d může být spuštěn
s parametry start, stop, restart, pause,
zap, status, ineed, iuse, needsme,
usesme nebo broken.
Pro spuštění, zastavení a nebo restart služby (a zároveň všech služeb, které na
ní závisí), slouží parametry start, stop a restart:
Výpis kódu 1.6: Spuštění Postfixu |
# /etc/init.d/postfix start
|
Poznámka:
Pouze služby, které ji potřebují, jsou zastaveny nebo restartovány.
Další na ní závislé služby (ty, které ji používají, ale nepotřebují),
nejsou dotčeny.
|
Chcete-li zastavit službu, ale ne další služby, které na ní závisí, můžete
použít parametr pause:
Výpis kódu 1.7: Pozastavení Postfixu a ponechání dalších služeb naživu |
# /etc/init.d/postfix pause
|
Chcete-li vědět, v jakém stavu se daná služba právě nachází (zda běží, je
ukončená a nebo pozastavená), můžete použít argument status:
Výpis kódu 1.8: Informace o stavu Postfixu |
# /etc/init.d/postfix status
|
Říká-li informace o stavu, že služba běží, avšak Vy víte, že ne, můžete tuto
informaci změnit pomocí argumentu zap:
Výpis kódu 1.9: Změna informace o stavu služby postfix |
# /etc/init.d/postfix zap
|
Pro zjištění závislostí služby můžete použít iuse či ineed.
Parametr ineed vypíše seznam služeb, které služba aktuální ke svému
chodu opravdu potřebuje; iuse naproti tomu ukáže ty služby, které daná
služba používat může, ale ke správné funkci je nutně nevyžaduje.
Výpis kódu 1.10: Výpis všech služeb, na kterých Postfix závisí |
# /etc/init.d/postfix ineed
|
Podobně se můžete dotázat na služby, které danou službu potřebují
(needsme) nebo mohou používat (usesme):
Výpis kódu 1.11: Výpis všech služeb, které potřebují Postfix |
# /etc/init.d/postfix needsme
|
Konečně, je možné požádat i o výpis závislostí, které služba vyžaduje, ale
které chybí:
Výpis kódu 1.12: Výpis chybějících závislostí Postfixu |
# /etc/init.d/postfix broken
|
4.b. Práce s rc-update
Co je rc-update?
Init systém Gentoo používá pro rozhodování o pořadí spouštění služeb strom
závislostí. Protože jeho udržování je poměrně zdlouhavé a únavné, vytvořili jsme
nástroje, které správu runlevelů a init skriptů usnadňují.
Nástrojem rc-update můžete do runlevelu přidávat a odebírat skripty, a
on se sám postará o zavolání skriptu depscan.sh pro znovuvytvoření
stromu závislostí
Přidání a odebírání služeb
Během instalace Gentoo jste již init skripty přidávali do runlevelu "default".
Tehdy jste možná ještě neměli páru, k čemu onen "default" slouží, ale teď
už byste to vědět měli. Skript rc-update vyžaduje i druhý argument
definující akci k provedení: add, del nebo show.
Pro přidání či odebrání init skriptu jednoduše spusťte rc-update
s argumentem add (přidání) nebo del (odebrání) následovaným
jménem init skriptu a runlevelem. Například takto:
Výpis kódu 2.1: Odstranění Postfixu z výchozího runlevelu |
# rc-update del postfix default
|
Příkaz rc-update show zobrazí dostupné init skripty a patřičné runlevely,
ve kterých jsou skripty aktivní:
Výpis kódu 2.2: Informace o init skriptech |
# rc-update show
|
4.c. Konfigurace služeb
K čemu další konfigurace?
Init skripty mohou být poměrně komplexní, a proto není vhodné, aby je měnili
uživatelé sami, kvůli riziku zanesení chyb. Služby je však potřeba
konfigurovat, například někdy můžete potřebovat předat samotné službě další
parametry.
Druhým důvodem k tomu, abychom udržovali informace o konfiguraci mimo init
skript jsou aktualizace, resp. zamezení obavám o to, že o svoji konfiguraci
během aktualizace přijdete.
Adresář /etc/conf.d
Konfigurace služeb je v Gentoo snadná - každý konfigurovatelný init skript
má svůj soubor v adresáři /etc/conf.d. Kupříkladu
konfigurace init skriptu apache2 (/etc/init.d/apache2) se provádí
v souboru /etc/conf.d/apache2; tento obsahuje parametry
předávané serveru Apache 2 při jeho spuštění:
Výpis kódu 3.1: Proměnná definovaná v /etc/conf.d/apache2 |
APACHE2_OPTS="-D PHP4"
|
V těchto konfiguračních souborech nenajdete nic než proměnné, ovlivňující
chování daného init skriptu, a samozřejmě komentáře. Formát je podobný jako
v /etc/make.conf.
4.d. Psaní init skriptu
Musím?
Ne, psaní init skriptů většinou není nutné, protože Gentoo poskytuje skripty
připravené k použití. Avšak je možné, že jste si nainstalovali nějakou
službu, která není v Portage, a v takovém případě si budete muset
init skript pravděpodobně vytvořit.
Nepoužívejte init skript, který není napsaný přímo pro Gentoo -- formát jiných
distribucí není s naším kompatibilní!
Schéma
Základní uspořádání init skriptu je ukázáno níže:
Výpis kódu 4.1: Základní uspořádání init skriptu |
#!/sbin/runscript
depend() {
}
start() {
}
stop() {
}
restart() {
}
|
Každý init skript musí obsahovat funkci start(), všechny další
sekce jsou volitelné.
Závislosti
Můžete definovat dva druhy závislostí: use a need. Jak již bylo
zmíněno výše, need je striktnější než use. Obě dvě akceptují buď
jméno služby, kterou potřebujete či používáte a nebo virtuální závislost.
Virtuální závislost může být poskytovaná více službami. Váš init skript
může například záviset na systémovém loggeru, avšak protože jich je více
možných (metalogd, syslog-ng, sysklogd,...), a služba nemůže přes need
záviset na všech (žádný rozumný systém nemá všechny nainstalované a spuštěné),
použijete virtuální závislost, poskytovanou pomocí provide.
Podívejme se na na informace o závislostech pro službu postfix:
Výpis kódu 4.2: Informace o závislostech Postfixu |
depend() {
need net
use logger dns
provide mta
}
|
Jak můžete vidět, služba postfix:
-
vyžaduje (virtuální) závislost net (kterou poskytuje například
/etc/init.d/net.eth0)
-
používá (virtuální) závislost logger (kterou poskytuje například
/etc/init.d/syslog-ng)
-
používá (virtuální) závislost dns (kterou poskytuje například
/etc/init.d/named)
-
poskytuje (virtuální) závislost mta (která je společná pro všechny
mailservery)
Kontrola pořadí
V některých případech nebudete nějakou službu potřebovat, ale přejete si,
aby byla ta Vaše spuštěna před (before) nebo až po (after) nějaké
jiné, pokud je tato v systému přítomná (povšimněte si podmínky - již nejde
o závislost) a zároveň je ve stejném runlevelu (opět podmínka -
v úvahu jsou brány pouze služby ve stejném runlevelu). Takového
chování můžete dosáhnout pomocí nastavení before nebo after.
Jako příklad se podíváme na nastavení služby portmap:
Výpis kódu 4.3: Funkce depend() služby portmap |
depend() {
need net
before inetd
before xinetd
}
|
Také můžete použít metaznak "*", který znamená "všechny služby
v runlevelu", avšak není to doporučeno.
Výpis kódu 4.4: Spuštění init skriptu jako první v runlevelu |
depend() {
before *
}
|
Standardní funkce
Dále je potřeba definovat funkci start(), která musí obsahovat všechny
příkazy potřebné ke spuštění služby. Je dobré použít funkce ebegin
a eend, aby uživatel viděl, co se děje:
Výpis kódu 4.5: Ukázková funkce start() |
start() {
ebegin "Starting my_service"
start-stop-daemon --start --quiet --exec /path/to/my_service
eend $?
}
|
Potřebujete-li více příkladů funkce start(), přečtěte si, prosím,
zdrojové kódy dostupných init skriptů v adresáři /etc/init.d.
Příkaz start-stop-daemon má výbornou manuálovou stránku, potřebujete-li
další informace:
Výpis kódu 4.6: Zobrazení manuálové stránky start-stop-daemon |
# man start-stop-daemon
|
Další funkce, které můžete definovat, jsou stop a restart, není
to však povinné! Náš init systém je natolik inteligentní, že pokud používáte
start-stop-daemon, doplní si tyto funkce sám.
Syntaxe init skriptů používaných v Gentoo je kompatibilní s Bourne
Again Shellem (bash), čili v nich můžete používat rozšíření bashe.
Přidání vlastních možností
Chcete-li, aby Vaše init skripty podporovaly více voleb než ty, na které jsme
zatím narazili, měli byste je přidat do proměnné opts a definovat funkci
se jménem shodným, jako má daná možnost. Například pro volbu
restartdelay:
Výpis kódu 4.7: Podpora volby restartdelay |
opts="${opts} restartdelay"
restartdelay() {
stop
sleep 3
start
}
|
Proměnné pro konfiguraci služeb
Abyste mohli využívat konfiguraci v /etc/conf.d, nemusíte
dělat vůbec nic - když je váš skript spuštěn, provede se "source" všech těchto
souborů (tj. proměnné z nich budou k dispozici):
- /etc/conf.d/<Váš init skript>
- /etc/conf.d/basic
- /etc/rc.conf
Zároveň pokud Váš init skript poskytuje virtuální závislost (například
net), bude soubor s ní asociovaný rovněž zpracován (například
/etc/conf.d/net).
4.e. Změna výchozího chování
Kdo by to mohl použít?
Mnoho uživatelů notebooků tuto situaci zná - doma chcete spouštět
net.eth0, ale na cestách ne, protože během nich síť k dispozici
nemáte. S Gentoo můžete změnit chování runlevelů k obrazu svému.
Můžete si například přidat druhý "výchozí" runlevel, do kterého můžete
nabootovat, s přiřazenými patřičnými skripty. Při spuštění počítače si
budete moci vybrat, který runlevel se má zavést.
Používáme softlevel
Nejprve vytvořte adresář pro svůj "druhý" výchozí runlevel. Jako příklad
vytvoříme runlevel offline:
Výpis kódu 5.1: Vytvoření adresáře runlevelu |
# mkdir /etc/runlevels/offline
|
Přidejte nezbytné init skripty do nově vytvořeného adresáře. Například pokud
chcete mít přesnou kopii současného runlevelu default, avšak bez
net.eth0:
Výpis kódu 5.2: Přidání nezbytných init skriptů |
# cd /etc/runlevels/default
# for service in *; do rc-update add $service offline; done
# rc-update del net.eth0 offline
# rc-update show offline
acpid | offline
domainname | offline
local | offline
net.eth0 |
|
Nyní změňte konfiguraci svého bootloaderu a přidejte novou položku pro runlevel
default. Například pro /boot/grub/grub.conf:
Výpis kódu 5.3: Přidání položky pro runlevel offline |
title Gentoo Linux Offline Usage
root (hd0,0)
kernel (hd0,0)/kernel-2.4.25 root=/dev/hda3 softlevel=offline
|
Voilà, to je všechno. Když nyní při bootování Vašeho systému vyberete nově
přidanou položku, runlevel offline bude použit místo výchozího
default.
Používáme bootlevel
Použití bootlevelu je úplně stejné jako pro softlevel, jediný
rozdíl je, že místo druhého runlevelu "default" definujete druhý runlevel
"boot".
5. Proměnné prostředí
5.a. Proměnné prostředí?
Co to je
Proměnná prostředí je pojmenovaný objekt, který uchovává nějakou informaci
používanou jedno nebo více aplikacemi. Mnoho uživatelů (hlavně ti, kdo
s Linuxem nepracují déle) tato nastavení považují za divné nebo nesnadno
udržovatelné, není to však pravda: použití proměnných prostředí se dá
ve skutečnosti snadno ovlivnit nastavení celé řady aplikací jedinou změnou.
Důležité příklady
V následující tabulce naleznete několik důležitých proměnných prostředí,
které jsou použity na linuxových systémech, včetně jejich popisu. Ukázkové
hodnoty jsou popsány níže.
| Proměnná |
Popis |
| PATH |
Tato proměnná obsahuje dvojtečkou oddělený seznam adresářů, ve kterých
systém vyhledává spustitelné soubory. Zadáte-li jméno příkazu (jako
například ls, rc-update nebo emerge), avšak tento není
nalezen v žádném z těchto adresářů, systém jej nebude moci spustit
a budete muset použít plnou cestu (například /bin/ls).
|
| ROOTPATH |
Slouží ke stejné funkci jako PATH, avšak obsahuje seznam
procházených adresářů pro uživatele root.
|
| LDPATH |
Tato proměnná obsahuje dvojtečkou oddělený seznam adresářů procházených
dynamickým linkerem při hledání knihovny.
|
| MANPATH |
Dvojtečkou oddělený seznam adresářů, ve kterých příkaz man
vyhledává manuálové stránky.
|
| INFODIR |
Dvojtečkou oddělený seznam adresářů, ve kterých příkaz info
vyhledává informační stránky.
|
| PAGER |
Cesta k programu, který se používá pro výpis obsahu souborů (například
less nebo more).
|
| EDITOR |
Tato proměnná určuje cestu k programu, který se používá pro editaci
obsahu souborů (například nano nebo vi).
|
| KDEDIRS |
Obsahuje dvojtečkou oddělený seznam adresářů obsahujících data specifická
pro KDE.
|
| CLASSPATH |
Dvojtečkou oddělený seznam adresářů obsahujících Javové třídy (class).
|
| CONFIG_PROTECT |
Tato proměnná obsahuje mezerou oddělený seznam adresářů, které by
Portage mělo při aktualizacích chránit.
|
| CONFIG_PROTECT_MASK |
Tato proměnná obsahuje mezerou oddělený seznam adresářů, které by
Portage nemělo chránit během aktualizací.
|
Následují ukázky definic všech výše zmíněných proměnných:
Výpis kódu 1.1: Ukázkovy proměnných |
PATH="/bin:/usr/bin:/usr/local/bin:/opt/bin:/usr/games/bin"
ROOTPATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin"
LDPATH="/lib:/usr/lib:/usr/local/lib:/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3"
MANPATH="/usr/share/man:/usr/local/share/man"
INFODIR="/usr/share/info:/usr/local/share/info"
PAGER="/usr/bin/less"
EDITOR="/usr/bin/vim"
KDEDIRS="/usr"
CLASSPATH="/opt/blackdown-jre-1.4.1/lib/rt.jar:."
CONFIG_PROTECT="/usr/X11R6/lib/X11/xkb /opt/tomcat/conf \
/usr/kde/3.1/share/config /usr/share/texmf/tex/generic/config/ \
/usr/share/texmf/tex/platex/config/ /usr/share/config"
CONFIG_PROTECT_MASK="/etc/gconf"
|
5.b. Globální definice proměnných
Adresář /etc/env.d
Adresář /etc/env.d v Gentoo slouží k centralizaci správy
proměnných prostředí; naleznete v něm mnoho souborů, jako například
00basic, 05gcc atd., které obsahují definice
proměnných pro aplikace, po kterých jsou pojmenovány.
Například při instalaci gcc byl ebuildem vytvořen soubor
05gcc, který obsahuje definice těchto proměnných:
Výpis kódu 2.1: /etc/env.d/05gcc |
PATH="/usr/i686-pc-linux-gnu/gcc-bin/3.2"
ROOTPATH="/usr/i686-pc-linux-gnu/gcc-bin/3.2"
MANPATH="/usr/share/gcc-data/i686-pc-linux-gnu/3.2/man"
INFOPATH="/usr/share/gcc-data/i686-pc-linux-gnu/3.2/info"
CC="gcc"
CXX="g++"
LDPATH="/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3"
|
Jiné distribuce Vás žádají o změnu nebo přidávání proměnných prostředí do
souboru /etc/profile nebo podobných, avšak Gentoo Vám (a systému
Portage) jejich správu usnadní, neboť vše potřebné naleznete v jednom
adresáři.
Například během aktualizace gcc dojde ke změně souboru
/etc/env.d/05gcc bez nutnosti ručního zásahu uživatele.
Toto není výhoda jenom pro Portage, ale i pro Vás jakožto uživatele. Občas
můžete potřebovat nastavit nějakou proměnnou pro celý systém, například
proměnnou http_proxy. Nemusíte se probírat obrovským souborem
/etc/profile, ale stačí, abyste vytvořili nový soubor
(/etc/env.d/99local) a do něj zadali potřebné definice:
Výpis kódu 2.2: /etc/env.d/99local |
http_proxy="proxy.server.com:8080"
|
Použitím jednoho souboru pro všechny Vaše proměnné navíc získáte přehled o těch
proměnných, které jste zadali sami.
Skript env-update
Proměnnou PATH definuje v adresáři /etc/env.d více
souborů. Není to však omyl - spuštění env-update spojí tyto definice
dohromady před samotnou aktualizací proměnných. Proto je snadné, aby jednotlivé
balíčky (a nebo uživatelé) přidávaly vlastní nastavení bez vzájemné
interference.
Skript env-update spojí definice proměnných ze souborů
z adresáře /etc/env.d; zpracovávány jsou pouze ty soubory,
jejichž jména začínají dvěma číslicemi.
Výpis kódu 2.3: Pořadí aktualizací pro env-update |
00basic 99kde-env 99local
+-------------+----------------+-------------+
PATH="/bin:/usr/bin:/usr/kde/3.2/bin:/usr/local/bin"
|
Toto spojování obsahu proměnných však neproběhne vždy, avšak pouze pro tyto
proměnné: KDEDIRS, PATH, CLASSPATH, LDPATH,
MANPATH, INFODIR, INFOPATH, ROOTPATH,
CONFIG_PROTECT, CONFIG_PROTECT_MASK, PRELINK_PATH a
PRELINK_PATH_MASK. Pro všechny ostatní proměnné platí, že se
použije naposledy definovaná hodnota (abecední pořadí souborů uvnitř
/etc/env.d).
Spuštění skriptu env-update vytvoří proměnné prostředí a uloží je do
/etc/profile.env, který je dále používán souborem
/etc/profile. Zároveň použije informace z proměnné
LDPATH a použije je k vytvoření souboru
/etc/ld.so.cache sloužícího dynamickému linkeru.
Chcete-li ihned použít výsledky env-update ihned po jeho spuštění,
spusťte následující příkaz. Uživatelé, kteří Gentoo instalovali sami, si jej
pravděpodobně pamatují z instalace:
Výpis kódu 2.4: Aktualizace prostředí |
# env-update && source /etc/profile
|
Poznámka:
Výše zmíněný příkaz pouze aktualizuje proměnné v aktuálním terminálu,
nově otevřených konzolích a jejich potomcích. Proto pokud pracujete
v X11, buď budete muset spustit source /etc/profile v každém
terminálu který otevřete nebo restartovat X, aby se změny promítly. Používáte-li
login manager (grafického správce přihlašování), spusťte jako root
/etc/init.d/xdm restart; pokud jej nepoužíváte, odhlaste se a znovu se
nalogujte.
|
5.c. Lokální definice proměnných
Pro jednoho uživatele
Ne vždy chcete definovat proměnnou prostředí globálně pro celý systém. Můžete
například chtít přidat /home/uzivatel/bin a aktuální adresář (tj.
ten, ve kterém se právě nacházíte) do proměnné PATH, avšak ne pro
všechny uživatele. V takovém případě byste měli použít
~/.bashrc nebo ~/.bash_profile:
Výpis kódu 3.1: Rozšíření PATH pro jedonoho uživatele - ~/.bashrc |
PATH="${PATH}:/home/my_user/bin:"
|
Až se znovu přihlásíte, proměnná PATH bude změněna.
Pro aktuální relaci
Někdy můžete chtít použít programy z dočasnéhop adresáře bez jakéhokoli
editování souborů nebo zadávání plné cesty před každým příkazem, protože o
změnu stojíte pouze na krátkou dobu.
V takovém případě stačí definovat proměnnou PATH pouze pro současnou
relaci příkazem export. Tyto dočasné změny proměnné budou funkční až do
odhlášení.
Výpis kódu 3.2: Definice proměnné prostředí pro současnou relaci |
# export PATH="${PATH}:/home/my_user/tmp/usr/bin"
|
C. Práce s Portage
1. Soubory a adresáře
1.a. Soubory Portage
Konfigurační direktivy
Výchozí konfigurace Portage je uložena v /etc/make.globals.
Podíváte-li se na jeho obsah, uvidíte, že jsou všechna nastavení kontrolována
pomocí proměnných; jejich jména a význam bude popsán později.
Protože se mnoho konfiguračních direktiv liší podle systémové architektury,
jsou výchozí nastavení kontrolována profilem. Profil, který právě používáte, je
určen symbolickým odkazem /etc/make.profile; konfigurace Portage
je nastavena pomocí souborů make.defaults umístěných
v odkazovaném adresáři a rodičovských adresářích. Více o profilech a
adresáři /etc/make.profile bude popsáno dále.
Chcete-li změnit konfigurační proměnnou, neměňte soubory
/etc/make.globals a make.defaults, ale použijte
/etc/make.conf, který má větší prioritu. Také vám doporučujeme
podívat se na soubor /etc/make.conf.example (jak název napovídá,
je to pouze ukázkový soubor a Portage z něj žádné nastavení nečte).
Portage můžete konfigurovat i pomocí proměnných prostředí, avšak tento způsob
nedoporučujeme.
Informace o profilech
Adresář /etc/make.profile jsme již zmínili. Ve skutečnosti to
není adresář, ale symbolický odkaz na adresář s profilem, kterým se váš
systém řídí. Ve výchozím nastavení jsou profily umístěny pod
/usr/portage/profiles, i když je samozřejmě možné si vytvořit
vlastní profil někde jinde a odkazovat na něj.
Profil obsahuje informace pro Portage platné na konkrétní architektuře,
například seznam balíčků tvořících systém, seznam balíčků, které na
dané architektuře nefungují nebo jsou zamaskovány a tak dále.
Uživatelská konfigurace
Potřebujete-li změnit chování Portage pro instalaci softwaru, budete muset
změnit soubory uvnitř /etc/portage. Je silně doporučeno
používat soubory z /etc/portage, rozhodně ne proměnné
prostředí!
Uvnitř /etc/portage najdete tyto soubory:
-
package.mask obsahuje jména balíčků, jejichž instalaci chcete
zabránit
-
package.unmask uvádí balíčky, které chcete nainstalovat i
přesto, že to vývojáři Gentoo silně nedoporučují
-
package.keywords obsahuje jména balíčků, které chcete
nainstalovat, i když (ještě) nebyly prohlášeny dostatečně stabilní pro váš
systém či architekturu
-
package.use uvádí USE proměnné, které chcete použít pro určité
balíčky, aniž byste je nastavovali globálně pro celý systém
Více informací o adresáři /etc/portage a úplný výpis možných
souborů naleznete v manuálové stránce Portage:
Výpis kódu 1.1: Zobrazení manuálové stránky Portage |
$ man portage
|
Změna umístění souborů a adresářů Portage
Výše zmíněné soubory nemohou být uloženy jinde, Portage je bude vždy očekávat
na původních místech. Portage však zároveň používá i mnoho jiných souborů a
adresářů, například pro sestavování balíčků, ukládání zdrojových kódů, strom
Portage,...
Všechna tato umístění se dají snadno předefinovat pomocí nastavení
v /etc/make.conf. Ve zbytku této kapitoly popíšeme, jaké
soubory Portage používá a jak změnit jejich umístění.
Tento dokument však není koncipován jako referenční příručka; potřebujete-li
kompletní popis, podívejte se na manuálové stránky Portage a
make.conf:
Výpis kódu 1.2: Manuálové stránky Portage a make.conf |
$ man portage
$ man make.conf
|
1.b. Ukládání souborů
Strom Portage
Výchozí umístění stromu Portage je /usr/portage. Máte-li jej
uložen jinde, změňte proměnnou PORTDIR a nezapomeňte rovněž odpovídajícím
způsobem změnit symbolický odkaz /etc/make.profile.
Změníte-li proměnnou PORTDIR, možná budete chtít změnit i PKGDIR, DISTDIR a
RPMDIR, protože tyto si změny PORTDIR nevšimnou. Je to způsobeno tím, jak
Portage zachází s proměnnými.
Předkompilované balíčky
Portage sice předkompilované binární balíčky ve výchozím nastavení
nepoužívá, ale obsahuje pro ně vyčerpávající podporu. Proměnná PKGDIR
specifikuje, že budou tyto balíčky vyhledávány, ve výchozím nastavení to je
/usr/portage/packages.
Zdrojové kódy
Zdrojové kódy aplikací jsou ukládány do /usr/portage/distfiles,
změna se provádí proměnnou DISTDIR.
RPM soubory
Portage sice nepoužívá RPM soubory, avšak umí je vytvářet pomocí příkazu
ebuild (viz Aplikace ebuild).
Výchozí umístění, kam Portage tyto soubory ukládá, je určeno proměnnou RPMDIR.
Databáze Portage
Stav systému (například jaké balíčky jsou nainstalovány, jaké soubory jim patří
atd) ukládá Portage do adresáře /var/db/pkg. Neměňte zde
ručně žádné soubory, jinak můžete poškodit Portage!
Vyrovnávací paměť
Vyrovnávací paměť (Portage cache), obsahující informace jako čas poslední
změny, virtuály, strom závislostí a pod., je uložena
v /var/cache/edb. Tento adresář je opravdu pouze vyrovnávací
paměť, a proto jej můžete pročistit, pokud zrovna neběží nějaká aplikace
používající Portage.
1.c. Sestavování softwaru
Dočasné soubory
Dočasné soubory, které Portage používá, jsou ve výchozím nastavení
ukládány do /var/tmp, viz proměnná PORTAGE_TMPDIR.
Změníte-li PORTAGE_TMPDIR, pravděpodobně budete chtít modifikovat i další
proměnné kvůli způsobu, jak s nimi Portage pracuje, konkrétně proměnnou
BUILD_PREFIX.
Adresář pro kompilace
Portage vytváří adresáře potřebné pro sestavování balíčků uvnitř
/var/tmp/portage, viz proměnnou BUILD_PREFIX.
Umístění "živého" filesystému
Ve výchozím nastavení instaluje Portage všechny soubory do kořenového
adresáře (/). Pokud to chcete změnit, například pro vytvoření
nových build imagů, použijte proměnnou ROOT.
1.d. Možnosti logování
Zaznamenávání zpráv z ebuildů
Portage umí vytvářet logy pro každý ebuild, který zpracovává. Chcete-li tuto
funkci aktivovat, musíte mastavit proměnnou PORT_LOGDIR tak, aby ukazovala do
adresáře, kam může Portage (uživatel portage) zapisovat. Ve výchozím
nastavení není tato proměnná nastavena.
2. Konfigurace pomocí proměnných
2.a. Konfigurace Portage
Jak již bylo řečeno, Portage je konfigurovatelné pomocí mnoha proměnných
nastavovaných v souboru /etc/make.conf. Více informací
získáte z jeho manuálové stránky:
Výpis kódu 1.1: Manuálová stránka make.conf |
$ man make.conf
|
2.b. Parametry pro sestavování balíčků
Volby pro konfiguraci a kompilaci
Portage předává kompilátorům a konfiguračním skriptům tyto proměnné:
-
CFLAGS a CXXFLAGS určují volby kompilátoru pro překlady zdrojových kódů
v C a C++
-
CHOST určuje "build host" pro skript ./configure
-
MAKEOPTS je předán programu make a většinou se používá pro nastavení
paralelizace během překladu. Více informací je k dispozici
v manuálové stránce příkazu make.
Proměnná USE je během této části také používána, avšak již byla vysvětlena
v minulých kapitolách.
Parametry pro instalaci do systému
Poté, co Portage nainstaluje do systému novou verzi balíčku, odstraní staré
soubory patřící původní verzi. Uživatel má možnost během pěti sekund tuto akci
přerušit; tato doba se konfiguruje proměnnou CLEAN_DELAY.
2.c. Ochrana konfiguračních souborů
Chráněné adresáře
Při instalaci nové verze balíčku přepíše Portage staré soubory pouze tehdy,
pokud nejsou umístěny v chráněném adresáři. Tato umístění jsou
definovaná proměnnou CONFIG_PROTECT, seznam je oddělovaný mezerou.
Soubor, který by měl přepsat existující v chráněném adresáři, je
přejmenován a uživatel je na přítomnost nového souboru (pravděpodobně
konfiguračního) upozorněn.
Zjistit, jaké adresáře jsou chráněny, můžete z výstupu příkazu emerge
--info:
Výpis kódu 3.1: Zjištění nastavení CONFIG_PROTECT |
$ emerge --info | grep 'CONFIG_PROTECT='
|
Více informací o ochraně konfiguračních souborů je k dispozici přes
emerge:
Výpis kódu 3.2: Více informací o ochraně konfiguračních souborů |
$ emerge --help config
|
Vynechání adresářů
Pro vyřazení ochrany některých podadresářů můžete použít proměnnou
CONFIG_PROTECT_MASK.
2.d. Volby pro stahování
Umístění serverů
Nejsou-li požadované informace či data k dispozici ve vašem systému,
Portage je stáhne z Internetu. Jména serverů jsou nastavena
v následujících proměnných:
-
GENTOO_MIRRORS obsahuje seznam serverů, ze kterých se stahují
zdrojové kódy (distfiles)
-
PORTAGE_BINHOST určuje umístění serverů nabízejících předkompilované
balíčky
Konečně třetí proměnná určuje rsync server, ze kterého je aktualizován
strom Portage:
- SYNC určuje umístění, ze kterého Portage stahuje strom Portage
Proměnné GENTOO_MIRRORS a SYNC mohou být nastaveny automaticky pomocí aplikace
mirrorselect. Před jejím použitím ji budete muset nainstalovat (emerge
mirrorselect). Pro více informací viz nápovědu:
Výpis kódu 4.1: Více informací o mirrorselectu |
# mirrorselect --help
|
Pokud potřebujete na Internet přistupovat přes proxyserver, použijte proměnné
HTTP_PROXY, FTP_PROXY a RSYNC_PROXY.
Přikazy pro stahování
Ve výchozím nastavení používá Portage pro stahování souborů wget. Toto
chování můžete změnit proměnnou FETCHCOMMAND.
Portage umí pokračovat ve stahování částečně stažených zdrojových kódů.
Ve výchozím nastavení opět používá wget, změnu můžete provést
v proměnné RESUMECOMMAND.
Ujistěte se, že FETCHCOMMAND i RESUMECOMMAND uloží soubor do správného místa.
Uvnitř těchto proměnných můžete použít \${URI} a \${DISTDIR} jako odkaz na
původní adresu a cílový adresář.
Také můžete definovat programy podle použitého protokolu - FETCHCOMMAND_HTTP,
FETCHCOMMAND_FTP, RESUMECOMMAND_HTTP, RESUMECOMMAND_FTP a tak dále.
Nastavení rsync
Příkaz rsync, který Portage používá pro aktualizaci stromu Portage, změnit
nemůžete, avšak celý proces můžete ovlivnit:
-
proměnná RSYNC_EXCLUDEFROM odkazuje na soubor obsahující seznam balíčků
a/nebo kategorií, jež budou během aktualizace ignorovány
-
RSYNC_RETRIES říká, jak dlouho se má rsync pokoušet připojit na server
specifikovaný proměnnou SYNC, než to vzdá; výchozí hodnota je 3
-
RSYNC_TIMEOUT určuje čas v sekundách, po kterém dojde v případě
spojení vyprší, není-li aktivní. Výchozí hodnota je 180, ale majitelé
slabších počítačů nebo uživatelé dialupu ji možná budou chtít nastavit na
300 či výš.
2.e. Gentoo konfigurace
Výběr větve
Větev můžete změnit pomocí proměnné ACCEPT_KEYWORDS; výchozí hodnota je
stabilní větev pro vaší architekturu. Více informací o této problematice
najdete v další kapitole.
Možnosti Portage
Různé možnosti můžete aktivovat pomocí proměnné FEATURES. Tyto volby byly
popsány v minulých kapitolách, zejména možnosti Portage.
2.f. Chování Portage
Správa prostředků
Pomocí proměnné PORTAGE_NICENESS můžete změnit hodnotu nice, se kterou
bude Portage spouštět další procesy. Tato proměnná se přičítá
k aktuální hodnotě nice.
Pro více informací o nice se podívejte na jeho manuálovou stránku:
Výpis kódu 6.1: Více informací o nice |
$ man nice
|
Chování výstupu
Proměnná NOCOLOR určuje, zdá má Portage zakázat používání barevného
výstupu (výchozí hodnota je "false", čili zobrazování barev).
3. Kombinování více větví
3.a. Použití jedné větve
Stabilní větev
Proměnná ACCEPT_KEYWORDS říká, kterou softwarovou větev budete ve vašem systému
používat. V základním nastavení je to stabilní větev určená pro vaši
architekturu, např. x86.
Doporučujeme vám používat pouze stabilní větev. Pokud Vám však na stabilitě
systému tolik nezáleží a chcete pomoci vývoji Gentoo vyplňováním hlášení o
chybách přes http://bugs.gentoo.org/, čtěte dále.
Testovací větev
V případě, že chcete používat nejčerstvější programy, můžete upřednostnit
používání testovací větve. Abyste mohli používat programy z testovací
větve, musíte před symbol vaší architektury přidat znak ~.
Testovací větev je přesně to, co o sobě tvrdí, tedy testovací. Jestliže
je balíček zařazen do testovací větve, pak jsou si vývojáři jistí, že funguje,
ale není ještě důkladně otestován. Klidně se můžete stát prvním, kdo
v balíčku rozpozná chybu; v tom případě byste měli vyplnit
hlášení o chybě, aby se o ní vývojáři
dozvěděli.
Dejte si však pozor, protože používání testovací větve s sebou může nést
problémy se stabilitou, nedokonalé balíčky (například špatné či chybějící
závislosti), příliš časté aktualizace (a tudíž i mnoho procesorového času
stráveného překladem) či rozbité balíčky. Pokud nevíte, jak Gentoo pracuje a jak
řašit problémy, doporučujeme, abyste zůstali u stabilní otestované větve.
Chcete-li například použít testovací větev pro architekturu x86, zadejte
do /etc/make.conf:
Výpis kódu 1.1: Nastavení proměnné ACCEPT_KEYWORDS |
ACCEPT_KEYWORDS="~x86"
|
Když nyní zaktualizujete systém, zjistíte, jak moc balíčků bude
upgradováno. Mějte na paměti, že když systému dovolíte používat testovací větev,
neexistuje jednoduchá cesta, jak se vrátit zpět k větvi stabilní
(samozřejmě kromě použití zálohy).
3.b. Míchání stabilní a testovací větve
Soubor package.keywords
Můžete dovolit Portage použít pro část balíčků testovací větev, ale pro zbytek
systému stabilní větev. Abyste toho dosáhli, musíte kategorii balíčku a jeho
jméno zadat do /etc/portage/package.keywords. Například pro použití
testovací větve pro gnumeric:
Výpis kódu 2.1: Nastavení /etc/portage/package.keywords pro gnumeric, celý řádek |
app-office/gnumeric ~x86
|
Otestování konkrétních verzí
Chcete-li použít určitou verzi softwaru z testovací větve, ale nechcete,
aby Portage používalo testovací větev i pro další verze, můžete do
package.keywords zadat i číslo verze. V tomto případě
musíte použít operátor =, a nebo pomocí operátorů <=, <, > nebo
>= určit rozsah verzí, které chcete používat.
V každém případě, když použijete určitou verzi, musíte použít i
operátor; když informaci o verzi vynecháte, operátor použít nemůžete.
V následujícím případě chceme, aby Portage použilo gnumeric-1.2.13:
Výpis kódu 2.2: Užití konkrétní testovací verze gnumeric |
=app-office/gnumeric-1.2.13 ~x86
|
3.c. Používání zamaskovaných balíčků
Soubor package.unmask
Vývojáři Gentoo nepodporují použití těchto programů. Počítejte
s tím, prosím, pokud se je rozhodnete použít. Žádosti o podporu pro soubory
z package.unmask a/nebo package.mask nebudou vyslyšeny.
Byli jste varováni.
I když byl balíček vývojáři Gentoo zamaskován, a Vy jej přesto chcete používat,
i přes důvody uvedené v souboru package.mask (který je ve
výchozím nastavení umístěn v adresáři /usr/portage/profiles),
doplňte naprosto stejnou řádku do
/etc/portage/package.unmask.
Například když je zamaskován =net-mail/hotwayd-0.8, odmaskujete jej tím,
že přidáte stejnou řádku do souboru package.unmask:
Výpis kódu 3.1: /etc/portage/package.unmask |
=net-mail/hotwayd-0.8
|
Soubor package.mask
Pokud nechcete, aby Portage používalo nějaký balíček/program nebo nějakou verzi
balíčku/programu, můžete jej zamaskovat sami přidáním odpovídající řádky do
/etc/portage/package.mask.
Když třeba nechcete, aby Portage instalovalo novější zdrojové kódy jádra než
gentoo-sources-2.6.8.1, přidejte do package.mask následující
řádku:
Výpis kódu 3.2: Příklad /etc/portage/package.mask |
>sys-kernel/gentoo-sources-2.6.8.1
|
4. Doplňky Portage
4.a. etc-update
etc-update je nástroj usnadňující slučování souborů
._cfg0000_<jméno>. Poskytuje interaktivní rozhraní a je
schopen automaticky zpracovat triviální změny. Soubory
._cfg0000_<jméno> vytváří Portage v případě, že chce
přepsat soubor z adresáře uvedeného v proměnné CONFIG_PROTECT.
Použití etc-update je poměrně jednoduché:
Výpis kódu 1.1: Spuštění etc-update |
# etc-update
|
Po zpracování triviálních rozdílů vám bude předložen seznam chráněných souborů,
které by Portage chtělo přepsat. Vespodu uvidíte přehled možných voleb:
Výpis kódu 1.2: Možnosti nabízené skriptem etc-update |
Please select a file to edit by entering the corresponding number.
(-1 to exit) (-3 to auto merge all remaining files)
(-5 to auto-merge AND not use 'mv -i'):
|
Zadáte-li -1, etc-update se ukončí, aniž by provádělo další
změny. Zadáte-li -3 nebo -5, všechny uvedené soubory budou
nahrazeny novější verzí; je proto velmi důležité, abyste nejdříve zpracovali
soubory, jež nechcete automaticky přepsat. To zařídíte zadáním čísla uvedeného
vlevo vedle názvu souboru.
Jako příklad zde vybereme konfigurační soubor /etc/pear.conf:
Výpis kódu 1.3: Aktualizace specifického konfiguračního souboru |
Beginning of differences between /etc/pear.conf and /etc/._cfg0000_pear.conf
End of differences between /etc/pear.conf and /etc/._cfg0000_pear.conf
1) Replace original with update
2) Delete update, keeping original as is
3) Interactively merge original with update
4) Show differences again
|
Nyní můžete vidět rozdíly mezi oběma verzemi daného souboru. Pokud si myslíte,
že nová verze může být bez obtíží použita, zadejte 1. Myslíte-li si, že
aktualizace není zapotřebí nebo neposkytuje nové či jinak užitečné informace,
zmáčkněte 2. Chcete-li interaktivně aktualizovat současný konfigurační
soubor, zadejte 3.
Není potřeba, abychom zde dále rozvíjeli interaktivní sloučení souborů. Pro
úplnost si uvedeme seznam možných příkazů, které můžete použít. Uvítáni jste
dvěma řádky (jedním původním a dalším z nového souboru) a výzvou, na
kterou máte napsat jeden z následujících příkazů:
Výpis kódu 1.4: Příkazy dostupné pro interaktivní sloučení |
ed: editace, poté použití obou verzí, každá s hlavičkou
eb: editace, poté použití obou verzí
el: editace, poté použití levé verze
er: editace, poté použití pravé verze
e: editace nové verze
l: použije levou verzi
r: použije pravou verzi
s: tiše vloží společné řádky
v: ukecaně vloží společné řádky
q: konec
|
Až dokončíte aktualizaci důležitých konfiguračních souborů, budete moci
automaticky zaktualizovat všechny zbývající. etc-update se ukončí, až
neobjeví žádné další soubory k aktualizaci.
4.b. dispatch-conf
Použijete-li dispatch-conf, budete moci slučovat změny v souborech
a udržovat historii změn; dispatch-conf ji ukládá jako patche nebo
pomocí systému pro kontrolu revizí (RCS).
Stejně jako s etc-update můžete i s tímto nástrojem zachovat
současnou verzi, použít nový soubor, editovat stávající či interaktivně sloučit
změny. dispatch-conf má však další dobré vlastnosti:
-
automatické sloučení konfiguračních souborů, které pouze mění komentáře
-
automatické sloučení konfiguračních souborů, které se liší pouze
v mezerách a pod. (whitespace)
Ujistěte se, že nejprve zeditujete soubor /etc/dispatch-conf.conf
a vytvoříte adresář odkazovaný proměnnou archive-dir.
Pro více informací si prosím přečtěte manuálovou stránku příkazu
dispatch-conf:
Výpis kódu 2.1: Čtení manuálové stránky příkazu dispatch-conf |
$ man dispatch-conf
|
4.c. quickpkg
S quickpkg můžete vytvořit archiv balíčků, které jsou již
v systému nainstalovány, a použít je jako předkompilované balíčky.
Spuštění příkazu quickpkg je jednoduché, pouze přidáte jméno balíčků,
které chcete archivovat.
Například pro archivaci curl, arts a procps:
Výpis kódu 3.1: Ukázkové použití quickpkg |
# quickpkg curl arts procps
|
Předkompilované balíčky budou uloženy v $PKGDIR/All
(ve výchozím nastavení /usr/portage/packages/All) a
symbolické odkazy na ně vedoucí se vytvoří
v $PKGDIR/<kategorie>.
5. Odchylování od oficiálního stromu
5.a. Použití podskupiny stromu Portage
Vyjmutí balíčků/kategorií
Je možné selektivně aktualizovat pouze některé kategorie/balíčky a jiné
přeskočit pomocí jejich vyloučení z rsync během emerge --sync.
Do souboru /etc/make.conf musíte přidat proměnnou
RSYNC_EXCLUDEFROM, jež bude odkazovat na soubor obsahující seznam
přeskakovaných objektů.
Výpis kódu 1.1: Odkaz na soubor s nastavením v /etc/make.conf |
RSYNC_EXCLUDEFROM=/etc/portage/rsync_excludes
|
Výpis kódu 1.2: Vynechání všech her — nastavení /etc/portage/rsync_excludes |
games-*/*
|
To však může vést k problémům se závislostmi, protože některé balíčky mohou
záviset na nových, ale nesynchronizovaných balíčcích.
5.b. Přidávání neoficiálních ebuildů
Definování překryvného adresáře Portage
Můžete chtít, aby Portage použil ebuildy, které nejsou oficiálně dostupné
ve stromu Portage. Vytvořte nový adresář (např.
/usr/local/portage), ve kterém budete ukládat ebuildy třetích
stran; použijte stejnou adresářovou strukturu, jako má oficiální strom Portage.
Poté nastavte PORTDIR_OVERLAY v /etc/make.conf tak, aby
odkazovala na právě vytvořený adresář. Pokud nyní použijete Portage, bude brát
ebuildy z tohoto adresáře do úvahy, aniž by je smazalo nebo přepsalo, až
příště spustíte emerge --sync.
Práce s více překryvnými adresáři
Pokročilým uživatelům, kteří vyvíjejí software ve více překryvných
adresářích, testují balíčky před jejich uvedením do oficiálního stromu Portage
nebo prostě těm, kdo chtějí používat neoficiální ebuildy z více zdrojů, se
může hodit balíček app-portage/gentoolkit-dev a jeho nástroj
gensync, který pomáhá udržovat více repozitářů aktuálních.
gensync umí aktualizovat všechny repozitáře najednou, případně pouze
vámi vybrané. Každý repozitář by měl mít v adresáři
/etc/gensync/ samostatný soubor .syncsource
obsahující informace jako umístění repozitáře, jeho jméno, identifikátor atd.
Předpokládejme, že používáte dva doplňkové překryvné adresáře - java pro
Javové ebuildy, které se ještě vyvíjejí, a entapps pro aplikace
lokálně vývíjené pro potřeby vaší společnosti. Oba můžete aktualizovat tímto
příkazem:
Výpis kódu 2.1: Použití gensync pro aktualizaci více repozitářů |
# gensync java entapps
|
5.c. Software mimo Portage
Použití Portage s jiným softwarem
V některých případech můžete chtít konfigurovat, instalovat a udržovat
software sami, bez automatické asistence Portage, i když jsou balíčky
ve stromu Portage dostupné; mezi časté případy patří zdrojové kódy jádra
nebo ovladače nvidia. Portage se dá snadno nakonfigurovat tak, aby vědělo, že je
daný balíček v systému nainstalován ručně; tento proces se nazývá
injecting (český ekvivalent by mohlo být například "vkládání") a Portage
jej podporuje díky souboru /etc/portage/profile/package.provided.
Například pokud chcete informovat Portage o tom, že jste si sami nainstalovali
vanilla-sources-2.6.11.6, přidejte do
/etc/portage/profile/package.provided následující řádku:
Výpis kódu 3.1: Ukázka řádku v package.provided |
sys-kernel/vanilla-sources-2.6.11.6
|
D. Konfigurace sítě v Gentoo
1. Úvod
1.a. Pro začátek
Poznámka:
Dále budeme předpokládat, že máte správně nastavené jádro, zejména moduly pro
váš hardware, a že víte, jaké jméno rozhraní dostala vaše síťová karta.
Konfigurovanému rozhraní budeme říkat eth0, ačkoli může stejně dobře jít
o eth1, wlan0 atd.
|
Poznámka:
Další popis platí pouze pro baselayout-1.11.11 a novější.
|
Aby se init skripty síťovým rozhraním vůbec zaobíraly, RC systém se o něm musí
dozvědět, proto je potřeba v adresáři /etc/init.d vytvořit
symbolický odkaz z net.lo na net.eth0:
Výpis kódu 1.1: Symlink z net.eth0 na net.lo |
# cd /etc/init.d
# ln -s net.lo net.eth0
|
RC systém Gentoo nyní o rozhraní ví, avšak zatím mu není jasné, jak má vaše
rozhraní nastavit. Veškerá konfigurace sítě se provádí
v /etc/conf.d/net. Pro statickou adresu či DHCP může tento
soubor vypadat hodně jednoduše:
Výpis kódu 1.2: Ukázky /etc/conf.d/net |
config_eth0=( "dhcp" )
config_eth0=( "192.168.0.7/24" )
routes_eth0=( "default via 192.168.0.1" )
config_eth0=( "192.168.0.7 netmask 255.255.255.0" )
routes_eth0=( "default gw 192.168.0.1" )
|
Poznámka:
Pokud pro rozhraní neurčíte žádnou konfiguraci, automaticky se použije DHCP.
|
Poznámka:
CIDR je zkratka z Classless InterDomain Routing. Původně byly IPv4 adresy
rozděleny do skupin A, B, C a D, tento systém však nepočítal s masivním
rozvojem Internetu a záhy mu začalo hrozit vyčerpání nových unikátních adres.
Adresovací schéma CIDR umožňuje jedné IP adrese označit celý rozsah. CIDR IP
adresa vypadá jako běžná IP adresa, avšak končí lomítkem a číslem, například
192.168.0.0/16. CIDR je popsáno v RFC 1519.
|
Rozhraní je nakonfigurováno, můžeme jej tedy zkusit spustit a zastavit:
Výpis kódu 1.3: Spuštení a zastavení síťového rozhraní |
# /etc/init.d/net.eth0 start
# /etc/init.d/net.eth0 stop
|
Důležité:
Během ladění sítě se může hodit nastavit zobrazování
detailních zpráv pomocí deklarace RC_VERBOSE="yes" v souboru
/etc/conf.d/rc.
|
Poté, co jste si ověřili, že se rozhraní dá spustit a zastavit ručně, budete
pravděpodobně chtít zařídit jeho automatickou aktivaci při bootu. Druhý příkaz
řekne systému init skriptů, aby spustil všechno, co má v aktuálním
runlevelu běžet, a přitom neběží.
Výpis kódu 1.4: Spouštení síťového rozhraní při bootu |
# rc-update add net.eth0 default
# rc
|
2. Pokročilá konfigurace
2.a. Pokročilá konfigurace
Proměnná config_eth0 je jádrem konfigurace síťového rozhraní
(v tomto případě eth0). Obsahuje seznam instrukcí, jež se mají
provést pro jeho správnou funkci. Příkazy jsou prováděny jeden po druhém a aby
bylo rozhraní považováno za funkční, musí alespoň jeden z nich proběhnout
bez chyb.
Následuje seznam dostupných instrukcí.
| Příkaz |
Popis |
| null |
nedělej nic |
| noop |
pokud je rozhraní v provozu a má přiřazenou adresu, skonči úspěšně
|
| IPv4 nebo IPv6 adresa |
přidej rozhraní tuto adresu |
|
dhcp, adsl nebo apipa (případně vlastní příkaz
z dalšího modulu)
|
Aktivuj modul, jenž poskytuje daný příkaz. Například dhcp zavede
některý z modulů dhcpcd, udhcpc, dhclient či
pump, jež všechny obsahují funkce pro práci s DHCP.
|
Můžete zadat i další přikaz (fallback), který se provede tehdy, pokud
předcházející selže. Tento nouzový příkaz musí přesně odpovídat struktuře
konfigurace.
Výše zmíněné konstrukce se samozřejmě dají kombinovat. Následují ukázky
z praxe:
Výpis kódu 1.1: Ukázky konfigurace |
config_eth0=(
"192.168.0.2/24"
"192.168.0.3/24"
"192.168.0.4/24"
)
config_eth0=(
"192.168.0.2/24"
"4321:0:1:2:3:4:567:89ab"
"4321:0:1:2:3:4:567:89ac"
)
config_eth0=(
"noop"
"dhcp"
)
fallback_eth0=(
"null"
"apipa"
)
|
Poznámka:
Pokud používáte modul ifconfig a přidáváte více než jednu adresu, bude
pro každou další vytvořeno naaliasované rozhraní. Proto v předchozích dvou
příkladech dojde k aktivaci rozhraní eth0, eth0:1 a
eth0:2. Nic zvláštního se s nimi dělat nedá, protože jádro i další
programy mezi nimi nerozlišují.
|
Důležité:
Pořadí příkazů v bloku fallback je důležité. Pokud bychom nespecifikovali
volbu null, byl by příkaz apipa proveden pouze tehdy, pokud by
došlo k selhání příkazu noop.
|
Poznámka:
APIPA a
DHCP jsou popsány dále.
|
2.b. Závislosti a síťování
Init skripty z /etc/init.d mohou záviset buď na konkrétním
síťovém rozhraní a nebo obecně na "dostupnosti sítě". Závislost na službě
net může znamenat různé věci, záleží na nastavení proměnné
RC_NET_STRICT_CHECKING v souboru /etc/conf.d/rc:
| Hodnota |
Popis |
| none |
vždy předpokládáme, že je služba net funkční |
| no |
Alespoň jedna služba net.* kromě net.lo musí
běžet. Tato volba je vhodná například pro majitele notebooků s WiFi a
pevnou ethernetovou síťovou kartou, protože vyžaduje, aby bylo funkční
alespoň jedno připojení k síti.
|
| lo |
Stejné jako volba no, avšak net.lo je rovněž
započítáváno. Tato volba se může hodit lidem, kteří nepotřebují mít žádné
konkrétní rozhraní aktivní při bootu.
|
| yes |
aby byla služba net funkční, musí být v provozu všechna
síťová rozhraní
|
Ale co když má net.br0 záviset na net.eth0 a
net.eth1? net.eth1 může být bezdrátové zařízení nebo
PPP spoj, a tudíž je ho potřeba konfigurovat předtím, než se přidá do bridge.
Takovou závislost však není možno zařídit v souboru
/etc/init.d/net.br0, protože je to symbolický odkaz na
net.lo.
Řešení je vytvořit vlastní funkci depend()
v /etc/conf.d/net.
Výpis kódu 2.1: Závislost net.br0 v /etc/conf.d/net |
depend_br0() {
need net.eth0 net.eth1
}
|
Pro více informací viz sekci init
skripty.
2.c. Jména a hodnoty proměnných
Jména proměnných jsou dynamická. Normálně jsou ve tvaru
proměnná_${rozhraní|mac|essid|apmac}; například dhcpcd_eth0
určuje volby pro dhcpcd nad rozhraním eth0 a dhcpcd_essid určuje
parametry dhcpcd pro jakékoli zařízení, které se připojí k ESSID "essid".
Je zde však jedna komplikace — jména rozhraní nemusí být pouze ethx. Například
mnoho bezdrátových síťových karet používá jména jako wlanx či rax, rozhraní
vytvářená uživateli (například bridge) mohou mít dokonce zcela libovolné jméno.
Situace se stává ještě zajímavější, pokud přejdeme k bezdrátovým
přístupovým bodům — ty mohou mít jména obsahující i nealfanumerické znaky, a
protože jména proměnných mohou obsahovat ESSID, narážíme na problém.
Gentoo používá pro nastavování síťování bash a bash neumí používat proměnné
s názvy obsahujícími znaky, které nejsou v anglické abecedě. Proto se
provádí změna každého takového znaku na znak _, podtržítko.
Dalším z limitujících faktorů je samotný obsah proměnných — některé znaky
musí být vloženy pomocí escape sekvencí. Například znaky ", ' a
\ musí být v zápisu doplněny znakem \ těsně před nimi.
V tomto příkladu použijeme ESSID bezdrátové sítě, protože ty mohou
obsahovat nejvíce speciálních znaků. Předpokládejme ESSID My "\ NET:
Výpis kódu 3.1: Ukázka jména proměnné |
dns_domain_My____NET="My \"\\ NET"
|
3. Moduly pro sítě
3.a. Moduly
Síťové skripty používané v Gentoo jsou modulární, což znamená, že je
snadné přidávat podporu nových typů rozhraní a zcela nových funkcí za
současného zachování zpětné kompatibility.
Načítání modulů probíhá plně automaticky — pokud je balíček, na kterém
modul závisí, v systému nainstalován, modul se sám aktivuje. Pokud se
pokusíte zavést modul, aniž by byl k dispozici odpovídající balíček,
zobrazí se chybová zpráva, která vám oznámí, co je potřeba doinstalovat. Proto
je v ideálním případě potřeba se moduly zaobírat pouze pokud je
v systému nainstalováno více různých balíčků poskytujících shodné funkce,
a je proto mezi nimi potřeba vybrat ten, který se má použít.
Poznámka:
Pokud nebude řečeno jinak, všechna zde popsaná nastavení patří do souboru
/etc/conf.d/net.
|
Výpis kódu 1.1: Preference modulů |
modules=( "iproute2" )
modules_eth0=( "udhcpc" )
modules=( "!iwconfig" )
|
3.b. Ovladače pro základní konfiguraci rozhraní
V současné době nabízíme dva různé moduly pro základní konfiguraci rozhraní
— ifconfig a iproute2. Jeden z nich je potřeba pro jakoukoli
práci se sítí.
ifconfig je výchozí volba a je součástí systémového profilu.
iproute2 podporuje pokročilejší volby, avšak ve výchozí instalaci
není k dispozici.
Výpis kódu 2.1: Instalace iproute2 |
# emerge sys-apps/iproute2
modules=( "iproute2" )
|
Jak ifconfig, tak i iproute2 se používají k podobným úkolům,
a proto je i jejich základní konfigurace stejná. Následující ukázky tedy budou
fungovat, ať už používáte jakýkoli z těchto modulů.
Výpis kódu 2.2: Ukázky ifconfig a iproute2 |
config_eth0=( "192.168.0.2/24" )
config_eth0=( "192.168.0.2 netmask 255.255.255.0" )
config_eth0=( "192.168.0.2/24 brd 192.168.0.255" )
config_eth0=( "192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255" )
|
3.c. DHCP
DHCP je způsob pro získání základních informací o síti (jako například IP
adresa, DNS servery či výchozí brána) od DHCP serveru. Pokud vám v síti
běží DHCP server, stačí pouze všechny počítače nastavit tak, aby svoji síťovou
konfiguraci získávali z něj, a síť se nastaví "sama". Pokročilejší volby,
jako například bezdrátové sítě či PPP, však budete muset nakonfigurovat ještě
předtím, než DHCP vstoupí do hry.
Funkcionalita DHCP je poskytována více balíčky — dhclient, dhcpcd,
pump a udhcpc. Každý z nich má své klady a zápory:
| DHCP modul |
balíček |
+ |
- |
| dhclient |
net-misc/dhcp |
Pochází od ISC, tj. od lidí, jež stojí za BIND DNS. Je rovněž velice
konfigurovatelný.
|
Konfigurace je velmi komplexní, software je vcelku nafouklý. Neumí
z DHCP získat adresy NTP serverů a ve výchozím nastavení neposílá jméno
počítače.
|
| dhcpcd |
net-misc/dhcpcd |
dlouhodobá výchozí volba v Gentoo, nezávisí na dalších nástrojích
|
Již není udržovaný původními vývojáři, v některých momentech může být
pomalý. Pokud je doba výpůjčky adresy nekonečná, nepřejde do režimu démona.
|
| pump |
net-misc/pump |
odlehčený nástroj, nezávisí na dalších nástrojích |
Již není udržovaný původními vývojáři, nespolehlivý, zejména přes modemy.
Nepodporuje získání adres NIS serverů.
|
| udhcpc |
net-misc/udhcp |
velmi odlehčený — nejmenší známý DHCP klient, ideální pro embedded systémy
|
není příliš odzkoušený — žádná distribuce ho nepoužívá ve výchozím
nastavení, neumí nastavit timeout na více než 3 sekundy
|
Pokud máte nainstalovaného více než jednoho DHCP klienta, musíte určit, jaký
z nich se má použít, jinak se automaticky vybere dhcpcd.
Pokud potřebujete DHCP modulu předat nějaké parametry, použijte
module_eth0="..." (nahraďte "modul" DHCP modulem, který používáte, tj.
např. dhcpcd_eth0).
Podporované nastavení DHCP je poměrně všeobecné, a proto máte prostřednictvím
proměnné dhcp_eth0 k dispozici tyto příkazy (ve výchozím
nastavení není aktivní žádný z nich):
-
release — uvolní IP adresu k dalšímu použití
-
nodns — nepřepíše /etc/resolv.conf
-
nontp — nepřepíše /etc/ntp.conf
-
nonis — nepřepíše /etc/yp.conf
Výpis kódu 3.1: Ukázkové nastavení DHCP v /etc/conf.d/net |
modules=( "dhcpcd" )
config_eth0=( "dhcp" )
dhcpcd_eth0="-t 10"
dhcp_eth0="release nodns nontp nonis"
|
Poznámka:
dhcpcd, udhcpc a pump posílají ve výchozím nastavení
DHCP serveru jméno počítače, proto ho již není třeba zadávat.
|
3.d. ADSL modem
Nejprve je potřeba nainstalovat odpovídající software:
Výpis kódu 4.1: Instalace balíčku rp-pppoe |
# emerge net-dialup/rp-pppoe
|
Varování:
baselayout-1.11.x podporuje pouze PPPoE. PPPoA bude podle předpokladů
zahrnuta do novějších verzí.
|
Dalším krokem je nastavení eth0 jakožto ADSL rozhraní a zadání
uživatelského jména. Nastavujeme v souboru /etc/conf.d/net.
Výpis kódu 4.2: Konfigurace eth0 pro ADSL (/etc/conf.d/net) |
config_eth0=( "adsl" )
adsl_user_eth0="jméno"
|
Nakonec je potřeba zadat uživatelské jméno a heslo v souboru
/etc/ppp/pap-secrets.
Výpis kódu 4.3: Ukázka /etc/ppp/pap-secrets |
"jméno" * "heslo"
|
3.e. APIPA (Automatic Private IP Addressing)
APIPA se pokusí získat volnou IP adresu z rozsahu
169.254.0.0-169.254.255.255 zasláním arping dotazu na jednu náhodně vybranou
přes odpovídající rozhraní. Pokud neobdrží žádnou odpověď, předpokládá, že je
zvolená adresa volná, a použije ji.
Tento způsob konfigurace je vhodný pouze pro sítě LAN bez DHCP serveru či
připojení k Internetu, kde navíc všechny počítače používají APIPA.
Pro podporu APIPA musíte nainstalovat net-misc/iputils nebo
net-analyzer/arping.
Výpis kódu 5.1: Konfigurace APIPA — /etc/conf.d/net |
config_eth0=( "dhcp" )
fallback_eth0=( "apipa" )
config_eth0=( "apipa" )
|
3.f. Bonding
Pro bonding či trunking nainstalujte net-misc/ifenslave.
Bonding se používá ke zvýšení propustnosti sítě. Pokud máte dvě síťové
karty vedoucí do stejné sítě, můžete je spojit do jednoho, takže aplikace si
s existencí více fyzických rozhraní nemusí lámat hlavu.
Výpis kódu 6.1: Bonding — /etc/conf.d/net |
slaves_bond0="eth0 eth1 eth2"
config_bond0=( "null" )
depend_bond0() {
need net.eth0 net.eth1 net.eth2
}
|
3.g. Bridging (podpora 802.1d)
Pro podporu funkce bridge nainstalujte net-misc/bridge-utils.
Bridging se používá pro spojení více sítí dohromady. Například pokud máte
server připojený do Internetu přes ADSL modem a bezdrátovou síťovou kartu,
můžete je přes bridge spojit dohromady.
Výpis kódu 7.1: Konfigurace bridge — /etc/conf.d/net |
brctl_br0=( "setfd 0" "sethello 0" "stp off" )
bridge_br0="eth0 eth1"
config_eth0=( "null" )
config_eth1=( "null" )
config_br0=( "192.168.0.1/24" )
depend_br0() {
need net.eth0 net.eth1
}
|
Důležité:
Pro některá nastavení může být důležité se seznámit s dokumentací jmen proměnných.
|
3.h. MAC adresy
Pokud používáte sys-apps/baselayout-1.11.14 nebo novější a pokoušíte se
změnit MAC adresu na konkrétní hodnotu, není nutné cokoliv instalovat. Pokud
však požadujete komplexnější změny nebo používáte baselayout starší, budete
muset nainstalovat balíček net-analyzer/macchanger.
Výpis kódu 8.1: Ukázka změny MAC adresy |
mac_eth0="00:11:22:33:44:55"
mac_eth0="random-ending"
mac_eth0="random-samekind"
mac_eth0="random-anykind"
mac_eth0="random-full"
|
3.i. Tunely
Není potřeba nic instalovat, init skripty se o vše potřebné postarají samy.
Výpis kódu 9.1: Konfigurace tunelů v /etc/conf.d/net |
iptunnel_vpn0="mode gre remote 207.170.82.1 key 0xffffffff ttl 255"
iptunnel_vpn0="mode ipip remote 207.170.82.2 ttl 255"
config_vpn0=( "192.168.0.2 peer 192.168.1.1" )
|
3.j. VLAN (podpora 802.1q)
Pro podporu VLAN si nainstalujte net-misc/vconfig.
Virtual LAN je skupina síťových rozhraní, která se chovají, jako by byly
připojeny do jednoho segmentu sítě, i když ve skutečnosti nejsou. Členové
skupiny VLAN nevidí jiná rozhraní, i když jsou fyzicky umístěna na stejném
segmentu sítě.
Výpis kódu 10.1: VLAN — /etc/conf.d/net |
vlans_eth0="1 2"
vconfig_eth0=( "set_name_type VLAN_PLUS_VID_NO_PAD" )
vconfig_vlan1=( "set_flag 1" "set_egress_map 2 6" )
config_vlan1=( "172.16.3.1 netmask 255.255.254.0" )
config_vlan2=( "172.16.2.1 netmask 255.255.254.0" )
|
Důležité:
Pro některá nastavení může být důležité se seznámit s dokumentací jmen proměnných.
|
4. Bezdrátové sítě
4.a. Úvod
V současné době je podporováno nastavení bezdrátové sítě pomocí
wireless-tools nebo wpa_supplicant. Důležitá poznámka je, že se
nastavení provádí globálně a ne pro konkrétní rozhraní.
wpa_supplicant je nejlepší volba, avšak nepodporuje všechny ovladače, viz
seznam podporovaných.
wpa_supplicant navíc zatím umožňuje připojení pouze k těm SSID,
pro které jste jej nakonfigurovali.
wireless-tools podporuje skoro všechny karty a ovladače, avšak neumí se
připojit k přístupovým bodům (AP), které vyžadují WPA.
Varování:
Baselayout nepodporuje ovladač linux-wlan-ng, neboť tento balíček využívá
vlastní systém konfigurace a nastavení, zcela odlišný od zbytku světa. Podle
některých zpráv to vypadá, že se vývojáři linux-wlan-ng chystají přejít
na systém podobný wireless-tools; pokud se tak stane, budete moci
používat i linux-wlan-ng.
|
4.b. WPA Supplicant
WPA Supplicant je
balíček pro připojování k AP používajícím WPA. Nastavení je poměrně
jednoduché, ačkoli stále ještě může docházet k některým změnám. Většina
funkcí však funguje správně.
Výpis kódu 2.1: Instalace wpa_supplicant |
# emerge net-wireless/wpa_supplicant
|
Důležité:
Aby wpa_supplicant pracoval správně, je potřeba v konfiguraci jádra
povolit volbu CONFIG_PACKET.
|
V souboru /etc/conf.d/net je nyní potřeba zadat, aby se
wpa_supplicant používal místo wireless-tools, neboť pokud jsou
k dispozici oba, jako výchozí se použije wireless-tools.
Výpis kódu 2.2: /etc/conf.d/net pro wpa_supplicant |
modules=( "wpa_supplicant" )
wpa_supplicant_eth0="-Dmadwifi"
|
Poznámka:
Pokud používáte ovladač host-ap, musíte kartu ještě před použitím funkcí
wpa_supplicant uvést do managed módu. Nejjednodušší je přidat do
/etc/conf.d/net řádku iwconfig_eth0="mode managed".
|
Vcelku jednoduché, že? Stále však před sebou máme konfiguraci samotného
wpa_supplicant, což není zcela triviální, zejména při některých
bezpečnostních nastaveních vašeho AP. Následuje zjednodušený příklad
/etc/wpa_supplicant.conf.example dodávaného v rámci balíčku
wpa_supplicant.
Výpis kódu 2.3: Ukázka /etc/wpa_supplicant.conf |
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
ap_scan=1
network={
ssid="ukazka"
psk="strašně tajné heslo"
priority=5
}
network={
ssid="druhá ssid"
scan_ssid=1
psk="strašně tajné heslo"
priority=2
}
network={
ssid="ukázka"
proto=WPA
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP WEP104 WEP40
psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb
priority=2
}
network={
ssid="plaintext-test"
key_mgmt=NONE
}
network={
ssid="static-wep-test"
key_mgmt=NONE
wep_key0="abcde"
wep_key1=0102030405
wep_key2="1234567890123"
wep_tx_keyidx=0
priority=5
}
network={
ssid="static-wep-test2"
key_mgmt=NONE
wep_key0="abcde"
wep_key1=0102030405
wep_key2="1234567890123"
wep_tx_keyidx=0
priority=5
auth_alg=SHARED
}
network={
ssid="test adhoc"
mode=1
proto=WPA
key_mgmt=WPA-NONE
pairwise=NONE
group=TKIP
psk="tajný kód"
}
|
3.c. Wireless Tools
Základní nastavení, mód managed
Wireless
Tools nabízí obecnou metodu, jak nastavovat základní parametry
bezdrátového připojení až po jednoduché zabezpečení pomocí WEP. WEP je sice
pouze slabé šifrování, avšak stále ještě nejčastější.
Konfigurace wireless tools je ovlivněna několika proměnnými. Následující ukázka
obsahuje vše potřebné. Důležité je si uvědomit, že žádná konfigurace neznamená
"připoj se na nejsilnější nešifrovaný přístupový bod" — vždy dojde
ke zkoušce a proběhne připojení "k něčemu".
Výpis kódu 3.1: Instalace wireless-tools |
# emerge net-wireless/wireless-tools
|
Poznámka:
Nastavení pro bezdrátové sítě je sice možné umístit do
/etc/conf.d/wireless, lepší možnost je však využít
/etc/conf.d/net.
|
Důležité:
Budete si muset přečíst kapitolu o názvech proměnných.
|
Výpis kódu 3.2: Jendnoduché nastavení iwconfig v /etc/conf.d/net |
modules=( "iwconfig" )
key_ESSID1="[1] s:yourkeyhere key [1] enc open"
key_ESSID2="[1] aaaa-bbbb-cccc-dd key [1] enc restricted"
preferred_aps=( "ESSID1" "ESSID2" )
|
Detailní nastavení výběru AP
Ačkoli to ve většině případů není potřeba, můžete nastavit i další volby,
které jemně ovlivní výběr AP.
První možností je rozhodnutí, zda se můžeme připojit pouze k preferovaným
AP, nebo i k jiným. Ve výchozím nastavení se systém chová tak, že pokud
všechny pokusy o připojení k preferovaným AP selžou, provede se pokus o
připojení k jakémukoli nešifrovanému přístupovému bodu. Toto chování je
ovlivněno proměnnou associate_order:
| hodnota |
popis |
| any |
výchozí chování |
| preferredonly |
připojí se pouze k viditelným AP ze seznamu |
| forcepreferred |
pokusí se připojit na AP ze seznamu i tehdy, pokud nejsou ve výsledku skenu
vidět
|
| forcepreferredonly |
žádné skenování se neprovede — pouze se pokusí připojit k bodům ze
seznamu
|
| forceany |
stejné jako forcepreferred, při selhání se pokusí připojit na
libovolný dostupný bod
|
Využít můžete i proměnné blacklist_aps a unique_ap.
blacklist_aps je podobná preferred_aps, avšak k uvedeným AP
se nebude systém připojovat. unique_ap může obsahovat hodnoty yes
nebo no a určuje, zda se může druhá bezdrátová síťová karta připojit na
stejné AP jako první.
Výpis kódu 3.3: Ukázka blacklist_aps a unique_ap |
blacklist_aps=( "ESSID3" "ESSID4" )
unique_ap="yes"
|
Režimy ad-hoc a master
Pokud chcete v případě, že se nepodaří připojit k žádnému AP, přejít
do módu ad-hoc, můžete samozřejmě také.
Výpis kódu 3.4: Náhradní ad-hoc mód |
adhoc_essid_eth0="Tento bod adhoc"
|
Také je možné pouze provozovat ad-hoc síť či vlastní přístupový bod ("master
mode"). Pokud chcete používat WEP, bude samozřejmě nutné zadat odpovídající
klíče, viz výše.
Výpis kódu 3.5: Jednoduchá konfigurace pro ad-hoc/master mód |
mode_eth0="ad-hoc"
essid_eth0="Tento bod adhoc"
channel_eth0="9"
|
Důležité:
Následující je převzato z BSD dokumentace wavelan (The NetBSD
Documentation). Celkem je pro WiFi k dispozici 14 kanálů,
z nichž 1-11 jsou legální v Severní Americe, 1-13 ve velké části
Evropy (včetně České republiky), 10-13 ve Francii a pouze 14
v Japonsku. Pokud si nejste jisti, podívejte se do dokumentace své
bezdrátové karty. Ujistěte se, že se vybraný kanál shoduje s kanálem, na
kterém pracuje AP, příp. další karty v režimu ad-hoc. Výchozí nastavení
kanálu na kartách prodávaných v Severní Americe a většině Evropy je 3,
ve Francii 11 a v Japonsku 14.
|
Odstraňování chyb s Wireless Tools
Následující proměnné vám mohou pomoci uvést do provozu vaše bezdrátové
připojení, pokud narazíte na problémy s ovladači či prostředím. Tato
tabulka podává přehled věcí, které můžete vyzkoušet:
| proměnná |
výchozí hodnota |
popis |
| iwconfig_eth0 |
|
parametry pro iwconfig, viz jeho manuálová stránka |
| iwpriv_eth0 |
|
parametry pro iwpriv, viz jeho manuálová stránka |
| sleep_scan_eth0 |
0 |
Čas v sekundách, po který se bude čekat před pokusem o skenování. Tato
volba se hodí, pokud ovladač nebo firmware potřebuje nějaký čas na
uklidnění předtím, než jej lze použít.
|
| sleep_associate_eth0 |
5 |
čas v sekundách, po který se bude snažit rozhraní asociovat k AP;
po uplynutí této doby se přejde k dalšímu
|
| associate_test_eth0 |
MAC |
Některé ovladače při ztrátě spojení s AP (či po odpojení) nenastaví
aktuální MAC adresu AP na neplatnou hodnotu, jiné opomenou vynulovat
hodnotu kvality signálu. Platné hodnoty pro tuto proměnnou jsou MAC,
quality a all.
|
| scan_mode_eth0 |
|
Některé ovladače musí skenovat v režimu ad-hoc, takže pokud skenování
selže, zkuste zde nastavit ad-hoc.
|
| iwpriv_scan_pre_eth0 |
|
Zašli následující příkazy iwpriv před samotným skenováním. Pro
další informace viz manuálovou stránku iwpriv.
|
| iwpriv_scan_post_eth0 |
|
iwpriv příkazy odesílané po skenování. Opět viz manuálovou stránku
iwpriv.
|
4.d. Konfigurace podle ESSID
Občas potřebujete nastavit statickou IP adresu při připojení
k ESSID1 a DHCP pro ESSID2. Většina proměnných se dá
nastavit pro konkrétní ESSID, zde si ukážeme jak.
Poznámka:
Tato nastavení fungují s WPA Supplicant a Wireless Tools.
|
Důležité:
Budete se potřebovat seznámit s dokumentací jmen proměnných.
|
Výpis kódu 4.1: Nastavení sítě podle ESSID |
config_ESSID1=( "192.168.0.3/24 brd 192.168.0.255" )
routes_ESSID1=( "default via 192.168.0.1" )
config_ESSID2=( "dhcp" )
fallback_ESSID2=( "192.168.3.4/24" )
fallback_route_ESSID2=( "default via 192.168.3.1" )
dns_servers_ESSID1=( "192.168.0.1" "192.168.0.2" )
dns_domain_ESSID1="nějaká.doména"
dns_search_domains_ESSID1="hledej.v.této.doméně hledej.i.v.téhle"
config_001122334455=( "dhcp" )
dhcpcd_001122334455="-t 10"
dns_servers_001122334455=( "192.168.0.1" "192.168.0.2" )
|
5. Přidávání funkcí
5.a. Standardní funkce
Pro ovlivnění operací start a stop můžete definovat čtyři vlastní
funkce. Jako první parametr je jim předáno jméno rozhraní, a proto můžete
využít jednu funkci pro nastavování více rozhraní.
Pokud funkce preup() a predown() vrátí hodnotu 0 (tj. úspěch),
může konfigurace či dekonfigurace rozhraní pokračovat. Pokud je
návratová hodnota nenulová, preup() přeruší aktivaci rozhraní a
predown() zabrání jeho deaktivaci.
Návratové hodnoty funkcí postup() a postdown() jsou ignorovány,
neboť na případné selhání již není možné reagovat.
Proměnná ${IFACE} obsahuje jméno rozhraní, se kterým se právě operuje,
${IFVAR} je ${IFACE} ve formátu, který bash povoluje pro
názvy proměnných.
Výpis kódu 1.1: Ukázky funkcí pre/post up/down |
preup() {
if mii-tool ${IFACE} 2> /dev/null | grep -q 'no link'; then
ewarn "No link on ${IFACE}, aborting configuration"
return 1
fi
if ethtool ${IFACE} | grep -q 'Link detected: no'; then
ewarn "No link on ${IFACE}, aborting configuration"
return 1
fi
return 0
}
predown() {
if is_net_fs /; then
eerror "root filesystem is network mounted -- can't stop ${IFACE}"
return 1
fi
return 0
}
postup() {
return 0
}
postdown() {
return 0
}
|
5.b. Funkce pro bezdrátové sítě
Poznámka:
Pokud používáte WPA Supplicant, nebudou tyto funkce pracovat, máte však možnost
využít proměnné ${ESSID} a ${ESSIDVAR} ve funkci postup().
|
Pro kontrolu chování při asociaci k bezdrátové síti je možné definovat dvě
další funkce. Jejich první parametr je opět jméno rozhraní.
Návratová hodnota 0 (úspěch) funkce preassociate() indikuje, že
konfigurace/dekonfigurace rozhraní může pokračovat, nenulová hodnota prováděnou
akci přeruší.
Výsledek funkce postassociate() je ignorován, neboť na něj ani nelze
odpovídajícím způsobem reagovat.
Hodnota proměnné ${ESSID} obsahuje přesné ESSID AP, na které se
připojujete, ${ESSIDVAR} totéž, avšak po konverzi do podoby, kterou
bash akceptuje pro názvy proměnných.
Výpis kódu 2.1: Funkce před asociací a po ní |
preassociate() {
local user pass
eval user=\"\$\{leap_user_${ESSIDVAR}\}\"
eval pass=\"\$\{leap_pass_${ESSIDVAR}\}\"
if [[ -n ${user} && -n ${pass} ]]; then
if [[ ! -x /opt/cisco/bin/leapscript ]]; then
eend "For LEAP support, please emerge net-misc/cisco-aironet-client-utils"
return 1
fi
einfo "Waiting for LEAP Authentication on \"${ESSID//\\\\//}\""
if /opt/cisco/bin/leapscript ${user} ${pass} | grep -q 'Login incorrect'; then
ewarn "Login Failed for ${user}"
return 1
fi
fi
return 0
}
postassociate() {
return 0
}
|
Poznámka:
Proměnné ${ESSID} a ${ESSIDVAR} nejsou k dispozici
ve funkcích predown() a postdown().
|
6. Správa nastavení sítí
6.a. Správa sítě
Pokud s počítačem často cestujete, pravděpodobně nemáte neustále
k dispozici síťovou konektivitu. Může se proto hodit, pokud při zasunutí
síťového kabelu nebo nalezení AP dojde k automatické aktivaci sítě.
Následuje přehled některých nástrojů, jež můžete s výhodou použít.
Poznámka:
Ačkoli se tato část zaobírá pouze démonem ifplugd, existují i jeho
alternativy, například quickswitch.
|
6.b. ifplugd
ifplugd je
démon, který spouští a zastavuje síťová rozhraní při zasunutí, resp. vypojení
síťového kabelu. Také se dá použít k detekci úspěšného připojení
k přístupovému bodu bezdrátové sítě nebo pro upozornění, když se další bod
objeví v dosahu.
Výpis kódu 2.1: Instalace ifplugd |
# emerge sys-apps/ifplugd
|
Konfigurace pro ifplugd je rovněž poměrně přímočará. Konfigurační soubor je
umístěn v /etc/conf.d/ifplugd. Pro vysvětlení funkce
jednotlivých proměnných vás odkážeme na manuálovou stránku — man ifplugd.
Výpis kódu 2.2: Ukázková konfigurace ifplug |
INTERFACES="eth0"
AUTO="no"
BEEP="yes"
IGNORE_FAIL="yes"
IGNORE_FAIL_POSITIVE="no"
IGNORE_RETVAL="yes"
POLL_TIME="1"
DELAY_UP="0"
DELAY_DOWN="0"
API_MODE="auto"
SHUTDOWN="no"
WAIT_ON_FORK="no"
MONITOR="no"
ARGS=""
MONITOR_wlan0="yes"
DELAY_UP_wlan0="5"
DELAY_DOWN_wlan0="5"
|
Obsah tohoto dokumentu je licencován pod licencí Creative Commons -
Attribution / Share Alike.
|