Izvor:Installing Gentoo 2004.3: Stage 1 NPTL on a Stage 3 Tarball
Autor: Bob P
Prevod: z10n
Komentari i podrška: Instalacija Gentoo.2004.3: Stage1+NTPL iz Stage3 arhive
Download verzije:PDF verzija na engleskom TXT verzija na srpskom
BRŽE OD METKA I SNAŽNIJE OD LOKOMOTIVE…Kako da napravite snažan i brz Gentoo Linux sistem !
Svaka Gentoo instalacija koja se bazira samo na instalaciju iz Stage 3 arhive, pati od dva problema: prvi problem stvaraju zavisnosti na baznom sistemu a drugi je potencijal da iste, iza sebe ostave neželjene fajlove iz Stage arhive, jer u arhivi /var/db/pkg nije dovršen.
Ovde rac (Administrator) kaže: “Postoji preko 80 paketa u stage1 arhivi koji nisu izlistani u /var/db/pkg. Zašto? Kada radite vaš ”emerge system“, naravo da želite da upotrebite Vaš novi toolchain da bi ste preveli sistem i sav Vaš sofver koji koristite. Ako Portage vidi da je određena verzija iz Stage arhive i dalje trenutna, zanemariće je, i neće je ponovo prevesti. U situaciji gde neko očigledno bira šta će da prevodi, Portage će zaboraviti da je većina tog softvera već instalirana, što će na kraju napraviti takav efekat da Portage neće biti u stanju da počisti sve kada se ”emerge system“ završi”.
Kad malo bolje pogledamo, izgleda da ima dosta razloga za novu instalaciju od Stage 1 arhive, i dosta razloga da se Gentoo uvek instalira iz Stage 3 arhive. Još jedna dobra vest je ta, da je moguće izvesti Stage 1 instalaciju koristeći Stage 3 arhivu i na kraju dobiti najbolje iz oba sveta
Ovaj instalacioni vodič će opisati kako da uradite takozvanu “Stage 1 na 3” instalaciju Gentoo Linuxa na Pentium klasi PC’a (x86 platforma) koristeći 2004.3 instalacioni mediji, CD-ROM i EIDE hard disk. Pored toga ćemo koristiti poslednji 2.6 kernel, NPTL triding, udev, i poslednju verziju GCC 3.4.3 kompajlera.
ISO slika potrebnog Live diska se nalazi na adresi install-x86-minimal-2004.3-r1.iso
Na početku u boot promptu “boot:”, pritiskamo <Enter> da bi smo selektovali standardni (default) gentoo kernel.
Predpostavimo da je naša mrežna kartica prepoznata i da adresu dobijamo preko mreže konekcijom na DHCP server.
# dhcpcd eth0
Ako to ipak nije slučaj, onda postupamo na sledeći način. Upisujemo statičku IP adresu u fajl /etc/conf.d/net i default gateway, naravno, ako ga imamo:
# nano -w /etc/conf.d
Primer konfiguracije statičke IP adrese izgleda ovako:
conf_eth0="192.168.2.222/24" route_eth0="default via 192.168.2.250"
4.1 Pregled parametara hard diska
U sledećem primeru prihvatamo činjenicu da je samo jedan hard disk instaliran na našem sistemu. On će biti prepoznat kao /dev/hda. Prvo ćemo pogledati default parametre diska pri podizanju, ovako:
# hdparm /dev/hda /dev/hda: multcount = 16 (on) IO_support = 0 (default 16-bit) unmaskirq = 0 (off) using_dma = 1 (on) keepsettings = 0 (off) readonly = 0 (off) readahead = 256 (on) geometry = 16383/255/63, sectors = 120034123776, start = 0
Korisno je pogledati i informacije o disku:
# hdparm -i /dev/hda
/dev/hda:
Model=WDC WD1200JB-00GVA0, FwRev=08.02D08, SerialNo=WD-WMAL92634373
Config={ HardSect NotMFM HdSw>15uSec SpinMotCtl Fixed DTR>5Mbs FmtGapReq}
RawCHS=16383/16/63, TrkSize=57600, SectSize=600, ECCbytes=74
BuffType=DualPortCache, BuffSize=8192kB, MaxMultSect=16, MultSect=16
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=234441648
IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5
AdvancedPM=no, WriteCache=enabled
Drive conforms to: device does not report version:
* signifies the current active mode
4.2 Podešavanje parametara hard diska koristeći hdparm
U ovom primeru se koristi hard disk WD1200JB. Moguće je dobiti bolje performanse koristeći nekoliko parametara programom hdparm. Sledeći parametri vrlo dobro rade sa ovim modelom diska:
# hdparm -a256A1c1d1m16u1 /dev/hda /dev/hda: setting fs readahead to 256 setting 32-bit IO_support flag to 1 setting multcount to 16 setting unmaskirq to 1 (on) setting using_dma to 1 (on) setting drive read-lookahead to 1 (on) multcount = 16 (on) IO_support = 1 (32-bit) unmaskirq = 1 (on) using_dma = 1 (on) readahead = 256 (on)
4.3 Test performansi hard diska
Ovo su tipični rezultati za Pentium klasu PC’a bez UDMA…
# hdparm -tT /dev/hda /dev/hda: Timing cached reads: 144 MB in 2.04 seconds = 70.60 MB/sec Timing buffered disk reads: 26 MB in 2.65 seconds = 9.81 MB/sec
…a ovo za Pentium 3 klasu sa UDMA66:
# hdparm -tT /dev/hda /dev/hda: Timing cached reads: 520 MB in 2.01 seconds = 258.75 MB/sec Timing buffered disk reads: 114 MB in 3.01 seconds = 37.90 MB/sec
4.4 Particionisanje hard diska
4.4.1 Prikaz informacija o particijama
U tehničkom smislu, sintaksa ove komande se koristi da bi se promenile informacije o particijama, ali ako je slučaj ne particionisanog diska onda će biti prikazane informacije koje su trenutno dostupne:
# fdisk /dev/hda The number of cylinders for this disk is set to 14593. There is nothing wrong with that, but this is larger than 1024, and in certain setups could cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Command (m for help): p Disk /dev/hda: 120.0 GB, 120034123776 bytes 255 heads, 63 sectors/track, 14593 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System Command (m for help):
4.4.2 Planiranje particione sheme:
Da bi smo održali jednostavnost, krećemo sledećom shemom za particionisanje. Detalje ćemo izostaviti, nadam da znamo kako se particioniše hard
!?
Partition File System ID Size Description /dev/hda1 ReiserFS 3.6 83 100 MB Boot partition /dev/hda2 (swap) 82 512 MB Swap partition /dev/hda3 ReiserFS 3.6 83 Remainder Root Partition
4.4.3 Particionisanje hard diska
Nema detalja jer predpostavljam da znamo kako se to radi …
4.4.4 Provera particja
Disk /dev/hda: 120.0 GB, 120034123776 bytes 255 heads, 63 sectors/track, 14593 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/hda1 * 1 13 104391 83 Linux /dev/hda2 14 76 506047+ 82 Linux swap /dev/hda3 77 14593 116607802+ 83 Linux
4.4.5 Particionisanje se privodi kraju…
Izlazimo iz Fdiska i snimamo formirane particije pritiskom tastera “w” da bi smo upisali particionu tabelu na disk i izašli iz Fdiska.
Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks
Particionisanje se može uraditi i programom cfdisk, samo otkucamo #cfdisk i startovaće se “udoban” meni iz kojeg imamo detaljan “grafički” prikaz kompletne particione tabele na disku
4.5 Instalacija fajl sistema
Sledeći primer obuhvata instalaciju Reiser 3.6 fajlsistema na /boot i / (root) particiju i naravno swap na /swap particiju.
4.5.1 Instalacija Reiser FS na /dev/hda1 i /dev/hda3
# mkreiserfs /dev/hda1 && mkreiserfs /dev/hda3
Ostaje nam samo da odgovorimo potvrdno sa “Y” kada budemo dobili pitanje da li da se nastavi instalacija Reiser FS na hard disk.
4.5.2 Instalacija swap particije na /dev/hda2
# mkswap /dev/hda2 && swapon /dev/hda2
4.6 Montiranje fajl sistem komandom “mount”
Kada je sve gotovo, i particije i fajlsistemi, na redu je “montaža”:
# mount /dev/hda3 /mnt/gentoo # mkdir /mnt/gentoo/boot # mount /dev/hda1 /mnt/gentoo/boot
5.1 Nabavka Stage3 arhive
Prvo Prebacujemo se u gentoo direktorijum, kako bi smo arhivu odmah dovukli u direktorijum gde će i biti otpakovana:
# cd /mnt/gentoo
Potrebna su nam dva fajla koje moramo da dovučemo sa mirora: Stage 3 arhivu i njen checksum file. Ovi fajlovi su locirani na mirorima u sledećem direktorijumu: /releases/x86/2004.3/stages/x86/ . Da bi smo ih dovukli, koristićemo komandu “wget” iz bash prompta. Sve kucamo u jednoj liniji, ovako:
# wget ftp://mirror.etf.bg.ac.yu/gentoo/releases/x86/2004.3/stages/x86/stage3-x86-2004.3.tar.bz2 # wget ftp://mirror.etf.bg.ac.yu/gentoo/releases/x86/2004.3/stages/x86/stage3-x86-2004.3.tar.bz2.md5
Ako želimo da proverimo listu mirora, Klik ovde!
(naravno, ako naša arhitektura nije x86, potrebno je da promenimo putanju i naziv fajla da bi smo dovukli pravu arhivu).
5.2 md5sum provera arhive
# md5sum -c stage3-x86-2004.3.tar.bz2.md5 stage3-x86-2004.3.tar.bz2: OK
5.3 Otpakivanje Stage3 arhive
Ovo ćemo uraditi na sledeći način:
tar -xjpvf stage3-x86-2004.3.tar.bz2
Ok. sad je možda pravo vreme da napravimo pauzu i nadoknadimo potrošeni kofein, jer ovo može i da potraje …
5.4 Portage - instalacija
5.4.1 Nabavka Portage arhive - (Portage snapshot)
# wget ftp://mirror.etf.bg.ac.yu/gentoo/snapshots/<portage-godina_mesec_dan>.tar.bz2
5.4.2 Portage arhiva - raspakivanje
Kako bi smo raspakovali Portage, koristimo:
tar -xjvf /mnt/gentoo/<portage_snapshot>.tar.bz2 -C /mnt/gentoo/usr
Portage arhiva (snapshot) imaja naziv u formatu “portage-YYYYMMDD.tar.bz2”, gde YYYY, MMM, i DD predstavljaju godinu, mesec i dan kada je arhiva napravljena. Kao što je napisano gore u upustvu uvek treba izabrati poslednju verziju, koja se uvek pojavi predhodnog dana od dana kada istu dovlačimo.
Pratimo sledeće linije:
# wget ftp://mirror.etf.bg.ac.yu/gentoo/snapshots/portage-20050101.tar.bz2 # wget ftp://mirror.etf.bg.ac.yu/gentoo/snapshots/portage-20050101.tar.bz2.md5sum # md5sum -c portage-20050101.tar.bz2.md5sum # tar -xjvf /mnt/gentoo/portage-20050101.tar.bz2 -C /mnt/gentoo/usr
Moram da napomenem da neki od ovih koraka zahtevaju dosta vremena, u zavisnosti od konfiguracije i brzine internet konekcije.
6.1 Kopiranje DNS informacija
Kopiramo DNS informacije iz /etc/resolv.conf kako bi smo obezbedili mrežu u našem novom Gentoo okruženju.
# cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf
6.2 Montiranje proc fajl sistema
Montiraćemo /proc fajl sistem da obezbedimo našoj novoj Gentoo instalaciji da koristi kernel informacije unutar chroot okruženja.
# mount -t proc none /mnt/gentoo/proc # cp /proc/mounts /mnt/gentoo/etc/mtab
6.3 Chroot u novo okruženje
# chroot /mnt/gentoo /bin/bash # env-update # source /etc/profile
6.4 Datum i vreme
6.4.1 Podešavanje ispravnog datuma i vremena
Komanda za datum koristi sintaksu MMDDHHMMYYYY, gde je MM mesec, DD dan, HHMM je vreme i YYYY godina. Vreme kad ovo kucam je Nedelja 27 Mart 2005 u 22:56.
# date 032722562005 Sun Mar 27 22:56:00 Local time zone must be set--see zic manual page 2005
6.4.2 Simbolički link (symlink) za vremensku zonu
Ovaj primer prikazuje dostupne vremenske zone za zapadnu hemisferu:
# ls /usr/share/zoneinfo/America
Mi ćemo lokalnu vremensku zonu da podesimo na Evropsku. Da bi smo to uradili prvo ćemo obrisati symlink koji vodi na default vremensku zonu, pa ćemo posle zameniti simlinkom lokalne vremenske zone:
# rm /etc/localtime # ln -s /usr/share/zoneinfo/Europe/Belgrade /etc/localtime Sun Mar 27 22:56:50 CST 2005
6.5 USE flagovi, opcije za Portage i opcije za kompajler: /etc/make.conf
U sledećem primeru, sistem prevodimo za ~x86 arhitekturu i za Pentium klasu i586 podarhitekturu. Naša CHOST podešavanja će biti i586-pc-linux-gnu. ovde nećemo puno govoriti puno o USE flagovima jer je trenutno stanje dokumentacije za iste, pa može se reći ne dovršeno. Trenutno postoji oko 100 ne dokumentovanih USE flagova.
Mi ćemo ovde koristiti malu kolekciju USE flagova da bi smo napravili naš base sistem. Slobodni se da dodajete USE flagove koje Vi smatrate da će vam biti potrebni, u zavisnosti kakav sistem želite da napravite.
Pažnja: Uključivanje nptl, ithreads i phreads USE flagova a izbacivanje nptlonly USE flaga je nameran, kako bi smo za glibc omogućili podršku za oba NPTL i linuxthreads (pthreds).
Napomena: Zbog sve češćih problema sa linux26-header-ima, preporučuje se korišćenje stable grane (x86) po defaultu. Ako se ipak odlučite za testing granu (~x86), nastavljate na svoju odgovornost.
# cat /etc/make.conf
CHOST="i586-pc-linux-gnu"
CFLAGS="-O2 -march=pentium -pipe"
CXXFLAGS=${CFLAGS}
# "x86" **izbor za stabilnu softver granu**
# "~x86" **izbor za testing softver granu**
ACCEPT_KEYWORDS="x86"
PORTAGE_TMPDIR=/var/tmp
PORTDIR=/usr/portage
DISTDIR=${PORTDIR}/distfiles
PKGDIR=${PORTDIR}/packages
PORT_LOGDIR=/var/log/portage
PORTDIR_OVERLAY=/usr/local/portage
GENTOO_MIRRORS="ftp://mirror.etf.bg.ac.yu/gentoo"
MAKEOPTS="-j2"
PORTAGE_NICENESS=3
AUTOCLEAN="yes"
FEATURES="sandbox userpriv distlocks"
USE="acpi cups ithreads ldap nls nptl pam pthreads python readline samba ssl tcpd"
Naravno, konfiguracija make.conf fajla zavisi od, na primer, arhitekture procesora, namene Vašeg novog sistema itd.
6.6 Dodatna Portage podešavanja
6.6.1 Pravljenje direktorijuma za Portage
Primer /etc/make.confa u nastavku, određuje direktorijume za Portage log fajlove i njegovo preklapanje (overlay). Ako nameravamo da koristimo loging i overlay funkcije, prikazane u primeru make.conf fajla, onda moramo da napravimo ove direktorijume na našem sistemu, pošto ovakav primer nije uključen kao standardni deo Gentoo instalacije, tj. standardno (po defaultu) ne postoje ovi direktorijumi.
# mkdir /var/log/portage # mkdir /usr/local/portage
6.6.2 Package Keywords
Uključivanje GCC 3.4.3 u stabilnu granu
Propustićemo ovaj korak ako smo predhodno konfigurisali naš sistem za testing (unstable ~x86) granu (eng.branch). Ako to nije slučaj nastavljamo dalje. Trenutno, kad je ovaj vodič napisan, GCC 3.4.3 je deo nestabilne (unstable) ili testing grane u Portage’u. Ako smo odlučili da koristimo “x86” stabilnu granu, onda moramo da konfigurišemo Portage i da ga “obavestimo” da smo uključili korišćenje nestabilnog (~x86) paketa, GCC 3.4.3 i još nekih toolkit komponenata.
Da bi smo konfigurisali sabilnu granu sistema da koristi ebuild testing (unstable) grane, moramo da dopustimo Portage’u da zna da smo odobrili ovaj podskup testing grane da se koristi u našem sistemu. Ovo će biti završeno tako što ćemo upisati ime paketa i prikladnu “ključnu reč” (keyword) u /etc/portage/package.keywords fajl, i na ovaj način će biti uključujena podrška za nestabilnu, testing granu u našem sistemu.
# cat /etc/portage/package.keywords
sys-devel/gcc ~x86 sys-devel/gcc-config ~x86 sys-libs/libstdc++-v3 ~x86 sys-libs/glibc ~x86
6.6.3 Nadogradnja Portage stabla
Na redu je Portage arhiva i nadogradnja iste kako bi smo uključili trenutno Portage stablo.
emerge --sync
6.7 Aktivacija korisničkih lokala “User Locales”
Kada kompajliramo, prevodimo, glibc (ovo ćemo uraditi u sledećem koraku), predefinisano (default) Gentoo “ponašanje” je da prevede kompletan skup svih dostupnih korisničkih lokala. Da bi smo ovo izbegli, kako bi smo drastično smanjili vreme koje je potrebno za prevođenje, koristimo USE flag userlocales
6.7.1 Dodavanje userlocales USE flaga za glibc
# cat /etc/portage/package.use sys-libs/glibc userlocales
6.7.2 Određivanje korisničkih lokala
Ako ne postoji fajl /etc/locales.build, onda ga moramo sami napraviti, koristeći, naravno, naš omiljeni editor. Za naše potrebe, sadržaj fajla bi trebao da izgleda ovako:
# cat /etc/locales.build en_US/ISO-8859-1 en_US.UTF-8/UTF-8
Kada budemo prevodili glibc, ako je uključen ovaj USE flag userlocales onda će glibc “pogledati” fajl /etc/locales.build, pročitati sadržaj i nastaviti sa prevođenjem korisničkih lokala koji su u istom fajlu definisani. Ovim postupkom, kako smo već spomenuli, štedimo vreme koje je potrebno za prevođenje glibc biblioteke.
7.1 Izgradnja osnovnog skupa alata
Konačno prelazimo na najzanimljiviji i po meni, najlepši deo ove alternativne metode: izgradnju osnovnog skupa alata, sa kojim ćemo podići kompletan Gentoo sistem. Ovaj skup alata zovemo Toolkit ili Toolchain. U daljem tekstu će Vam postati jasnije “zašto se baš tako zove!?”
Da bi smo obezbedili NPTL podršku, od nas se traži da koristimo 2.6 verziju jezgra (kernela) i njegova, linux26 zaglavlja (linux26-headers). Na žalost, 2004.3 Stage 3 arhiva, sadrži zastarela linux zaglavlja (linux-headers), koja će, u ovom slučaju, imati ulogu blokera, kada budemo pokušali da uradimo instalaciju linux26 zaglavlja. Kako bi smo ovo izbegli, pre nego što krenemo u izgradnju našeg skupa alata (toolkita), prvo ćemo očistiti (uraditi unemerge) starih linux zaglavlja pa onda tek nastaviti sa instalacijom (emerge) linux26 zaglavlja.
Linux zaglavlja jezgra (linux kernel headers), se uglavnom nadograđuju samo kada radimo nadogradnju nove verzije GNU C biblioteka (glibc). Kao rezultat ovoga, nas, uvek, čeka ponovo prevođenje glibc biblioteke posle nadogradnje linux26 zaglavlja. Takođe nas čeka instalacija nove verzije binutils i nadogradnja trenutne verzije GCC kada gradimo osnovni skup alata (toolkit).
Pogledajte sledeće linije, kako sve ovo otprilike izgleda, red po red:
# env-update && source /etc/profile # emerge -C linux-headers # emerge linux26-headers # emerge gcc-config glibc binutils gcc
ili ako preferirate jednu liniju, onda ovako:
# env-update && source /etc/profile && emerge -C linux-headers && emerge linux26-headers && emerge gcc-config glibc binutils gcc
7.2 Ponovo prevođenje skupa alata: GCC 3.4.3
Nakon što smo instalirali (uradili emerge) nove verzije GCC kompajlera, trebali bi smo da zastanemo i da, za kratko, razmislimo šta smo zapravo uradili. Kad pogledamo sa strane, mi smo upravo iskoristili GCC 3.3.4 i skup alata koji je izgrađen sa GCC 3.3.4, da bi smo preveli GCC 3.4.3. Dakle pre nego što budemo krenuli u avanturu izgradnje Gentoo sistema, trebali bi smo ponovo da prevedemo kompletan toolchain, kako bi smo na kraju, kao rezultat, dobili GCC 3.4.3 koji je izgrađen sa GCC 3.4.3. Logično, zar ne?
Pre nego krenemo sa potrošnjom vremena u izgradnji novog skupa alata, trebali bi smo da “preispitamo”, vrlo važan fajl /etc/make.conf i da uradimo neophodne izmene, kako bi smo iskoristili nove karakteristike poboljšanja performansi koje nudi GCC 3.4.3. Nakon što završimo sa izmenama u make.conf fajlu, sledeće što se očekuje od nas je ponovo prevođenje skupa alata, gde koristimo novi GCC 3.4.3 komplajler.
Rezultat: Dobijamo 3.4.3 skup alata, prevedenih sa 3.4.3 skupom alata koji je izgrađen sa 3.4.3 skupom alata. Čisto i jednostavno, zar ne
?
7.2.1 Izmene u fajlu make.conf
Pa da krenemo.
Evo nekih podešavanja u make.conf fajlu koje vredi razmotriti. To su trenutni CFLAGS (GCC flagovi) koji se koriste za izgradnju sistema i koji su se pokazali kao pouzdani, na nekoliko različitih instalacija. Ova podešavanja uključuju ekstremni nivo optimizacije koda (odmah se primećuje -O3 flag), i neki bezbedni i stabilni gccflagovi (CFLAGS) koji poboljšavaju performanse. Naravno, u zavisnosti od vašeg hardvera, možete ovde menjati, dodati ili isključiti neka podešavanja.
Kao što primećujete u ovom primeru se upotrebljava Intel Pentium.
CFLAGS="-O3 -march=pentium -mtune=pentium -fforce-addr -momit-leaf-frame-pointer -fomit-frame-pointer -ftracer -pipe"
CXXFLAGS="${CFLAGS} -fvisibility-inlines-hidden"
Ako se ne osećate slobodno da koritite ovakav ekstremni nivo optimizacije koda, možete jednostavno “oboriti” ova podešavanja na manji nivo optimizacije. Ovo će, verovatno, smanjiti vreme za prevođenje, po ceni smanjenja performansi sistema. Naravno, i dalje ćete dobiti većinu privilegija koje nudi GCC 3.4.3, tako da će na kraju, čak i ovo biti dobar kompromis. Ovo, takođe, može biti dobar izbor za sve one koji ne žele “život na ivici noža” ili ne žele da izgube mnogo vremena na otklanjanju mogućih problema.
Pogledajte primer ovakvog slučaja:
CFLAGS="-O2 -march=pentium -mtune=pentium -pipe"
CXXFLAGS=${CFLAGS}
7.2.2 konfiguracija i izbor standardnog (default) C kompajlera
Iako smo instalirali (uradili emerge) GCC 3.4.3 kompajlera, on se svakako neće automatski podesiti kao naš standardni (default) kompajler. Ako ipak sumnjate u ovo, bacite pogled, na brzu u terminalu, na standardni izlaz komande “emerge info” ili “gcc’config -l”. Kao što možete videti, iako smo uradili emerge GCC 3.4.3 on je idalje u senci, nama potrebnog, standardnog (default) kompajlera.
Standardni izlaz pri proveri izgleda ovako:
# gcc-config -l [1] i386-pc-linux-gnu-3.3.4 * [2] i386-pc-linux-gnu-3.4.3 [3] i386-pc-linux-gnu-3.4.3-hardened [4] i386-pc-linux-gnu-3.4.3-hardenednopie [5] i386-pc-linux-gnu-3.4.3-hardenednossp
Kako bi smo promenili gcc 3.4.3 na, nama potrebni, default kompajler koristimo sledeću komandu:
# gcc-config 2
7.2.3 Nadogradnja (update) sistemskog okruženja
Kako bi smo dalje nastavili sa instalacijom, potrebna nam je nadogradnja (update) okruženja. Koristimo komandu:
# env-update && source /etc/profile
7.2.4 Prevođenje sistemskog skupa alata
Da, da, da, sad je pravo vreme da ponovo prevedemo naš sistemski skup alata. Prvo počinjemo sa ponovnim prevođenjem biblioteke glibc, binutils, gcc i na kraju Portage nadogradnjom. Ovo će, kao što smo već, naglasili, prevesti GCC 3.4.3 skup alata (koji je predhodno bio preveden sa GCC 3.3.4) sa GCC 3.4.3 kompajlerom, samo što će ovoga puta biti uključeni naši novi USE flagovi i podešavanja za kompajler CFLAGS.
Krećemo:
# emerge glibc binutils gcc portage
Kada se prevođenje sistemskih alata završi, ponovo ćemo prevesti ceo sistem kako bi smo bili sigurni da je naš kompletan skup sistemskih alata preveden GCC 3.4.3 kompajlerom i karakterističnim podešavanjima za naš hardver.
Rezultat (još jednom): Skup sistemskih alata je preveden 3.4.3 kompajlerom pa je zatim kompletan sistem izgrađen sa istim 3.4.3 skupom alata, tako da na kraju dobijamo Gentoo sistem preveden sistemskim alatima koji su prethodno prevedeni GCC 3.4.3 kompajlerom.
Sledi prevođenje (praznog stabla) sistema:
# emerge -e system
7.2.5 Pregled
Na kraju svega, zbog preglednosti i čistoće, svešćemo sve ovo na samo tri koraka! Ovi koraci se izvode u jednoj liniji, takozvani, one-liner sistem i predstavlja dobru ponudu ako želite da napravite, malo veću, pauzu dok Gentoo i Portage rade svoj posao, i da ne morate nakon svake komande da čekate kako bi ste izveli sledeću. Lepota
Prvi korak:
# env-update && source /etc/profile && emerge -C linux-headers && emerge linux26-headers && emerge gcc-config glibc binutils gcc
Drugi korak:
Pregledajte i izmenite USE i CFLAGS flagove u fajlu /etc/make.conf
Treći korak:
# gcc-config 2 && env-update && source /etc/profile && emerge glibc binutils gcc portage && emerge -e system
8.1 Ccache instalacija (alternativno)
Sada kada imamo potpuno funkcionalan skup sistemskih alata (toolkit), instaliraćemo program ccache. Ccache je keš za kompajler, koji pomaže tako što smanjuje vreme koje je potrebno za prevođenje programa koji su već bili prevedeni (recompiled programs). Kompajler keš (ccache) neće imati efekta na vreme potrebno za prvo kompajliranje programa, tako da je ovo samo alternativni korak.
Napomena: Veličina (CCACHE_SIZE) je postavljena na 512Mb u make.conf primeru (make.conf.example). Ako imate dosta prostora na disku, i planirate da emergujete nešto “veliko”, na primer menadžere prozora kao što su GNOME i KDE ili ako radite emerge -e system ili emerge -e world, onda ćete morati da povećate veličinu keš kompajlera na, recimo CCACHE_SIZE=“2G”.
ccache instalacija se izvodi po običaju:
emerge ccache
8.2 Instalacija programa
Krećemo sa instalacijom korisnih paketa, odnosno puštamo pakete u “svet”
# emerge syslog-ng xinetd grub vixie-cron reiserfsprogs sysfsutils udev dhcpcd hotplug coldplug gentoolkit # emerge --nodeps acpid ntp
8.3 Nadograđujemo okruženje
Nakon instalacije, emergovanja, programa dodajemo ove servise u standardni (default) nivo pokretanja sistema (runlevel). Prikazaćemo dva načina kao se ovo izvodi, pa kako je kome lakše. Izaberite koji vam više odgovara.
Prvi način:
# rc-update add syslog-ng default # rc-update add net.eth0 default # rc-update add vixie-cron default # rc-update add xinetd default # rc-update add sshd default # rc-update add hotplug default # rc-update add coldplug default # rc-update add acpid default # rc-update add ntp-client default
Drugi način, takozvana “ub3r-g33k” metoda, probajte ovaj dobar bash loop, smanjiće “količinu” kucanja.
for x in syslog-ng net.eth0 vixie-cron xinetd sshd hotplug coldplug acpid ntp-client ; do rc-update add $x default ; done
8.4 Konfiguracija NTP klijenta
U prethodnom koraku smo uradili emerge klijenta za NTP (Network Time Protocol), kako bi smo omogućili korišćenje NTP servera za sinhronizaciju našeg sistemskog vremena (sata).
Koristimo sledeću komandu da bi smo uradili sinhronizaciju.
# ntpdate -b -u pool.ntp.org
9.1 Nabavka jezgra
Naša odluka da uključimo NPTL podršku, zahteva od nas da koristimo 2.6 jezgro. Pored toga što nam NPTL ne dozvoljava da koristimo zastarelo 2.4 jezgo, sa druge strane, nas ne ograničava da koristimo bilo koju vrstu 2.6 jezgra (nitro, ck, cko, love, dark, vanila…) U narednom primeru koristimo Gentoo Development Sources jezgro. Kao što smo već napomenuli, 2.4 jezgo neće raditi.
# emerge gentoo-dev-sources
9.2 Pravljenje simboličkog linka (kernel symlink)
# rm /usr/src/linux # cd /usr/src # ln -s linux-2.6.10-gentoo-r2 linux
9.3 Konfiguracija
9.3.1 Podrška za UDEV
Da bi smo koristili UDEV, potrebno je da izmenimo neke parametre u fajlu /etc/conf.d/rc.
Evo pregleda parametara. Nakon izmene trebaju da izgledaju ovako:
RC_NET_STRICT_CHECKING="no" RC_DEVICES="udev" RC_DEVICE_TARBALL="no"
9.3.2 Konfiguracija ostalih opcija jezgra
Ako ste od početka pratili ovaj vodič za instalaciju, shvatili ste da želimo najbolje performanse za naš sistem, to podrazumeva da “ručno”, ne preko genkernela, prevedemo naše jezgro. Treba obratiti pažnju na neke stvari. Pošto smo u ovom vodiču odabrali UDEV, treba obratiti pažnju na uključivanje podrške za učitavanje hotplug firmvera (Hotplug firmware loading support) i na isključivanje podrške za devfs fajlsistem (/dev file system support).
Pokrećemo meni za konfiguracuiju:
# cd /usr/src/linux # make menuconfig
Uključujemo podršku za Hotplug firmware loading
Device Drivers --->
Generic Driver Options --->
<*> Hotplug firmware loading support
Iključujemo devfs:
File systems --->
Pseudo filesystems --->
[ ] /dev file system support (OBSOLETE)
9.3.3 Prevođenje jezgra
Da bi smo preveli jezgro i odabrane module, koristimo dole navedenu komandu. Čini se da je ovo mnogo bolja od ostalih one-liner metoda prevođenja jezgra, usput ovo će automatski instalirati kernel za Vas :)
# make && make modules && make modules_install && make install
10.1 Konfiguracija mrežnih adaptera
Preporučujem da pokušate da konfigurišete Vaš mrežni adapter držeći se Gentoo priručnika (Gentoo Installation Handbook), ali ćemo pored toga da analiziramo sledeći primer, gde našu IP adresu dobijamo sa DHCP servera.
# cat /etc/conf.d/net iface_eth0="dhcp" dhcpcd_eth0="-t 10"
naravno ako ovo ne zadovoljava naše potrebe, pogledajmo šta kaže priručnik kako bi trebalo:
# (For DHCP) iface_eth0="dhcp" # Some network admins require that you use the # hostname and domainname provided by the DHCP server. # In that case, add the following to let dhcpcd use them. # That will override your own hostname and domainname definitions. dhcpcd_eth0="-HD" # If you intend on using NTP to keep your machine clock synchronized, use # the -N option to prevent dhcpcd from overwriting your /etc/ntp.conf file dhcpcd_eth0="-N" #(For static IP) iface_eth0="192.168.0.2 broadcast 192.168.0.255 netmask 255.255.255.0" gateway="eth0/192.168.0.1" #(For rp-pppoe) iface_eth0="up"
Kao što primećujete, ovde imamo primer konfiguracije mrežnog adaptera (kartice) i u slučaju dinamičke DHCP i u slučaju statičke IP adrese.
10.2 Podešavanje naziva randne stanice (Hostnames) i naziva domena (Domainnames)
Pokušaćemo da se i u ovom primeru držimo Gentoo priručnika, ali pošto sus e neke stvari, vezane za hostname, promenile od kada je isti napisan, primer iz priručnika većina smatra zastarelim, no dobro razlike su male i mi ćemo ovde pokazati kako se podešava naziv naše Gentoo kutije na oba načina:
10.2.1 Naziv računara (Hostname)
Sledeći primer pokazuje podešavanja naziva na stari i novi način. Kao primer imena za računar, iskoristićemo Bobov originalni naziv ‘boatanchor’ ili ‘sidro’
zastareo način:
# echo boatanchor > /etc/hostname
noviji način:
# cat /etc/conf.d/hostname HOSTNAME="boatanchor"
10.2.2 Podešavanje naziva domena (Domainname)
Kao i prethodnu operaciju, i ovu delimo na zastareo i novi način, dakle:
# echo mydomain.com > /etc/dnsdomainname # echo nis.mydomain.com > /etc/nisdomainname
ili
# cat /etc/conf.d/domainname OVERRIDE=1 DNSDOMAIN="mydomain.com" NISDOMAIN="nis.mydomain.com"
10.2.3 Podesite /etc/hosts
Ako u Vašoj mreži postoji nameserver koji upravlja svim imenima u mreži, preskočite ovaj korak.
Ako Vaš računar nije na mreži (standalone system) ili računar ima statičku IP adresu a nemate DNS koji ima zabeležene sve mašine u mreži na nekom nemeserveru, onda je najbolje da sami odredite informacije o adresama i imenima u fajlu /etc/hosts file.
127.0.0.1 localhost.localdomain localhost static.ip.addr.ess boatanchor.mydomain.com boatanchor
Vrednosti ‘stati.čke.ip.adres.se’ treba zameniti sa IP adresom Vašeg Gentoo računara. Na primer. ako Vaš Gentoo ima IP adresu 192.168.0.5, Vaš /etc/hosts fajl treba da sadrži sledeće linije.
127.0.0.1 localhost.localdomain localhost 192.168.0.5 boatanchor.mydomain.com boatanchor
10.2.4 Dodavanje domainname u standardni nivo za pokretanje (Default Runlevel)
# rc-update add domainname default
10.2.5 Preovera rezultata
# hostname -f boatanchor.mydomain.com
10.3 Gensplash
Za sve nas eye-candy zavisnike koji jednostavno ne možemo da živimo bez stvarčica kao što su sličke, u ovoj sekciji ćemo ukratko objasniti kako da dodamo gensplash koji će nam omogućiti ultra-cool framebuffer sličku u konzoli. Predpostavimo da većina nas ima velike monitore, gensplash ćemo konfigurisati za nešto veću rezoluciju (1280×1024), ali naravno Vi ste slobodni da ovu vrednost prilagodite Vašim potrebama, naravno.
one-liner komanda ovako zvuči:
# emerge splashutils && splash_geninitramfs -v -g /boot/fbsplash-emergence-1024x768 -r 1024x768 emergence && rc-update add splash default
prosto ko pasulj ;)
10.4 Grub Bootloader
10.4.1 Grub.conf
Sledeći korak nam je butloader. Kako bi smo uspešno startovali naš Gentoo Linux, potrebno je da konfigurišemo program za pokretanje sistema, butloader (eng. bootloader) a kao logičan izbor imamo Grub Bootloader. Iskoristićemo teks editor koji najviše volimo, kako bi smo napravili /boot/grub/grub.conf fajl.
U ovom slučaju, kao i u većini drugih, koristimo nano editor:
# cd /boot/grub # nano -w grub.conf
Ako želite da se spasete kucanja ili prepravke /boot/grub/grub.conf.sample fajla, možete jednostavno copy/paste metodom ubaciti sledeći tekst u fajl.
timeout 30 default 1 fallback 0 splashimage=(hd0,0)/grub/gentoo.xpm.gz # Boot Gentoo Linux (no framebuffer) title Gentoo-2.6.10-r2 root (hd0,0) kernel (hd0,0)/vmlinuz ro root=/dev/hda3 video=vesafb:ywrap,pmipal,1024x768-16@85 # Boot Gentoo Linux at 1280x1024 framebuffer resolution title Gentoo-2.6.10-r2, 1280x1024 root (hd0,0) kernel (hd0,0)/vmlinuz ro root=/dev/hda3 video=vesafb:ywrap,pmipal,1280x1024-24@85 splash=verbose,theme:emergence initrd (hd0,0)/fbsplash-emergence-1280x1024
Napomenuo bih samo da reč koja počinje sa “kernel” i završava se “splash=verbose,theme:emergence” treba da bude napisana u jednom redu. U ovom primeru, koristimo vesafb-tng video drajver, i linija video= treba da bude formirana u skladu s tim.
10.4.2 Grub Bootloader - instalacija
Grub pokrećemo iz komandnog prompta i koristimo sledeću komandu da ‘upakujemo’ grub u MBR našeg hard diska. Zapamtite, da mi, kad brojimo diskove počinjemo od 1, ali Grub to radi od 0, tako da /dev/hda1 odgovara disku 0 i particiji 0.
instalacija:
# grub grub> root (hd0,0) grub> setup (hd0) grub> quit
10.4.3 Dovucite Cool Cool Grub Splash Screen
Takođe ćemo nabaviti i jako lep Gentoo specific splash screen za Grub.
wget http://www.schultz-net.dk/downloads/grub/gentoo.xpm.gz
10.5 Filesistemi - Konfiguracija /etc/fstab fajla
Ovaj primer /etc/fstab fajla odgovara particionoj shemi našeg dika koju smo koristili na početku ovog vodiča za instalaciju ultra-hyper-super snažnog i brzog Gentoo Linux sistema! Naravno, ako ste koristili drugačiju particionu shemu, unesite Vaše parametre.
# <fs> <mountpoint> <type> <opts> <dump/pass> /dev/hda1 /boot reiserfs noauto,notail 1 2 /dev/hda3 / reiserfs notail 0 1 /dev/hda2 none swap sw 0 0 /dev/cdroms/cdrom0 /mnt/cdrom iso9660 user,noauto,ro,exec 0 0 /dev/fd0 /mnt/floppy auto noauto,users 0 0 # NOTE: The next line is critical for boot! none /proc proc defaults 0 0 # glibc 2.2 and above expects tmpfs to be mounted at /dev/shm for # POSIX shared memory (shm_open, shm_unlink). # (tmpfs is a dynamically expandable/shrinkable ramdisk, and will # use almost no memory if not populated with files) # Adding the following line to /etc/fstab should take care of this: none /dev/shm tmpfs nodev,nosuid 0 0
10.6 Podešavanje parametara hard diska
Ako se vratimo i pogledamo unazad, na 4 korak, tada smo uneli parametre za optimizaciju našeg disk. Sada kada se nalazimo u chroot okruženju našeg predizajniranog Gentoo sistema, potrebno je da ove parametre podesimo kako bi ostali trajni na našem sistemu. Da bi smo ovo uradili, potrebno je da te iste parametre upišemo u /etc/conf.d/hdparm fajl, a to izgleda ovako:
# cat /etc/conf.d/hdparm disc0_args="-a256A1c1d1m16u1" cdrom0_args="-d1c1u1"
Nakon unošenja odgovarajućih parametara u /etc/conf.d/hdparm otkucaćemo sledeću komandu kako bi smo ubacili hdparm u boot nivo pokretanja sistema (boot runlevel).
# rc-update add hdparm boot
10.7 Korisnički nalozi
Pre nego krenemo sa korišćenjem našeg novo Gentoo sistema, moramo da promenimo lozinku (password) na sistemu, zatim da dodamo korisnike na sistem.
Napomena: Zamenite primere korisničkih imena koje ćemo koristiti Vašim imenima korisnika.
Prvo, promenite root lozinku:
# passwd New password Unesite Vašu novu lozinku Re-enter password Ponovite Vašu novu lozinku
Na redu je zanimljiv deo gde dolazi do izražaja jedna od Gentoo filozofija i njegova karakterističnost. Kako bi korisnici mogli da koriste naredbu “su” da bi dobili svoj privremeni root status, isti korisnici se moraju dodati u korisničku grupu pod nazivom “wheel”. To ćemo uraditi na sledeći način:
# useradd -m -G users,wheel bob # passwd bob New password: Enter bob's password Re-enter password: Re-enter bob's password
Sada dodajte korisnike koji nemaju mogućnost korišćenja root privilegija:
# useradd -m -G users mary # passwd mary New password: Enter mary's password Re-enter password: Re-enter mary's password
10.8 Uključite NUMLOCK ON pri podizanju sistema
Ako koristite numeričku tastaturu, uključite NUMLOCK pri podizanju sistema.
Izvršite sledeću komandu:
# rc-update add numlock default
10.9 Definišite vreme za gašenje ekrana u terminalu (Console Screen Blanking Interval)
Ako niste zadovoljni sa standardnim vremenskim intervalom koje je definosano za gašenje ekrana kada ste u terminalu (obično to bude jako kratko vreme), možete odrediti željeni vremenski interval (od 1 do 60 minuta) koristeći sledeći komandu. Zamenite “n” i ubacite vrednost željenog intervala za gašenje monitora u minutima. Vrednost 0 će isključiti gašenje ekrana.
# setterm -blank n
Ova komanda je privremena, posle restarta vrednost vremenskog intervala za gašenje ekrana se vraća na standardno (default). Da bi ste promene za vremenski interval gašenja trajno podesili izvedite sledeću konadu.
# echo 'setterm -blank n' >> /etc/conf.d/local.start
10.10 Izlazak iz chroot okruženja i demontaža (unmount) particija
Sada ćemo izaći iz chroot okruženja i demontirati sve montirane particije.
exit cd ~/ umount /mnt/gentoo/proc /mnt/gentoo/boot /mnt/gentoo swapoff /dev/hda2
11. REBOOT!
I sada, momenat koji smo dugo čekali!
# shutdown -r now
Kada se sistem restartuje, bićete dočekani sledećom porukom
This is boatanchor.mydomain.com (Linux i586 2.6.10-gentoo-r2) HH:MM:SS boatanchor login:
Uživajte i zabavljajte se u Vašem novom Gentoo sistemu!