A dokumentum írásának pillanatában a Gentoo Linux a hetedik legnépszerűbb disztribúció a Distrowatch ranglistáján. Nem rossz egy ilyen viszonylag fiatal disztribúciótól. A Gentoo ez egyik ``forgasd magad, optimalizád, tuningold a végletekig'' filozófiájú disztribúció. A napokban jelent meg a Gentoo 2004.2-es verziója. Ebből az alkalomból úgy döntöttem, hogy kipróbálom.
Ezen írás ennek a próbálkozásnak a meglehetősen szűkszavú, de képekben gazdag jegyzőkönyve. A Gentoo Linux disztribúció nem éppen a click&play embereknek való. Csak azoknak javasolt, akik nem restek konzolon parancsokat gépelgetni, ismerik a Linux rendszerek működését minimum alap szinten, képesek angol dokumentációt olvasni és értelmezni, valamint türelmesek. Egy biztos, a Gentoo nem a kapkodó idegbetegek disztribúciója. Maga a telepítés is órák/napok kérdése, függően a rendelkezésre álló gép paramétereitől. Csak azoknak érdemes a Gentooba belevágni, akik bika géppel rendelkeznek. Persze telepíthetjük a Gentoo-t előre fordított csomagokból is, de akkor elveszik az egész lényege, a forrásból fordított disztribúció varázsa, a mindent aprólékosan beállító ``buherátor'' legfőbb álma... Ha valaki kezdő de bátor, szintén nekiállhat a rendszer telepítésének. Egy biztos, mire végez vele, megismeri a Linux operációs rendszer működését a partícionálástól kezdve a kernelfordításon át, az init szkriptek szerepéig... Persze, hogy meg, hiszen forráskódból fogja felépíteni az egészet, mindenfajta telepítő program nélkül fogja a gépére telepíteni... A végén elégedetten hátradőlhet, és elmondhatja: ``Igen, jó munka volt. Ezt én csináltam saját kezűleg.''
A dokumetum leírja az operációs rendszer felépítésének menetét ``from scratch'', azaz teljesen 0-ról indulva. A telepítéshez semmi másra nincs szükség, mint az install-x86-minimal-2004.2.iso image-ből (80.3 MB) égetett LiveCD-re, és szélessávú internet kapcsolatra. Az írás 60+ képet tartalmaz, így légy türelmes, míg az egész letöltődik...1.) A telepítéshez töltsük le a install-x86-minimal-2004.2.iso névre hallgató ISO image-t valamelyik tükörszerverről. A cikk írásának pillanatában, 2 nappal a 2004.2 megjelenése után még mindig nem használható a hivatalos magyar tükörszerver (You don't have permission to access /releases/x86/2004.2/ on this server.). A hozzám legközelebb álló mirror a http://gentoo.inode.at/, de a telepítéskor (a megjelenés napján) az Open Source Lab amerikai szerverét használtam, mert meglepő ugyan, de az volt a leggyorsabb.
2.) Írjuk az ISO image tartalmát CD-re.
# cdrecord dev=ahol_van_az_író -tao -data install-x86-minimal-2004.2.iso
3.) Bootoljunk a CD-ről:

4.) A telepítő (F2) detektálja a számítógépünk hardver eszközeit:


5.) Állítsuk be a billentyűzet kiosztást magyarra (már ha azt szoktuk meg).
#loadkeys hu
vagy
# loadkeys hu101
Amennyiben szükségünk van extra kernel modulokra, töltsük be azokat. Például:
# modprobe 8139too
6.) Ellenőrizzük le a merevlemezünk beállításait, és ha szükséges finomhangoljuk:
# hdparm -i /dev/hda
# hdparm /dev/hda
Ez egy nagyon fontos lépés, mert rengeteget fogunk fordítani. DMA nélkül neki se álljunk, mert az életben nem végzünk. Mivel a DMA be van kapcsolva, haladhatunk tovább. A további finomhangolások a rendszer feltelepítése utánra maradnak.

7.) Változtassuk meg a root jelszót (ha szeretnénk a gépet elérni mondjuk ssh-n keresztül, akkor szükség lehet a jelszóra) (opció).
# passwd
8.) Hozzunk létre egy felhasználót (opció).

9.) Állítsuk be a hálózatot. Amennyiben a hálózatunkon van DHCP szerver, abban az esetben (ha a telepítő felismerte a gépben a hálózati kártyát a boot-olás folyamán) már rendelkezik a gépünk IP címmel. Ha nincs DHCP szerverünk, akkor állítsuk be a hálózatot kézzel:

Opció: indítsuk el az sshd-t a ``/etc/init.s/sshd start'' paranccsal. Ettől a pillanattól kezdve távolról is elérhetjük a gépünket.
10.) Állítsuk be a DNS szervereket a /etc/resolv.conf-ban:
# nano -w /etc/resolv.conf

11.) Teszteljük le az internetes kapcsolatunkat:

12.) Készítsük elő a merevlemezt a telepítéshez. Ehhez használjuk az ``fdisk'' segédprogramot.
# fdisk /dev/hda
A ``p''-t lenyomva megkapjuk az aktuális merevlemez felosztást. Mivel ez egy új merevlemez, nekiláthatunk a partícionálásnak. Először hozzunk létre egy kis méretű boot partíciót. Ezt az ``n'' lenyomásával tudjuk elvégezni (a partícionáláskor használt billentyűk a képekről leolvashatók):

Ha elkészültünk, akkor tegyük a partíciót boot-olhatóvá:

13.) Készítsünk egy swap partíciót, amelynek a mérete legyen 512MB (természetesen a saját rendszerünkhöz mérten készítsük el a partíciókat). Járjunk el hasonló módon, mint az előbb:

14.) Készítsük el a / partíciót is. Ha kész, mentsük el a partíció kiosztást a ``w'' lenyomásával.

15.) Készítsük el a partícióink filerendszereit. A /dev/hda1 (/boot) kis mérete miatt nem lehet más, mint ext2. A / partíciónknak válasszunk valami nekünk tetsző filerendszert (ext2, ext3, JFS, XFS, stb.). Én a ReiserFS-t választottam. Készítsük el a filerendszereket.
# mke2fs /dev/hda1
# mkreiserfs /dev/hda3


16.) Ha kész, aktiváljuk a swap partíciót:
# mkswap /dev/hda2
# swapon /dev/hda2

17.) Ha kész vagyunk, akkor mountoljuk a filerendszereket:
# mount /dev/hda3 /mnt/gentoo
# mkdir /mnt/gentoo/boot
# mount /dev/hda1 /mnt/gentoo/boot

18.) Hozzuk létre a /mnt/gentoo/proc könyvtárat, és mountoljuk a /proc filerendszert:
# mkdir /mnt/gentoo/proc
# mount -t proc none /mnt/gentoo/proc
Ha készen vagyunk, ellenőrizzük a munkánkat a mount parancs kiadásával:

19.) Következik a Stage tarball telepítése. Ezt az Internet segítségével fogjuk elvégezni. Először ellenőrizzük a rendszerünk óráját:
# date
Ha kell korrigáljunk. Pl:
# date 072716322004
(ez a 2004. 07. 27. 16 óra 32 percet állít be)

20.) Lépjünk be a /mnt/gentoo könyvtárba és keressük meg a links segítségével a tükörszerverek listáját:
# links http://www.gentoo.org/main/en/mirrors.xml


21.) A hozzánk legközelebb eső tükörszervert kiválasztva töltsük le a stage1-x86-2004.2.tar.bz2 file-t, majd ha készen vagyunk, ellenőrizzük le az integritását!



22.) Bontsuk ki a stage-et. Figyeljünk oda a tar kapcsolókra! Fontos, hogy ezeket használjuk!
# tar -xvjpf stage1-x86-2004.2.tar.bz2
Az archív kibontása alatt jelentkező "No such file or directory" (./proc) és az "Error exit delayed from previous errors" hibákat haggyuk figyelmen kívül!

23.) A Portage telepítése. A tapasztalatom az, hogy ha egy meglevő Portage snapshot-ra ``emerge sync''-elünk rá gyorsabban végzünk, mintha 0-ról indulunk. Töltsük le a legfrissebb Portage archívot a tükörszerveren levő snapshots könyvtárból:

majd bontsuk ki a következő paranccsal:
# tar -xvjf portage-2004*.tar.bz2 -C /mnt/gentoo/usr
24.) Állítsuk be a fordító opcióit a rendszerünk paramétereinek megfelelően. Egy példa konfigot találunk a /mnt/gentoo/etc/make.conf.example helyen. Legegyszerűbb ezt a file-t átmásolni /etc/make.conf-ra. De van más megoldás is. Tégy belátásod szerint.
# nano -w /mnt/gentoo/etc/make.conf
Állítsuk be a make.conf-unkat. A paraméterek beállításához segítséget találunk a Gentoo Handbook-ban. Ez egy nagyon fontos rész, körültekintően olvasd el a Handbook idevágó szakaszát!
25.) A Gentoo alaprendszer telepítése következik. Válasszuk ki a leggyorsabb tükörszervert a mirrorselect segítségével. Ez a lépés opció, ha tudod melyik szervert akarod használni, akkor egyszerűen add meg a /etc/make.conf-ban azt.
# mirrorselect -a -s4 -o | grep -ve '^Netselect' >> /mnt/gentoo/etc/make.conf
ha valamiért ez nem sikerülne, ne aggódjuk, mert az alapértelmezett is jó lesz. Ez csak egy opció.
26.) Másoljuk át a DNS információkat a megfelelő könyvtárba:
# cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf
chroot-oljunk a /mnt/gentoo-ba, és hozzuk létre az új környezetet az env-update-tel:
# chroot /mnt/gentoo /bin/bash
# env-update

# source /etc/profile
27.) Frissítsük fel a Portage-et:
# emerge sync



28.) Ha kész a Portage frissítése, nekiláthatunk a Stage1 -> Stage2 lépésnek. Mivel mi a telepítés elején a stage1-et választottuk, az egész rendszert újra fogjuk fordítani. Kezdjük a bootstrap-pal. A bootstrap a GNU C könyvtárat, a GNU fordítót, és számos más kulcsfontosságú programot takar. Hogy csökkentsük a fordítási időt, a java támogatást ideiglenesen kapcsoljuk ki:
# export USE="-java"
A bootstrap szkript lefutása után ne felejtsük majd el visszaállítani a korábbi állapotot a következő paranccsal:
# unset USE
Töltsük le a szükséges forrásokat:
# cd /usr/portage
# scripts/bootstrap.sh -f

ha ez kész, akkor álljunk neki a bootstrap-nak:

# cd /usr/portage
# scripts/bootstrap.sh
Ennél a lépésnél nyugodtan otthagyhatjuk a gépet. Ez a művelet még gyors gépen is több időt vesz igénybe, mint egy óra. Gyenge gépen több óra, vagy akár több nap is lehet.
29.) Ha kész vagyunk a bootstrap fordításával, akkor folytassuk a rendszer építését. Ha kíváncsiak vagyunk, hogy a rendszer mit fog csinálni, adjuk ki a következő parancsot:
# emerge --pretend system | less
Ha megnéztük, töltsük le a rendszer (system) forrását:
# emerge --fetchonly system

Ha kész a művelet, haladhatunk tovább:

30.) Következik a rendszer (system) felépítése (build):
# emerge system
31.) Kész a rendszer felépítése. Merge-ljük a rendszer által nem merge-lt fileokat a /etc-ben. Ehhez olvasd el az ``emerge --help config'' súgó oldalt. Több lehetőséged is van ennek elvégzésére. Legegyszerűbb megoldás az ``etc-update'' használata.


32.) Folytassuk a rendszer telepítését a kernel konfigurációval. Első az időzóna beállítása:

Ha ez kész válasszuk ki a telepítendő kernelt. Ehhez segítséget nyújt a Gentoo Kernel Guide. Én a ``gentoo-dev-sources''-t választottam, amely a Gentoo által patchelt 2.6-os kernelt jelenti. A teljes lista a Handbookban!
Telepítsük a kernel forrását:
# emerge gentoo-dev-sources

Ha kész,

ellenőrizzük a kernel forrás symlink-jét:
# ls -l /usr/src/linux
Ha megfelelő, haladjunk tovább. Itt az idő a kernel konfigurációra és fordításra. A tapasztaltaknak ez nem lehet probléma, mindent ugyanúgy kell elvégezni, ahogy más rendszereken. A kernel konfigurációhoz ismét a Handbook lehet jó forrás. Aki nem biztos magában, az fordítson először genkernel-t. Ez a Gentoo által összeállított generic kernel. Ez a kernel megegyezik a LiveCD-n található kernellel. Mi most ezt fogjuk tenni:
# emerge genkernel


Ha ez kész, fordítsuk le a kernelt:
# genkernel all

33.) Ellenőrizzük le a lefordított kernel és az elkészített initrd meglétét:
# ls /boot/kernel* /boot/initrd*
34.) Ha kész a kernel fordítása, telepítsük fel a hotplug anyagokat:
# emerge hotplug


# rc-update add hotplug default
35.) Ha készen vagyunk, és szükségünk van egyéb kernel modulokra is (pl. NVidia, ATi, SB Live!), olvassuk el a Handbook idevágó szakaszát.
36.) Ha készen vagyunk

akkor, készítsük el a /etc/fstab bejegyzéseket:

37.) Állítsuk be a hálózati adatokat:

végezzük el a beállításokat a /etc/conf.d/net fileban értelemszerűen

majd
# rc-update add net.eth0 default

állítsuk be a /etc/hosts file-t

38.) Ha kész vagyunk a hálózat beállítással, akkor nézzük meg a /etc/rc.conf file-t. Ez a file tartalmazza a Gentoo rendszer szintű beállításait. Itt tudjuk beállítani a billentyűzet kiosztást, a console fontot, az alapértelmezett editort... Jól kommentezett, mindenki állítsa be ízlése szerint...
# nano -w /etc/rc.conf
39.) Grub vagy LILO... Grub vagy LILO... LILO, mert én azt szeretem. Aki a Grub-ot szereti, az nyugodtan válassza azt. Semmivel nem bonyolultabb telepíteni.
# emerge lilo
40.) Ha kész állítsuk be a /etc/lilo.conf-ot
# cp /etc/lilo.conf.example /etc/lilo.conf
# nano -w /etc/lilo.conf
Valahogy így nézzen ki:

Ha kész, akkor
# /sbin/lilo
41.) Telepítsük fel a System Logger-t:
# emerge syslog-ng
# rc-update add syslog-ng default

42.) A Cron Daemon-t:
# emerge vixie-cron
# rc-update add vixie-cron default

43.) A filerendszer programokat
# emerge reiserfsprogs

44.) Mindjárt kész... Állítsuk be a root jelszót:
# passwd
# useradd trey -m -G users,wheel,audio,tty -s /bin/bash
# passwd trey
Password: (Jelszó)
Re-enter password: (Jelszó újra)
45.) Kész. Újraindítás:
# exit
# cd /
# umount /mnt/gentoo/boot /mnt/gentoo/proc /mnt/gentoo
# reboot

46.) A rendszer indul a LILO-val:

47.) Bootol a rendszer....

48.) És végül a kész rendszerünkön megkezdhetjük a munkát:

FIGYELEM! Ez a telepítési leírás nagyon felületes, aki teljesen el akar mélyedni a Gentoo rejtelmeiben, annak célszerű beleolvasni a Gentoo Handbook-ban. Ezzel a telepítéssel egy csont minimális rendszert telepítettünk, a használható rendszerhez még sok munkára és türelemre van szükség. A rendszer generic kernelt használ. Természetesen mindenki fordítha magának saját kernelt, de itt is igaz az ami az OpenBSD-nél, hogy ha bugot jelentesz, akkot azt a report előtt reprodukálnod kell a generic kernellel is. A bootkor kiszedtem minden sallangot, mert engem kifejezetten zavar a tehénfejes képernyő. A rendszer egyébként jól összerakott valami, minden elsőre működik. Nagyon jó online dokumentációja van. Érdemes kipróbálni. A jó tapasztalatok ellenére maradok a Debian-nál :-D
Jó szórakozást!