Avertisment :
Acest manual a fost înlocuit cu o versiune mai nouă şi nu mai este întreţinut.
|
Manual Gentoo Linux 2005.0 pentru arhitectura PPC
Conţinut:
-
Instalarea Gentoo
În această parte învăţaţi cum să instalaţi Gentoo pe sistemul dvs.
-
Despre Instalarea Gentoo Linux
Utilizatorii nefamiliari cu Gentoo nu cunosc faptul că alegerea este ceea în
ce constă Gentoo.
-
Instalarea cu Ajutorul Universal Installation LiveCD
Utilizând mediul nostru Universal Installation CD puteţi efectua boot într-un
mediu funcţional ce vă permite să instalaţi Gentoo.
-
Configurarea Reţelei
Dacă aveţi nevoie de reţea, acesta este locul unde reţeaua (şi conexiunea la
Internet) este configurată.
-
Pregătirea Discurilor
Pentru a putea instala Gentoo, trebuie să creaţi partiţiile necesare. Acest
capitol descrie cum să partiţionaţi un disc pentru utilizări ulterioare.
-
Instalarea Fişierelor Gentoo necesare Instalării
În acest capitol vom descrie modul de a dezarhiva un fişier stage3 şi a
configura Portage.
-
Intrarea în Mediul Chroot al Sistemului de Bază Gentoo
Acum, că fişierul stage3 este dezarhivat, vom intra în mediul chroot al noului
sistem şi vom modifica variabila USE.
-
Configurarea Kernel-ului
Kernel-ul Linux este nucleul fiecărei distribuţii. Acest capitol explică
cum să vă configuraţi kernel-ul.
-
Configurarea Sistemului
Trebuie să editaţi unele fişiere de configurare importante. În acest
capitol vi se va oferi o perspectivă a acestor fişiere şi cum să
procedaţi.
-
Instalarea Utilitarelor de Sistem Necesare
Aşa cum am menţionat anterior, Gentoo reprezintă posibilitatea alegerii.
În acest capitol vă ajutăm să instalaţi unele utilitare importante.
-
Configurarea Aplicaţiei Bootloader
Există mai multe aplicaţii bootloader. Fiecare dintre ele are modul propriu
de configurare. Vom parcurge procesul configurării aplicaţiei bootloader în
concordanţă cu nevoile dvs.
-
Finalizarea Instalării Gentoo
Sunteţi aproape gata. Vom crea unul (sau mai mulţi) useri pentru sistemul
dvs. şi (opţional) vom instala pachete precompilate.
-
Cum să continuăm?
Acum aveţi sistemul dvs. Gentoo, dar ce faceţi mai departe?
-
Lucrul cu Gentoo
Învăţaţi cum să lucraţi cu Gentoo: instalarea de aplicaţii software,
modificarea variabilelor, modificarea comportamentului portage, etc.
-
Introducere în Portage
Acest capitol explică paşii "simpli" pe care utilizatorul trebuie
neapărat să-i cunoască pentru a efectua mentenanţa aplicaţiilor din
sistem.
-
Indicatori USE
Indicatorii USE sunt un aspect foarte important în Gentoo. În acest capitol,
învăţaţi cum să manipulaţi indicatorii USE şi să înţelegeţi cum
aceştia interacţionează cu sistemul dvs.
-
Particularităţile Portage
Descoperiţi particularităţile deţinute de Portage, cum ar fi suportul
pentru compilarea distribuită, ccache şi altele.
-
Script-urile de Iniţializare
Gentoo utilizează un tipar de script de iniţializare care, dintre toate
caracteristicile, permite decizii în funcţie de dependenţe şi script-uri
de iniţializare virtuale. Acest capitol explică toate aceste aspecte şi
explică cum să manipulaţi aceste script-uri.
-
Variabile de Mediu
Cu Gentoo puteţi foarte uşor să administraţi variabilele de mediu din
sistemul dvs. Acest capitol explică modul în care puteţi realiza acest
lucru, şi, de asememenea, descrie cele mai utilizate dintre aceste variabile.
-
Utilizarea Portage
"Utilizarea Portage" oferă o descriere în detaliu a sistemului Portage,
Utilitarul de Administrare a Pachetelor din Gentoo.
-
Fişiere şi Directoare
Dacă doriţi să cunoaşteţi caracterisicile Portage în detaliu, trebuie
să ştiţi unde îşi stochează fişierele şi datele.
-
Configurarea prin intermediul Variabilelor
Portage este complet configurabil prin diversele varibile ce le puteţi seta
în fişierul de configurare sau ca variabilă de mediu.
-
Interclasarea Categoriilor Software
Gentoo oferă aplicaţiile software separate în mai multe categorii,
depinzând de stabilitatea şi suportul pentru fiecare arhitectură.
"Interclasarea Categoriilor Software" vă informează despre modalităţile
de configurare al acestor categorii şi cum puteţi suprascrie individual
această separare.
-
Utilitare Adiţionale pentru Portage
Portage oferă o serie adiţională de utilitare ce vă pot transforma
experienţa Gentoo într-una mai bună. Citiţi pentru a descoperi cum să
utilizaţi dispatch-conf şi alte utilitare.
-
Derivarea din Structura Oficială
"Derivarea din Structura Oficială" vă oferă mai multe sfaturi şi
trucuri despre cum să utilizaţi propria structura Portage, cum să
sincronizaţi doar categoriile dorite, să injectaţi pachete, şi altele.
-
Aplicaţia Ebuild
În "Aplicaţia Ebuild" sunteţi informaţi despre paşii pe care Portage îi
parcurge în timpul instalării pachetelor software şi cum puteţi face
acest lucru utilzând aplicaţia ebuild.
-
Configurarea Reţelei în Gentoo
Un ghid comprehensiv despre Reţelistică în Gentoo.
-
Primii Paşi
Un ghid pentru a vă activa rapid interfeţele în cele mai multe dintre
medii.
-
Configurarea Avansată
Aici învăţăm cum funcţionează configuraţia - trebuie să
cunoaşteţi acest lucru înainte de a învăţa despre reţelistica
modulară.
-
Reţelistica Modulară
Gentoo vă oferă o reţelistică flexibil - aici vi se expun alegerea
diferiţilor clienţi DHCP, setarea sistemului de bond, a celui de bridge,
sistemelor VLAN şi altele.
-
Reţelistică Wireless
Wireless nu este simplu de configurat. Să sperăm că o vom face să
funcţioneze pentru dvs.!
-
Adăugarea Funcţionalităţii
Dacă vă simţiti aventuros, vă puteţi adăuga propriile funcţii pentru
reţea.
-
Administrarea Reţelei
Pentru utilizatorii sistemelor laptop sau pentru cei care îşi transportă
sistemul prin diferite reţele.
A. Instalarea Gentoo
1. Despre Instalarea Gentoo Linux
1.a. Introducere
Bine Aţi Venit
În primul rând vă urăm, Bun venit în lumea minunată Gentoo.
Sunteţi pe cale de a descoperi lumea flexibilităţii şi performanţei.
Gentoo în primul rând înseamnă flexibilitatea alegerii. Odată ce veţi
hotărî să instalaţi Gentoo Linux, procedeul de instalare vă permite o
foarte mare flexibilitate în alegerea modalităţii de instalare, care poate
fi compilarea întregului sistem de la început sau doar instalând binarele,
aveţi posibilitatea de a alege componentele de sistem cum sunt bootloader-ul,
logger-ele etc.
Gentoo este o metadistribuţie modernă şi foarte rapidă, ce are o
structură flexibilă. Gentoo este construit în jurul conceptului free
software şi pune la dispoziţia utilizatorilor toate resursele. Portage,
sistemul de administrare al pachetelor utilizat de Gentoo, este scris în
limbajul de programare Python, utilizatorii având acces la codul sursă si
putând modifica sursele în funcţie de necesităţile proprii. Sistemul de
pachete Gentoo utilizează codul sursă al programelor (deşi oferă şi
suport pentru binare precompilate), iar configurarea Gentoo se efectuează
prin editarea directă a fişierelor de configurare ce sunt fişiere de tip
text normale. Cu alte cuvinte este un sistem deschis.
Este foarte important să înţelegeţi faptul că alegerile sunt
estenţiale în rularea Gentoo. Noi nu vă forţăm în nimic din ceea ce
displaceţi. În cazul în care credeţi acest lucru, va rugăm să ne
scrieţi un bugreport.
Cum este Structurat Procesul de Instalare?
Instalarea Gentoo poate fi descrisă în 10 paşi, corespunzând capitolelor
2 - 11. Fiecare pas are ca rezultat un anumit stadiu:
-
După pasul 1, vă aflaţi în mediul de lucru şi sunteţi pregătit
pentru instalarea Gentoo
-
După pasul 2, conexiunea la internet este pregătită pentru instalarea
Gentoo (poate fi opţional în anumite situaţii)
-
După pasul 3, hard disk-ul este pregătit pentru a găzdui Gentoo
-
După pasul 4, mediul de instalare este pregătit şi puteţi utiliza
chroot pentru integrarea in noul mediu
-
După pasul 5, pachetele de bază, ce sunt la fel pentru toate sistemele
Gentoo, vor fi instalate
-
După pasul 6, Kernel-ul Linux va fi compilat
-
După pasul 7, vor fi completate majoritatea fişierelor de configurare
Gentoo
-
După pasul 8, utilitarele de sistem necesare(pe care le puteţi alege
dintr-o listă completă) sunt instalate
-
După pasul 9, aplicaţia bootloader aleasă a fost instalată şi
configurată şi sunteţi log-aţi în noua instalare Gentoo
-
După pasul 10, noul dvs. mediu Gentoo, va fi gata de explorat
Gentoo Linux vă permite o foarte mare flexibilitate în alegere, pe care vom
încerca să le explicam atât din punct de vedere al punctelor forte cât
şi al punctelor slabe. Vom continua cu un set de opţiuni implicite,
identificate cu " Implicite: " în titlu. Celelalte opţiuni sunt
marcate ca "Alternative: ". Să nu consideraţi că
opţiunile implicite sunt cele recomandate. În orice caz, sunt ceea ce credem
că cei mai mulţi dintre utilizatori vor folosi.
În anumite cazuri puteţi alege soluţii "Opţionale: " care nu
sunt obligatorii în timpul instalării Gentoo. Aveţi grijă la anumite
opţiuni care pot depinde de alte opţiuni ce au fost alese sau ce vor depinde
de anumiţi paşi ce vor fi executaţi în prealabil sau după alegerea
opţiunii şi pe care îi vom menţiona în documentaţia de faţă.
Care sunt opţiunile?
Gentoo Poate fi instalat în diferite moduri. Aveţi posibilitatea de a
descărca şi instala Gentoo Linux de pe unul din mediile Installation CD
disponibile, sau de pe un alt CD boot-abil (cum este Knoppix), sau
boot-ând din reţea, de pe o dischetă rescue, etc.
Acest document acoperă instalarea utilizând Universal Installation LiveCD, un
CD boot-abil ce conţine tot ce aveţi nevoie pentru a avea un sistem Gentoo
Linux funcţional. Opţional, puteţi utiliza unul din mediile Package CD, de
asemenea, pentru a instala un sistem în câteva minute după ce aţi instalat
sistemul de bază Gentoo.
Totuşi, această abordare a instalării nu utilizează imediat ultima
versiune a pachetelor disponibile; dacă doriţi acest lucru, consultaţi
Instrucţiunile de Instalare conţinute în Manualele Gentoo Linux.
Pentru ajutor în abordarea altor tipuri de instalări, vă rugăm să
consultaţi Ghidul pentru Instalări
Alternative. De asemenea, vă oferim un document despre Sfaturi şi Trucuri pentru
Instalare ce vă poate fi folositor. În cazul în care consideraţi
că instrucţiunile de instalare sunt prea elaborate, puteţi utiliza în voie
Ghidul nostru de Instalare Rapidă afişat în Resursele de Documentaţie în cazul în care
arhitectura dvs. deţine un asemenea document disponibil.
Probleme?
Dacă aţi găsit o eroare sau neconcordanţă în procesul de instalare
(sau documentaţia de instalare) vă rugăm să verificaţi errata
versiunilor release pe pagina Gentoo Release
Engineering Project, sistemul de
urmărire al bug-urilor şi verificaţi dacă eroarea descoperită de
către dumneavoastră este cunoscută. Dacă nu a fost semnalată creaţi
un bugraport pentru a permite corectarea erorilor într-un timp cat mai scurt.
Nu vă temeţi de dezvolatorii cărora le atribuiţi bug-urile (semnalate de
dvs) -- în general ei nu manâncă oameni.
Notaţi că, deşi documentul pe care îl citiţi acum este specific
arhitecturii, va conţine referinţe către alte arhitecturi, de asemenea.
Aceasta se întâmplă deoarece multe părţi ale Manualului Gentoo
utilizează cod sursă ce este comun pentru toate arhitecturile (pentru a
evita multiplicarea eforturilor şi irosirea resurselor de dezvoltare). Vom
încerca să minimzăm aceste informaţii pentru a evita confuzia.
Dacă pe parcursul procesului de instalare întâmpinaţi greutăţi şi nu
sunteţi sigur de natura problemei care poate fi problemă-utilizator sau
problemă-software şi răspunsul nu-l puteţi găsi în documentaţia de
faţă sunteţi invitaţi să va alătura la canalul de discuţii oficial
gentoo join #gentoo de pe irc.freenode.net unde cu siguranţa veţi putea
găsi răspuns la problemele şi întrebările ce vă interesează.
Bineînteles, sunteţi binevenit şi în alte situaţii :)
Dacă aveţi întrebări referitoare la Gentoo, vizitaţi Întrebări frecvente despre Gentoo Linux, pe
care le puteţi găsi la Documentaţii Gentoo. De
asemenea puteţi consulta FAQs de pe forumuri. Dacă nu găsiţi răspuns
la întrebările ce vă preocupa încercaţi pe canalul IRC oficial #gentoo,
de pe irc.freenode.net. Da, unii dintre noi suntem nebuni care suntem prezenţi
pe IRC :-)
1.b. Instalare Rapidă Utilizând Gentoo Reference Platform
Ce înseamnă Gentoo Reference Platform?
Gentoo Reference Platform, de acum abreviat ca GRP, reprezintă o versiune
snapshot de pachete precompilate pe care utilizatorii (adică dvs.!) îl pot
instala în timpul procesului de instalare pentru a minimiza durata acestuia.
GRP conţine toate pachetele necesare pentru a avea un sistem complet
funcţional Gentoo. Pachetele nu sunt numai cele necesare pentru a obţine o
instalare de bază într-un timp foarte scurt, dar şi unele aplicaţii cu o
durată de instalare mai mare (cum sunt KDE, xorg-x11, GNOME, OpenOffice,
Mozilla, ...) sunt disponibile între pachetele GRP.
Pachetele GRP nu sunt menţinute pe parcurs, aceste pachete sunt actualizate
odată cu lansarea unei noi versiune Gentoo Linux. Metoda GRP este
prevăzută pentru o instalarea cât mai rapidă după care se poate
actualiza întregul sistem în timp ce operaţi în sistemul deja instalat.
Cum manevrează Portage Pachetele GRP
Structura Portage -- colecţia de fişiere ebuild (fişiere ce conţin
informaţii diverse despre pachete descrierea pachetelor, homepage, adresa
codului sursă, instrucţiuni pentru compilare, dependenţele, etc.) --
trebuie sincronizate cu setul GRP: versiunea ebuild-urilor disponibile şi
versiunile pachetelor GRP corespondente trebuie să se potrivească.
De aceea, puteţi beneficia de pachetele GRP oferite de Gentoo, doar în cazul
tipului curent de abordare. GRP nu este disponibil pentru cei ce doresc să
efectueze o instalare utilizând ultimele verisiuni ale tuturor pachetelor
disponibile.
GRP este disponibil?
Nu toate arhitecturile suportă pachetele GRP. Aceasta nu înseamnă ca GRP
nu este suportat pe alte arhitecturi, ci înseamnă că nu dispunem de
resursele pentru a construi şi a testa pachetele GRP.
În prezent, oferim pachete GRP pentru următoarele arhitecturi:
-
Arhitectura x86 (x86, athlon-xp, pentium3, pentium4)
Notă: pachetele pentru x86 (spre exemplu packages-x86-2005.0.iso)
sunt disponibile pe server-ele noastre mirror, în timp ce pentium3,
pentium4, athlon-xp sunt disponibile doar prin bittorrent.
-
Arhitectura amd64 (amd64)
-
Arhitectura sparc (sparc64)
-
Arhitectura ppc (G3, G4, G5)
-
Arhitectura alpha
Daca arhitectura (sau subarhitectura) nu este prezentă în listă, nu veţi
putea instala GRP Gentoo Linux
Acum că am terminat introducerea putem trece la Boot-area Utilizând Universal Installation CD.
2. Instalarea cu Ajutorul Universal Installation LiveCD
2.a. Necesităţi Hardware
Introducere
Înainte de a începe, avem nevoie să cunoaştem componentele hardware ce
sunt suportate de Gentoo Linux pentru o instalare reuşită.
Necesităţi Hardware
| Maşini NewWorld |
Microprocesoare Power/PowerPC (G3, G4, G5) cum ar fi: iMac, eMac, iBook,
PowerBook, Xserver, PowerMac, Pegasos II de la Genesi
|
| Maşini OldWorld |
Suport limitat pentru sistemele IBM (RS/6000, iSeries, pSeries) şi Amiga
|
| Memorie |
Cel puţin 64 MOcteţi |
| Spaţiu pe Disc |
1.5 GOcteţi (excluzând spaţiul pentru swap) |
| Spaţiu pentru Swap |
Cel puţin 256 MOcteţi |
Consultaţi documentul despre Întrebări Frecvente despre Gentoo pentru
PPC înainte de a începe.
2.b. Mediul Gentoo Universal Installation CD
Introducere
Gentoo Linux poate fi instalat utilizând una din cele trei arhive tar
stage. Un fişier stage este o arhivă (compresată) ce conţine un
mediu minimal.
-
Un fişier stage1 conţine nu mai mult decât un compilator, Portage
(sistemul de administrare a aplicaţiilor din Gentoo) şi câteva pachete
de care compilatorul sau Portage depind.
-
Un fişier stage2 conţine un sistem ce a trecut de procesul de bootstrap,
un mediu minim de la care se poate porni instalarea tuturor celorlalte
aplicaţii necesare ce completează un mediu Gentoo.
-
Un fişier stage3 conţine un sistem minimal preinstalat ce este aproape
integrabil. Îi lipsesc doar câteva aplicaţii pe care dvs., utilizatorul
de Gentoo, trebuie să le aleagă pentru instalare.
Vom opta pentru o instalare stage3 pe parcursul acestui document. Dacă
doriţi să instalaţi Gentoo utilizând arhive stage1 sau stage2, vă
rugăm să utilizaţi instrucţiunile de instalare din Manualul Gentoo. Este
necesară, totuşi, o conexiune internet funcţională.
Mediul Gentoo Universal Installation CD
Installation CD este un mediu boot-abil ce conţine un mediu Gentoo
integral. Vă permite să boot-aţi în Linux de pe CD. În timpul procesului de
boot, componentele dvs. hardware sunt detectate şi driver-ele corespunzătoare
sunt încărcate. Mediile Installation CD Gentoo sunt menţinute de dezvoltatorii
Gentoo.
Momentan sunt două medii Installation CD disponibile:
-
Mediul Universal Installation CD conţine tot ceea ce este necesar pentru a
instala Gentoo. Acesta oferă fişiere stage3 pentru arhitecturile comune,
cod sursă pentru aplicaţiile adiţionale din care trebuie să alegeţi şi,
bineînţeles, instrucţiunile de instalare pentru arhitectura dvs.
-
Mediul Minimal Installation CD conţine doar un mediu minimal ce vă permite
să vă confinguraţi reţeaua pentru a vă conecta la internet. Nu conţine
nici un fişier adiţional şi nu poate fi folosit în contextul acstor
instrucţiuni de instalare.
Gentoo oferă, de asemenea, Package CD. Acesta nu este un mediu Installation CD,
ci o resursă adiţională pe care o puteţi utiliza în timpul instalării
sistemului dvs. Gentoo. Acesta conţine pachete precompilate (aşa-numitele
pachete GRP) ce vă permite să instalaţi într-un mod uşor şi rapid,
aplicaţii adiţionale (cum ar fi OpenOffice.org, KDE, GNOME, ...) imediat
după instalarea Gentoo şi chiar înainte de actualizarea structurii
Portage.
Utilizarea mediului Package CD este tratată ulterior în acest document.
2.c. Descărcarea, Scrierea şi Boot-area Mediului Universal Installation CD
Descărcarea şi Scrierea Mediului Installation CD
Puteţi descărca mediile Universal Installation CD (şi, dacă doriţi, mediile
Packacge CD, de asemenea) de pe unul din server-ele noastre mirror. Mediile Installation CD sunt stocate
în directorul releases/ppc/2005.0/installcd ; mediile Package CD
sunt stocate în directorul releases/ppc/2005.0/packagecd.
În acel director veţi găsi aşa-numitele fişiere ISO. Acestea sunt
imagini de CD complete ce pot fi scrise pe un mediu CD-R.
După descărcarea fişierului, îi puteţi verifica integritatea pentru a
observa dacă este corupt sau nu:
-
Îi puteţi verifica suma de control MD5 a acestuia şi să o comparaţi
cu suma MD5 oferită de noi (spre exemplu, cu utilitarul md5sum sub
Linux/Unix sau md5sum
pentru Windows). Modalitatea de verificare a sumelor de control MD5 în Mac
OS X este descrisă în documentul despre Întrebări Frecvente despre
Gentoo pentru Arhitectura PPC.
-
Îi puteţi verifica semnătura criptografică oferită de noi. Trebuie
să obţineţi cheia publică utilizată de noi (0x17072058), înainte.
Pentru a descărca cheia noastră publică utilizând aplicaţia GnuPG, rulaţi
următoarea comandă:
Cod 3.1: Obţinerea cheii publice |
$ gpg --keyserver pgp.mit.edu --recv-keys 0x17072058
|
Acum, verificaţi semnătura:
Cod 3.2: Verificarea semnăturii criptografice |
$ gpg --verify <fisierul cu semnatura> <fisierul iso descarcat>
|
Pentru a scrie imaginele ISO pe CD-uri trebuie să selectaţi raw-burning.
Felul cum activaţi această opţiune este dependent foarte mult de
platformă. Vom trata aici cdrecord şi K3B; pentru mai multe
informaţii consultaţi documentul despre Întrebări Frecvente despre Gentoo.
-
Pentru cdrecord, trebuie doar să tastaţi cdrecord dev=/dev/hdc
<fisierul iso descarcat> (înlocuiţi /dev/hdc cu
calea către unitatea dvs. CD-RW).
-
Pentru K3B, selectaţi Tools > CD > Burn Image.
După care alegeţi imaginea ISO pe care doriţi să o scrieţi în aria
'Image to Burn'. La final apăsaţi Start.
Implicit: Boot-area cu Mediul Universal Installation CD pe un Apple/IBM
Pe maşinile NewWorld, introduceţi mediul Installation CD în CD-ROM şi reporniţi
sistemul. Când este iniţiat sunetul de pornire a sistemului, trebuie doar să
ţineţi apăsată tasta 'C' până când CD-ul se va încărca.
Dacă aveţi un sistem Mac OldWorld, porţiunea boot-abilă a mediului Installation
CD nu poate fi utilizată. În loc, trebuie să descărcaţi BootX şi să aveţi un
sistem MacOS instalat pe sistemul dvs. Trebuie să copiaţi BootX
Extension din arhiva decompresată în Extensions Folder şi să
creaţi un nou director numit Linux Kernels în Directorul System. În
următorul pas, trebuie să copiaţi imaginea de kernel G3G4
şi fişierul G3G4.igz din directorul boot de pe mediul
Installation CD în directorul Linux Kernels. Apoi reporniţi şi aşteptaţi
ca BootX să se încarce. După ce BootX s-a încărcat, trebuie să mai
configuraţi unele setări. În dialogul de opţiuni, trebuie să bifaţi
Use Specified RAM Disk şi să selectaţi fişierul
initrd.img.gz pe care l-aţi stocat în directorul Linux Kernels.
Mărimea fişierului ramdisk trebuie să fie de cel puţin 32000. Mai
mult, parametrii pentru kernel trebuie să fie rw init=/linuxrc cdroot.
În cele din urmă, veţi putea boot-a în mediul Installation CD când veţi selecta
Linux în procesul de Startup.
După încărcarea mediului Installation CD, va apărea un mesaj de bun-venit
prietenos şi un prompt boot: în partea inferioară a ecranului.
La acest prompt puteţi selecta un kernel pentru subarhitectura utilizată de
dvs. Noi oferim G3, G4 şi G5. Toate kernel-urile sunt
compilate cu suport pentru mai multe procesoare, dar pot să boot-eze într-un
sistem ce conţine doar un procesor, de asemenea.
În plus, puteţi să mai optimizaţi unele opţiuni de kernel la acest
prompt. Următorul tabel afişează unele dintre opţiunile de boot disponibile ce
pot fi adăugate:
| Opţiune de Boot |
Descriere |
| video |
Această opţiune are următoarele valori specifice producătorilor de
plăci video: radeonfb, rivafb, atyfb, aty128
sau ofonly. Puteţi utiliza această valoare alături de
rezoluţia de rata de reîmprospătare dorite. Spre exemplu,
video=radeonfb:1280x1024@75. Dacă nu sunteţi sigur de opţiunea
dorită, ofonly va funcţiona în mod sigur.
|
| nol3 |
Dezactivează level 3 cache pe unele sisteme PowerBooks (este nevoie
pentru cel puţin 17")
|
| dofirewire |
Activează suportul pentru dispozitivele IEEE1394 (FireWire), cum ar fi
discurile externe.
|
| dopcmcia |
Dacă doriţi să utilizaţi dispozitivele PCMCIA în timpul instalării (cum ar
fi plăcile de reţea PCMCIA), trebuie să activaţi această opţiune.
|
La acest prompt apăsaţi enter, şi un mediu complet Gentoo Linux va fi
încărcat de pe CD. Continuaţi cu secţiunea Şi După
ce Aţi Boot-at....
Alternativ: Boot-area cu Mediul Universal Installation CD pe un Pegasos
Pe sistemele Pegasos, trebuie doar să introduceţi CD-ul şi la prompt-ul de
boot SmartFirmware tastaţi boot cd /boot/menu. Aceasta va deschide un
mic meniu de boot de unde puteţi să alegeţi între unele opţiuni video
preconfigurate. Dacă doriţi opţiuni de boot speciale, le puteţi adăuga liniei
de comandă. Spre exemplu, boot cd /boot/pegasos video=radeonfb:1280x1024@75
mem=256M. Lista cu opţiunile adăugate (în cazul în care apar probleme şi
veţi avea nevoie de ele) este preconfigurată în kernel ca
console=ttyS0,115200 console=tty0 init=/linuxrc looptype=squashfs
loop=/livecd.squashfs udev nodevfs cdroot root=/dev/ram0.
Şi După ce Aţi Boot-at...
În consola curentă puteţi observa promptul root ("#") şi puteţi comuta
între alte console utilizând combinaţiile de taste Alt-F2, Alt-F3 şi Alt-F4.
Pentru a reveni la consola iniţială utilizaţi combinaţia de taste Alt-F1.
Probabil va trebui să utilizaţi Alt-fn-Fx pe maşinile Apple.
Dacă instalaţi Gentoo pe un sistem cu o tastatură diferită de standardul
US, utilizaţi loadkeys pentru a încărca dispunerea tastelor pentru
tastatura dvs. Pentru a afişa dispunerile de taste disponibile, executaţi
ls /usr/share/keymaps/i386. Pe maşinile NewWorld sau Pegasos nu trebuie
să încărcaţi dispunerea tastelor ppc sau mac deoarece
sunt pentru maşinile OldWorld bazate pe ADB.
Cod 3.3: Afişarea definiţiilor de dispunere a tastelor |
# ls /usr/share/keymaps/i386
|
Acum, încărcaţi definiţia pentru dispunerea tastelor aleasă de dvs.:
Cod 3.4: Încărcarea unei definiţii de dispunere a tastelor |
# loadkeys be-latin1
|
Acum, continuaţi cu Configurarea Suplimentară pentru
Componentele Hardware .
Configurarea Suplimentară pentru Componentele Hardware
Mediul Gentoo Installation CD, în timp ce boot-ează, încearcă să identifice
automat toate componentele hardware din sistem şi încarcă modulele de kernel ce
fac posibilă accesarea acestor resurse hardware. În majoritatea cazurilor,
chiar reuşeşte. Dar, sunt şi cazuri când încărcarea automată nu este efectuată
pentru modulele necesare. În cazul în care autodetectarea componentelor PCI a
eşuat în cazul unor componente ale sistemului dvs., vor trebui încarcate manual
modulele de kernel necesare.
În următorul exemplu vom încerca încărcarea modulului airport. Acest
modul suportă doar modelele vechi ale plăcilor Airport. AirportExtreme nu este
suportat în Linux:
Cod 3.5: Încărcarea modulelor de kernel |
# modprobe airport
|
Opţional: Optimizarea Performanţelor Hard-Disk-ului
Dacă sunteţi un utilizator avansat, puteţi optimiza performanţa
hard-disk-ului, utilizând hdparm. În combinaţie cu opţiunile
-tT puteţi testa performanţele hard discului (executaţi testul de mai
multe ori pentru a avea o imagine cât mai precisă a vitezei HDD-ului).
Cod 3.6: Testarea peformanţei discului |
# hdparm -tT /dev/hda
|
Pentru optimizare, puteţi utiliza oricare din exemplele de mai jos (sau
experimenta cu propriile optimizări) ce utilizează /dev/hda ca
disc (substituiţi cu discul dvs.):
Cod 3.7: Optimizarea performanţei hard-disk-ului |
# hdparm -d 1 /dev/hda
# hdparm -d 1 -A 1 -m 16 -u 1 -a 64 /dev/hda
|
Opţional: Conturi de Utilizator
Dacă doriţi să permiteţi accesul utilizatorilor externi la mediul de
instalare Gentoo Linux, sau utilizaţi chat-ul irssi fără drepturi
de root (pentru un nivel mai ridicat al securităţii), trebuie să creaţi
utilizatori separaţi şi este necesară modificarea parolei de root.
Pentru a scimba parola root, rulaţi utilitarul passwd.
Cod 3.8: Schimbarea parolei de root |
# passwd
New password:
Re-enter password:
|
Pentru crearea unui nou cont de utilizator trebuie să introducem denumirea
contului şi parola ce va fi asociată contului nou creat. Pentru aceasta vom
utiliza comenzile useradd şi passwd. În exemplu de mai jos
vom crea un user numit "john".
Cod 3.9: Crearea unui cont de utilizator |
# useradd john
# passwd john
New password:
Re-enter password:
|
Puteţi efectua login în noul cont creat din root, utilizând comanda
su:
Cod 3.10: Comutarea la alt utilizator |
# su john -
|
Opţional: Vizualizarea Documentaţiei în Timpul Instalării
În timpul instalării, dacă doriţi să accesaţi Manualul Gentoo (de pe
CD sau online), asiguraţi-vă că aţi creat un cont utilizator (vedeţi
Opţional: Conturi de Utilizator). Apoi,
apăsaţi Alt-F2 pentru a comuta în alt terminal şi efectuaţi
login.
Dacă doriţi consularea documentaţiei de pe CD, puteţi rula imediat aplicaţia
links2, sau chiar links -g pentru o aplicaţie browser grafic în
framebuffer, ce vă permite vizualizarea documentaţiei:
Cod 3.11: Vizualizarea documentaţiei de pe CD |
# links2 /mnt/cdrom/docs/html/index.html
|
Totuşi, este recomandat să utilizaţi Manualul Gentoo aflat online,
deoarece este mult mai recent decât cel oferit pe CD. Puteţi utiliza, de
asemenea, aplicaţia links2, dar numai după ce aţi terminat capitolul
despre Configurarea Reţelei (în caz contrar nu veţi putea accesa
internetul pentru a putea consulta online Manualul Gentoo).
Cod 3.12: Accesarea Documentaţiei Online |
# links2 http://www.gentoo.org/doc/ro/handbook/handbook-ppc.xml
|
Puteţi reveni la terminalul iniţial apăsând combinaţia de taste
Alt-F1
Opţional: Pornirea Serviciului SSH
Daca vreţi ca alţi utilizatorii să poata accesa procesul de instalare
Gentoo Linux (posibil, ca să vă ajute să instalaţi Gentoo, sau chiar
să îl instaleze pentru dvs.), va trebui să le creaţi conturi de
utilizator sau chiar sa le oferiţi parola de root (doar dacă
aveţi încredere deplină în acel utilizator).
Pentru a iniţializa serviciul SSH, executaţi comanda de mai jos:
Cod 3.13: Pornirea serviciului SSH |
# /etc/init.d/sshd start
|
Pentru a putea utiliza serviciul ssh trebuie configurat accesul la reţea.
Continuaţi cu capitolul despre Configurarea
Reţelei.
3. Configurarea Reţelei
3.a. Aveţi Nevoie de Reţea?
Cine poate fără?
În general, nu aveţi nevoie de o legătură la internet funcţională pentru a
instala Gentoo utilizând mediul Universal Installation CD. Totuşi, există
unele circumstanţe când doriţi o legătură la internet funcţională:
-
Fişierele stage3 ce sunt stocate pe mediul Universal Installation CD nu se
potrivesc arhitecturii dvs. şi trebuie să descărcaţi fişierul stage3
corect.
-
Trebuie să instalaţi o anumită aplicaţie de reţea ce vă va permite
să vă conectaţi la internet, aplicaţie nedisponibilă pe mediul
Universal Installation CD, dar este suportată de acesta (spre ex. vă puteţi
conecta la internet utilizând mediul Installation CD dar sursele necesare
nu sunt disponibile pe acesta)
-
Doriţi asistenţă de la distanţă în timpul instalării (utilizând
SSH sau prin intermediul unei conversaţii directe utilizând mediul IRC)
Este necesară reţeaua?
Pentru a afla dacă fişierul stage3 specific arhitecturii dvs. este
disponibil, analizaţi conţinutul directorului /mnt/cdrom/stages
şi verificaţi dacă una din arhivele stage disponibile se potriveşte cu
arhitectura dvs. Dacă nu, puteţi, totuşi, opta pentru o arhivă stage3
corespondentă unei arhitecturi compatibile cu a dvs.
Dacă, pe de altă parte, doriţi să utilizaţi o arhivă stage3
optimizată pentru arhitectura dvs., şi fişierul stage3 dorit nu este
disponibil, atunci veţi avea nevoie de legătură la internet pentru a
descărca fişierul stage3 necesar.
Deci, dacă nu aveţi nevoie de reţea, puteţi sări peste restul acestui
şi să continuaţi cu Pregătirea
Discurilor. Altfel, continuaţi cu secţiunile despre configurarea
reţelei explicate mai jos.
3.b. Detectarea în mod automat
Poate să meargă pur şi simplu?
Dacă sistemul dumneavoastră este conectat la o reţea deservită de un
server DHCP, este foarte probabil ca suportul de reţea să fie deja
configurat automat. Dacă este aşa, puteţi beneficia de avantajul
comenzilor incluse pe mediul Installation CD cum ar fi ssh, scp,
ping, irssi, wget şi links, alături de altele.
Dacă reţeaua a fost configurată automat, comanda /sbin/ifconfig ar
trebui să afişeze informaţii despre alte câteva interfeţe în afara lo,
cum ar fi eth0:
Cod 2.1: /sbin/ifconfig pentru o reţea configurată |
# /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
|
Opţional: Configurare Proxy
Dacă aveţi acces la Internet prin intermediul unui proxy, va trebui să
setaţi informaţiile necesare în timpul instalării. Este foarte uşor să
specificaţi folosirea unui proxy: trebuie doar să definiţi o variabilă ce
conţine informaţiile despre serverul folosit.
În majoritatea cazurilor, este suficient să definiţi variabilele folosind
adresa serverului proxy. Ca exemplu, vom presupune că aceasta este
proxy.gentoo.org şi portul este 8080.
Cod 2.2: Definirea serverelor proxy |
# export http_proxy="http://proxy.gentoo.org:8080"
# export ftp_proxy="ftp://proxy.gentoo.org:8080"
# export RSYNC_PROXY="proxy.gentoo.org:8080"
|
Dacă serverul proxy folosit necesită autentificare cu nume şi parolă,
trebuie să folosiţi următoarea sintaxă pentru definirea variabilelor:
Cod 2.3: Adăugarea nume/parolă la variabilele ce definesc proxy |
http://numeutilizator:parola@proxy.gentoo.org:8080
|
Testarea reţelei
Aţi putea încerca să daţi ping în serverele de nume ale providerului
dumneavoastră (cele scrise în /etc/resolv.conf) şi apoi
într-un site la alegere, doar pentru a vă asigura că pachetele
dumneavoastră ajung pe internet şi rezolvarea numelor funcţionează
corect, etc.
Cod 2.4: Exemplu de testare a reţelei |
# ping -c 3 www.yahoo.com
|
Reţeaua este funcţională? Dacă da, puteţi sări peste restul acestei
secţiuni şi continua cu Pregătirea
Discurilor. Dacă nu, ghinion, trebuie să mai munciţi puţin.
3.c. Configurarea reţelei în mod automat
Dacă reţeaua nu funcţionează imediat, unele medii de instalare vă
permit să folosiţi net-setup (pentru reţele obişnuite sau
wireless) sau adsl-setup (pentru conexiuni ADSL) sau pptp (pentru
conexiuni PPTP - disponibilă doar pe arhitectura x86).
Dacă suportul dumneavoastră de instalare nu conţine nici un astfel de
instrument sau reţeaua nu funcţionează încă, continuaţi cu Configurarea Manuală a Reţelei.
Implicit: Folosirea net-setup
Cea mai simplă cale de a configura reţeaua dacă aceasta nu s-a efectuat
în mod automat este să rulaţi scriptul net-setup:
Cod 3.1: Rularea scriptului net-setup |
# net-setup eth0
|
net-setup vă va interoga despre câteva lucruri despre reţea. La
final ar trebui să aveţi o reţea funcţională. Testaţi reţeaua în
modul descris anterior. Dacă testele sunt pozitive, felicitări! Acum
sunteţi gata să instalaţi Gentoo. Săriţi peste restul acestei secţiuni
şi continuaţi cu Pregătirea
Discurilor.
Dacă reţeua dumneavoastră tot nu este funcţională, continuaţi cu Configurarea Manuală a Reţelei.
Alternativ: Folosirea RP-PPPoE
Presupunând că aveţi nevoie de PPPoE pentru a vă conecta la internet,
mediul Installation CD (orice versiune) a simplificat lucrurile pentru
dumneavoastră incluzând scriptul rp-pppoe. Folosiţi scriptul
adsl-setup pentru a configura conexiunea. Va trebui să specificaţi care
anume interfaţă de reţea este conectată la modemul adsl, numele şi parola,
adresele ip ale serverelor de nume (DNS) şi dacă doriţi sau nu un firewall minim.
Cod 3.2: Folosirea rp-pppoe |
# adsl-setup
# adsl-start
|
Dacă ceva nu a funcţionat, verificaţi din nou dacă aţi introdus numele
şi parola corecte uitându-vă în /etc/ppp/pap-secrets sau
/etc/ppp/chap-secrets şi asiguraţi-vă că aţi specificat
corect interfaţa folosită pentru conectare. Dacă intefaţa de reţea nu
există, va trebui să încărcaţi modulul corespunzător. În acest caz
ar trebui să continuaţi cu Configurarea Manuală a
Reţelei unde este explicat modul de încărcare a modulelor necesare.
Dacă totul este în regulă, continuaţi cu Pregătirea Discurilor.
Alternativ: Folosirea PPTP
Notă:
PPTP este disponibil numai pentru arhitectura x86.
|
Dacă aveţi nevoie de PPTP, puteţi folosi scriptul pptpclient
disponibil pe mediul Installation CD. Dar, mai întâi, trebuie să vă asiguraţi
că aveţi o configuraţie corectă. Editaţi /etc/ppp/pap-secrets
sau /etc/ppp/chap-secrets astfel încât acestea să conţină
combinaţia corectă nume/parolă:
Cod 3.3: Editare /etc/ppp/chap-secrets |
# nano -w /etc/ppp/chap-secrets
|
Ajustăm, dacă este necesar, /etc/ppp/options.pptp:
Cod 3.4: Editare /etc/ppp/options.pptp |
# nano -w /etc/ppp/options.pptp
|
Când totul este în regulă, doar rulaţi pptp (împreună cu
opţiunile pe care nu le-aţi putut seta în options.pptp) pentru
a vă conecta la server:
Cod 3.5: Conectarea la un server dial-in |
# pptp <server ip>
|
Acum continuaţi cu Pregătirea
Discurilor.
3.d. Configurarea manuală a reţelei
Încărcarea modulelor potrivite
La boot-area de pe mediul Installation CD, se încearcă detectarea tuturor
dispozitivelor hardware şi încarăcarea modulelor kernel (drivere) necesare
acestora. În marea majoritate a cazurilor, LiveCD-ul face o treabă foarte bună
(detectând aproape tot). Totuşi, în unele cazuri, este posibil să nu fie
încărcate automat unele module necesare.
Dacă net-setup sau adsl-setup eşuează, atunci este posibil
ca placa de reţea să nu fi fost autodetectată. Aceasta presupune ca
dumneavoastră să încarci manual modulele kernel corespunzătoare.
Pentru a afla ce module sunt disponbile pentru reţea, folosiţi ls:
Cod 4.1: Căutarea modulelor dispobinile |
# ls /lib/modules/`uname -r`/kernel/drivers/net
|
Dacă aţi găsit driverul necesar plăcii de reţea, folosiţi
modprobe pentru a-l încărca:
Cod 4.2: Folosirea modprobe pentru a încărca un modul kernel |
# modprobe pcnet32
|
Pentru a verifica dacă placa dumneavoastră de reţea este detectată,
folosiţi ifconfig. O placă de reţea detectată ar trebui să
furnizeze un rezultat de genul:
Cod 4.3: Testarea disponibilităţii plăcii de reţea, rezultat în caz de succes |
# 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)
|
Dacă totuşi primiţi următoarea eroare, placa de reţea nu a fost
detectată:
Cod 4.4: Testarea disponibilităţii plăcii de reţea, rezultat în caz de eşec |
# ifconfig eth0
eth0: error fetching interface information: Device not found
|
Dacă aveţi mai multe plăci de reţea în sistemul dumneavoastră acestea
sunt numite eth0, eth1, etc. Asigurăţi-vă că placa pe care
doriţi să o folosiţi funcţionează corespunzător şi amintiţi-vă
să folosiţi numele corespunzător împreună cu acest document. Noi vom
presupune că este folosită placa eth0.
Presupunând că acum placa de reţea este detectată, puteţi reîncerca
net-setup sau adsl-setup (acum ar trebui să meargă), dar
pentru cei cărora le place calea dificilă vom explica cum să configuraţi
manual reţeaua.
Selectaţi una din următoarele secţiuni în funcţie de tipul reţelei:
Folosirea DHCP
DHCP (Dynamic Host Configuration Protocol) face posibilă obţinerea în mod
automat a informaţiilor necesare configurării reţelei (adresa IP, netmask,
adresa broadcast, gateway, servere de nume etc.). Aceasta funcţionează numai
dacă în reţeaua dumneavoastră exista un server DHCP (sau providerul
dumneavoastră de internet vă furnizează serviciul DHCP). Pentru ca placa
de reţea să fie configurată automat folosiţi dhcpcd:
Cod 4.5: Folosirea dhcpcd |
# dhcpcd eth0
# dhcpcd -HD eth0
|
Dacă totul a fost în regulă (încercaţi ping în căteva adrese
internet, de exemplu Google), atunci
aveţi totul setat şi sunteţi gata pentru a continua. Săriţi peste restul
acestei secţiuni şi continuaţi cu Pregătirea Discurilor.
Pregătirea pentru acces Wireless
Notă:
Suportul pentru comanda iwconfig este disponibil doar pentru mediile
Installation CD pentru arhitecturile x86, amd64 şi ppc. Puteţi, însă, să
faceţi să funcţioneze placa wireless urmând instrucţiunile din proiectul
linux-wlan-ng.
|
Dacă folosiţi o placă wireless (802.11), trebuie să efectuaţi toate
setările necesare înainte de a putea să continuaţi. Pentru a vedea
setările curente ale plăcii dumneavoastră, puteţi folosi
iwconfig. Rularea iwconfig poate afişa ceva de genul:
Cod 4.6: Listarea setărilor curente pentru placa wireless |
# 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
|
Notă:
Unele plăci wireless pot avea numele wlan0 sau ra0 în loc de
eth0. Rulaţi iwconfig fără nici un parametru în linia de comandă
pentru a determina numele corect al dispozitivului.
|
Pentru majoritatea utilizatorilor, sunt numai două setări importante de
schimbat, ESSID (adică numele reţelei wireless) şi/sau cheia WEP. Dacă
ESSID şi adresa Access Point listate sunt deja ca cele ale Access Point-ului
la care vă conectaţi şi dacă nu folosiţi WEP, atunci reţeaua wireless
este funcţională. Dacă aveţi nevoie să schimbaţi ESSID-ul sau să
specificaţi o cheie WEP, puteţi folosi următoarele comenzi:
Cod 4.7: Schimbarea ESSID şi/sau adpugarea cheii WEP |
# iwconfig eth0 essid GentooNode
# iwconfig eth0 key 1234123412341234abcd
# iwconfig eth0 key s:some-password
|
Puteţi acum revedei setările pentru placa wireless folosind iwconfig.
Odată ce aveţi placa wireless funcţională, puteţi continua cu
configurarea adresei IP aşa cum este descris în următoarea secţiune (Terminologia Utilizată în Reţelistică) sau
să folosiţi utilitarul net-setup descris anterior.
Terminologia Utilizată în Reţelistică
Notă:
Dacă ştiţi adresele dumvoastră IP, broadcast, netmask si serverele de
nume, atunci puteţi sări peste această subsecţiune şi continua cu Folosirea ifconfig şi route.
|
Dacă toate încercările de mai sus au eşuat, va trebui să vă
configuraţi reţeaua manual. Nu vă fie teamă, nu este chiar aşa de greu.
Dar trebuie să explicăm căteva noţiuni de reţelistică necesare
configurării manuale. Când veţi termina de citit această parte, veţi
ştii ce este un gateway, la ce foloseşte netmask, cum este
formată adresa broadcast şi de ce aveţi nevoie de servere de
nume.
Într-o reţea, staţiile sunt identificate prin adresa IP (Internet
Protocol address). O astfel de adresă este o combinaţie de patru numere
între 0 şi 255. Ei bine, cel puţin aşa o percepem noi. În realitate, o
adresă IP constă în 32 biţi (unu şi zero). Să vedem un exemplu:
Cod 4.8: Exemplu de adresă IP |
Adresa IP (numeric): 192.168.0.2
Adresa IP (binar): 11000000 10101000 00000000 00000010
-------- -------- -------- --------
192 168 0 2
|
O adresă IP identifică în mod unic o staţie din punctul de vedere al
subreţelelor accesibile (spre ex. toate staţiile care sunt accesibile trebuie
să deţină o adresă IP unică). Pentru a putea distinge staţiile din
interiorul reţelei faţă de cele din exterior, adresa IP este compusă din
două părţi: partea network şi partea host.
Seprarea este efectuată folosind netmask, o colecţie de unu urmată
de o colecţie de zero. Partea din IP care se mapează pe unu esre partea
network, cealaltă parte este partea host. În mod uzual, netmask (masca
reţelei) se poate scrie ca o adresă IP.
Cod 4.9: Exemplu de depanare network/host |
Adresa IP: 192 168 0 2
11000000 10101000 00000000 00000010
Netmask: 11111111 11111111 11111111 00000000
255 255 255 0
+--------------------------+--------+
Network Host
|
Cu alte cuvinte, 192.168.0.14 este încă, în exemplu nostru, în reţea, dar
192.168.1.2 nu.
Adresa broadcast este adresa IP cu aceaşi parte network ca şi
reţeua noastră, dar cu partea host formată numai din unu. Fiecare staţie
din reţea ascultă pe această adresă IP. Este folosită pentru
transmisii de pachete broadcast.
Cod 4.10: Adresa Broadcast |
Adresa IP: 192 168 0 2
11000000 10101000 00000000 00000010
Broadcast: 11000000 10101000 00000000 11111111
192 168 0 255
+--------------------------+--------+
Network Host
|
Pentru a putea naviga pe internet, trebuie să cunoaşteţi care staţie
partajează conexiunea la Internet. Această staţie se numeşte
gateway. Cum aceasta este o staţie obişnuită are şi ea o adresă
IP obişnuită (de exemplu 192.168.0.1).
Anterior am stabilit că fiecare staţie are propria adresă IP. Pentru a
putea recunoaşte staţiile se asociază un nume (cum ar fi
dev.gentoo.org) unei adrese IP (cum ar fi 64.5.62.82). Un astfel
de serviciu este numit serviciu de nume. Pentru a folosi un astfel de serviciu,
trebuie să definiţi serverele de nume în
/etc/resolv.conf.
În unele cazuri, staţia gateway este de asemenea şi server de nume. Dacă
nu, va trebui să introduceţi adresele serverelor de nume furnizate de ISP-ul
dumneavoastră.
Sintetizând, veţi avea nevoie de următoarele informaţii pentru a continua:
| Element reţea |
Exemplu |
| Adresa IP |
192.168.0.2 |
| Netmask |
255.255.255.0 |
| Broadcast |
192.168.0.255 |
| Gateway |
192.168.0.1 |
| Server(e) de nume |
195.130.130.5, 195.130.130.133 |
Folosirea ifconfig şi route
Setarea unei reţele constă în trei paşi. Întâi ne vom atribui o
adresă IP folosind ifconfig. Apoi vom seta ruta către gateway
folosind route. Apoi vom finaliza punând adresele IP corespunzătoare
serverelor de nume în /etc/resolv.conf.
Pentru a atribui o adresă IP, va trebui să cunoaşteţi adresele IP,
broadcast şi netmask. Apoi executaţi următoarea comandă, înlocuind
${IP_ADDR} cu adresa IP, ${BROADCAST} cu adresa broadcast şi
${NETMASK} cu netmask-ul corespunzător:
Cod 4.11: Folosirea ifconfig |
# ifconfig eth0 ${IP_ADDR} broadcast ${BROADCAST} netmask ${NETMASK} up
|
Acum setaţi ruta implicită folosind route. Înlocuiţi
${GATEWAY} cu adresa IP a gateway-ului:
Cod 4.12: Folosirea route |
# route add default gw ${GATEWAY}
|
Acum deschideţi /etc/resolv.conf cu editorul favorit (în exemplu
nostru, vom folosi nano):
Cod 4.13: Crearea /etc/resolv.conf |
# nano -w /etc/resolv.conf
|
Acum completaţi cu adresele serverelor de nume folosind următoarea
machetă. Asiguraţi-vă că înlocuiţi ${NAMESERVER1} şi
${NAMESERVER2} cu adresele IP corespunzătoare:
Cod 4.14: machetă /etc/resolv.conf |
nameserver ${NAMESERVER1}
nameserver ${NAMESERVER2}
|
Aceasta este tot. Acum testaţi reţeaua folosind ping către câteva servere
din Internet (ca de exemplu Google).
Funcţionează? Felicitări atunci. Sunteţi gata să instalaţi Gentoo.
Continuaţi cu Pregătirea Discurilor.
4. Pregătirea Discurilor
4.a. Introducere în Dispozitive Bloc
Dispozitive Bloc
Vom arunca o privire atentă asupra aspectelor în legătură cu discurile
din Gentoo Linux şi Linux, în general, incluzând sistemele de fişiere,
partiţii si dispozitive bloc. Apoi, odată ce vă familiarizaţi cu toate
aspectele despre discuri şi sisteme de fişiere, veţi fi ghidaţi prin
procesul de setare al partiţiilor şi sistemelor de fişiere pentru
instalarea dvs. de Gentoo Linux.
Pentru a începe, vom face introducerea dispozitivelor bloc. Cel mai
renumit dispozitiv bloc este probabil cel care reprezintă primul hard-disk
IDE într-un sistem Linux, şi anume /dev/hda. Dacă sistemul
dvs. utilizează discuri SCSI sau SATA, atunci primul dvs. hard-disk ar trebui
să fie /dev/sda.
Dispozitivele bloc amintite mai sus, reprezintă o interfaţă abstractă
pentru disc. Programele utilizator pot folosi aceste dispozitive bloc pentru a
interacţiona cu discul dvs. fără a avea grija dacă hard-disk-urile sunt
IDE, SCSI sau altceva. Programul poate adresa ceea ce urmează să se
stocheze pe disc ca o mulţime continuă de blocuri de 512 octeţi accesibile
aleator.
Partitiţii şi Slice-uri
Deşi este teoretic posibil să utilizăm un disc întreg pentru a găzdui
sistemul dvs. Linux, acesta este un lucru foarte rar pus în practică. În
loc, dispozitivele bloc întregi sunt împărţite în dispozitive bloc mai
mici şi mai uşor de manipulat. Pe cele mai multe dintre sisteme, acestea
sunt numite partiţii. Alte arhitecturi utilizează structuri similare,
numite slice-uri.
4.b. Proiectarea unei Scheme de Partiţionare
Schema de Partiţionare Implicită
Dacă nu sunteţi interesat în proiectarea unei scheme de partiţionare
pentru sistemul dvs., puteţi utiliza schema de partiţionare ce o folosim pe
tot parcursul manualului:
| Partiţia NewWorld |
Partiţia OldWorld |
Partiţia Pegasos |
Partiţia RS/6000 |
Sistem de fişiere |
Mărime |
Descriere |
| /dev/hda1 |
/dev/hda1 |
(Nu este aplicabil) |
(Nu este aplicabil) |
(Schemă de partiţionare) |
32k |
Apple_partition_map |
| /dev/hda2 |
(Nu este necesar) |
(Nu este aplicabil) |
(Nu este aplicabil) |
(bootstrap) |
800k |
Apple_Bootstrap |
| (Nu este aplicabil) |
(Nu este aplicabil) |
(Nu este aplicabil) |
/dev/sda1 |
(PReP Boot) |
800k |
Tip 0x41 |
| (Nu este necesar) |
(Nu este necesar) |
/dev/hda1 |
(Nu este necesar) |
ext2 |
32MB |
Partiţia pentru Boot |
| /dev/hda3 |
/dev/hda2 |
/dev/hda2 |
/dev/sda2 |
(swap) |
512M |
Partiţia pentru Swap, tip 0x82 |
| /dev/hda4 |
/dev/hda3 |
/dev/hda3 |
/dev/sda3 |
ext3, xfs |
Restul discului |
Partiţia rădăcină, tip 0x83 |
Notă:
Există unele partiţii cu următoarele nume: Apple_Driver43,
Apple_Driver_ATA, Apple_FWDriver, Apple_Driver_IOKit, Apple_Patches.
Dacă nu doriţi să utilizaţi MacOS 9 le puteţi şterge, doarece pentrnu
MacOS X şi Linux nu sunt necesare. Este posibil să utilizaţi parted pentru
a le şterge, doarece mac-fdisk nu poate efectua această operaţie, încă.
|
Atenţie:
parted poate redimensiona partiţii. Pe mediul Installation CD există
fişiere patch incluse pentru a putea redimensiona sisteme de fişiere HFS+. Din
păcate, nu este posibil să redimensionaţi sistemel de fisiere HSF+ jurnalizate,
chiar dacă jurnalizarea a fost dezactivată în Mac OS X. Toate operaţiile de
redimensionare din parted le efectuaţi pe risul dvs.! Asiguraţi-vă că aţi facut
backup la date!
|
Dacă vă interesează cât de mare ar trebui să fie o partiţie, sau
chiar câte partiţii sunt necesare, citiţi mai departe. Altfel, continuaţi
cu Implicit: Utilizarea mac-fdisk (Apple/IBM) pentru
Partiţionarea Discului sau Alternativ: Utilizarea
parted (special pentru Pegasos) pentru Partiţionarea Discului.
Cât de Multe şi Cât de Mari?
Numărul de partiţii este în foarte mare măsură dependent de mediul dvs.
Spre exemplu, dacă aveţi un număr foarte mare de utilizatori, cel mai
probabil veţi dori să aveţi directorul /home separat, deoarece
sporeşte securitatea şi facilitează operaţiile de backup. Dacă
instalaţi Gentoo ca server de mail, directorul dvs. /var ar
trebui să fie separat, pentru că toate mail-urile sunt stocate în
/var. O bună alegere a sistemului de fişiere va mări la
maxim performanţele. Serverele de jocuri vor avea o partiţie
/opt separată, deoarece majoritatea aplicaţiilor server pentru
jocuri sunt instalate acolo. Motivul este similar cu cel pentru
/home: securitate şi backup. Veţi dori în mod sigur să vă păstraţi
/usr mare: nu numai că va conţine majoritatea aplicaţiilor, dar
numai structura Portage ocupă în jur de 500 MOcteţi, excluzând sursele ce sunt
stocate în acesta.
După cum puteţi observa, depinde foarte mult scopul pe care doriţi să-l
atingeţi. Partiţii sau volume separate au următoarele avantaje:
-
Puteţi alege cel mai performant sistem de fişiere pentru fiecare partiţie
sau volum
-
Întregul sistem nu poate rămâne făra spaţiu liber dacă o aplicaţie
nefuncţională scrie în continuu fişiere pe o partiţie sau volum.
-
Dacă este necesar, verificările sistemului de fişiere sunt reduse ca
timp, deoarece se pot executa mai multe verificări în paralel (deşi acest
avantaj este mai mare în cazul discurilor multiple, decât în cel al
partiţiilor multiple)
-
Securitatea poate fi îmbunătăţită prin mount-area unor partiţii sau
volume doar pentru citire, în mod nosuid (biţii setuid sunt ignoraţi),
noexec (biţii pentru execuţie sunt ignoraţi), etc.
În orice caz, partiţiile multiple au un mare dezavantaj: dacă nu sunt
configurate corect, pot cauza ca un sistem să aibă foarte mult loc liber pe
o partiţie şi fără loc liber pe alta. Există, de asemenea, o limitare
la 15 partiţii pentru SCSI şi SATA.
4.c. Implicit: Utilizarea mac-fdisk (Apple) pentru Partiţionarea Discului
În această parte, creaţi partiţiile utilizând mac-fdisk:
Cod 3.1: Rularea mac-fdisk |
# mac-fdisk /dev/hda
|
Mai întâi ştergeţi toate partiţiile eliberate anterior pentru a face loc
partiţiilor de Linux. Utilizaţi d în mac-fdisk pentru a
şterge aceste partiţii. Vă va cere numărul partiţiei pentru şters. De
obicei, prima partiţie pe maşinile NewWorld (Apple_partition_map) nu poate
fi ştearsă.
Apoi, creaţi o partiţie Apple_Bootstrap utilizând b. Vă va
cere blocul de la care va începe. Introduceţi numărul primei partiţii
libere, urmat de un p. Spre exemplu, acesta este 2p.
Notă:
Această partiţie nu este o partiţie de tip /boot. Nu este
utilizată de Linux deloc; nu trebuie să aplicaţi nici un sistem de
fişiere pe ea şi nu ar trebui niciodată să o mount-aţi. Utilizatorii
Apple nu necesită o partiţie suplimentară pentru /boot.
|
Acum, creaţi partiţia swap prin tastarea c. Din nou, mac-fdisk
va cere blocul de la care va începe partiţia. Cum am folosit 2
înainte pentru a crea partiţia Apple_Bootstrap, acum trebuie să
introduceţi 3p. Când vi se va cere mărimea, introduceţi 512M
(sau ce capacitate doriţi -- 512MO este totuşi recomandată). Când vi se
va cere un nume, introduceţi swap (obligatoriu).
Pentru a crea partiţia rădăcină, introduceţi c, urmat de
4p pentr a selecta blocul de la care partiţia rădăcină ar trebui
să inceapă. Când vi se va cere capacitatea, introduceţi 4p din
nou. mac-fdisk va interpreta aceasta ca "Utilizează tot spaţiul liber
disponibil". Când vi se va cere numele, introduceţi root
(obligatoriu).
Pentru a termina, scrieţi partiţiile pe disc utilizând w şi
q pentru a ieşi din mac-fdisk.
Notă:
Pentru a vă asigura că totul este în ordine, ar trebui să mai rulaţi
mac-fdisk încă o dată pentru a verifica dacă toate partiţiile sunt
prezente. Dacă nu observaţi nici una din partiţiile create, ar trebui să
reiniţializaţi partiţiile dvs. prin apăsarea "i" în mac-fdisk. Notaţi
faptul că această comandă va recrea schema de partiţii, astfel
ştergându-vă toate partiţiile dvs.
|
Acum că partiţiile dvs. sunt create, puteţi continua cu Crearea Sistemelor de Fişiere.
4.d. Utilizarea parted (special pentru Pegasos) pentru Partiţionarea Discului
parted, Editorul de Partiţii, poate acum să manipuleze partiţii HFS+
utilizate de Mac OS şi Mac OS X. Cu acest utilitar puteţi redimensiona
partiţiile Mac şi să creaţi spaţiu pentru partiţiile dvs. Linux. Cu
toate acestea, exemplul ce urmează descrie partiţionarea doar pentru
maşinile Pegasos.
Pentru a începe, să lansăm parted:
Cod 4.1: Rularea parted |
# parted /dev/hda
|
Dacă drive-ul este nepartiţionat, rulaţi mklabel amiga pentru a crea
un nouă informaţie disklabel pentru acest drive.
Puteţi tasta print în orice moment în parted pentru a afişa tabela de
partiţii. Sacă la vreun moment dat vă răzgândiţi sau greşiţi, puteţi apăsa
Ctrl-c pentru a ieşi din parted.
Dacă intenţionaţi să instalaţi, de asemenea, MorphOS pe platforma dvs.
Pegasos, creaţi un sistem de fişiere affs1 numit "BI0" (BI zero) la
începutul drive-ului. 32 MOcteţi ar trebui să fie mai mult decât suficient
pentru a stoca kernel-ul MorphOS. Dacă aveţi o platformă Pegasos I sau
intenţionaţi să utilizaţi reiserfs sau xfs va trebui, de asememnea, să
stocaţi kernel-ul Linux pe această partiţie (platforma Pegasos II poate
boot-a de pe partiţii ext2/ext3 sau affs1). Pentru a crea o partiţie, rulaţi
mkpart primary affs1 START END, unde START şi END ar
trebui înlocuite cu intervalul de megaocteţi (de exemplu, 0 32 crează o
partiţie de 32 MOcteţi începând de la 0 şi terminând la 32 MOcteţi).
Trebuie să creaţi două partiţii pentru Linux, un sistem de fişiere
pentru rădăcină pentru toate aplicaţiile, etc, şi o partiţie swap.
Pentru a crea sistemul de fişiere rădăcină trebuie mai intâi să
decideţi ce sistem de fişiere să utilizaţi. Opţiunile posibile sunt
ext2, ext3, reiserfs şi xfs. În cazul în care nu ştiţi ce să
utilizaţi, alegeţi ext3. Rulaţi mkpart primary ext3 START END pentru
a crea partiţia ext3. Din nou, înlocuiţi START şi END cu
indicatoarele de început şi sfârşit în megaocteţi pentru partiţie.
În general, este recomandat să creaţi partiţia swap având mărimea la
fel cu mărimea memoriei RAM existente în sistem, dublată. Probabil că va
funcţiona şi cu o partiţie de swap mai mică, dacă nu intenţionaţi
să rulaţi multe aplicaţii în acelaşi timp (deşi, cel puţin 512MO este
recomandat). Pentru a crea partiţia swap, rulaţi mkpart primary linux-swap
START END.
Notaţi numerele minore ale partiţiilor, deoarece sunt necesare în timpul
procesului de instalare. Pentru a afişa numerele minore tastaţi
print. Drive-urile sunt accesate ca /dev/hdaX unde X este
înlocuit cu numărul minor al partiţiei.
Când terminaţi în parted, trebuie doar să rulaţi quit.
4.e. Crearea Sistemelor de Fişiere
Introducere
Acum, că partiţiile dvs. sunt create, este timpul să aplicăm un sistem
de fişiere pe acestea. Dacă nu vă pasă ce sistem de fişiere să
alegeţi şi sunteţi mulţumiţi cu ceea ce utilizăm noi implicit în acest
manual, continuaţi cu Aplicarea unui Sistem de
Fişiere pe o Partiţie. Altfel, citiţi mai departe pentru a învăţa
despre sistemele de fişiere disponibile...
Sisteme de Fişiere?
Sunt disponibile mai multe sisteme de fişiere. ext2, ext3, ReiserFS şi XFS
sunt considerate stabile pe arhitectura PPC. jfs nu este suportat.
ext2 este cel mai încercat sistem de fişiere Linux, dar nu conţine
destule informaţii de tip metadata pentru jurnalizare, ceea ce înseamnă
că verificările de rutină ale sistemului de fişiere ext2 la pornirea
sistemului pot dura o perioada considerabilă de timp. Există acum o
mulţime de sisteme de fişiere jurnalizate din noua generaţie ce pot fi
verificate pentru consistenţă foarte repede şi sunt, de aceea, preferate
celor corespondente nejurnalizate. Sistemele de fişiere jurnalizate previn
durata lungă la pornirea sistemului când sistemul de fişiere este într-o
stare de inconsitenţă.
ext3 este versiunea jurnalizată a sistemului de fişiere ext2, oferind
informaţii de jurnalizare de tip metadata pentru recuperări rapide în plus faţă
de alte moduri de îmbunătăţire ca jurnalizarea completă a datelor şi
jurnalizarea ordonată a datelor. ext3 este un sistem de fişiere foarte bun şi
sigur. Conţine o indexare adiţională b-tree, opţiune de indexare ce oferă o
performanţă bună în aproape toate situaţiile. Puteţi activa această indexare
prin adăugarea opţiunii -O dir_index comenzii mke2fs. Pe scurt,
ext3 este un sistem de fişiere excelent.
ReiserFS este un sistem de fişiere B*-tree ce oferă în general o
performanţă foarte bună şi depăşeşte mult atât ext2 cât şi
ext3 în cazul fişierelor mici (mai mici de 4K), în cele mai multe cazuri cu
un coeficient de 10-15 ori. ReiserFS oferă o scalabilitate foarte bună şi
conţine jurnalizare de tip metadata. Începând cu kernel 2.4.18+, ReiserFS
este solid şi utilizabil atât în cazuri normale cât şi pentru cazuri
extreme cum ar fi crearea de sisteme de fişiere foarte mari, utilizarea
multor fişiere foarte mici, fişiere foarte mari şi directoare conţinând
zeci de mii de fişiere.
XFS este un sistem de fişiere cu jurnalizare metadata ce are un set de
funcţionalităţi robuste şi este optimizat pentru scalabilitate.
Recomandăm utilizarea acestui sistem de fişiere doar pe sistemele Linux ce
conţin discuri SCSI şi/sau sisteme de stocare pe fibra optică şi care
deţin o sursă de alimentare neîntreruptibilă. Deoarece XFS utilizează
într-un mod agresiv păstrarea datelor tranzitate în RAM, programele ce nu
sunt proiectate corect (cele care nu îşi asigură precauţii la scrierea
fişierelor pe disc care sunt destul de puţine) pot pierde multe date dacă
sistemul se opreşte în mod neaşteptat.
Aplicarea unui Sistem de Fişiere pe o Partiţie
Pentru a crea un sistem de fişiere pe o partiţie sau volum, există
utilitare disponibile pentru fiecare sistem de fişiere posibil:
| Sistem de Fişiere |
Comanda pentru Creare |
| ext2 |
mkfs.ext2 |
| ext3 |
mkfs.ext3 |
| reiserfs |
mkfs.reiserfs |
| xfs |
mkfs.xfs |
Spre exemplu, pentru a avea partiţia rădăcină (/dev/hda4
în exemplul nostru) ca ext3 (ca în exemplul nostru), ar trebui să
utilizaţi:
Cod 5.1: Aplicarea unui sistem de fişiere pe o partiţie |
# mkfs.ext3 /dev/hda4
|
Acum creaţi sistemele de fişiere pe partiţiile sau volumele logice nou
create.
Notă:
Pe maşinile OldWorld şi PegasosII, partiţia dvs. ce va stoca kernel-ul
trebuie să fie ext2 sau ext3. Maşinile NewWorld pot efectua boot de pe
oricare dintre sistemele de fişiere ext2, ext3, XFS, ReiserFS şi chiar
HFS/HFS+.
|
Activarea Partiţiei Swap
mkswap este comanda utilizată pentru a iniţializa partiţiile swap:
Cod 5.2: Crearea unei semnături Swap |
# mkswap /dev/hda3
|
Pentru a activa partiţia swap, utilizaţi swapon:
Cod 5.3: Activarea partiţiei swap |
# swapon /dev/hda3
|
Creaţi şi activaţi partiţia swap acum.
4.f. Mount-area
Acum ca partiţiile dvs. sunt iniţializate şi găzduiesc un sistem de
fişiere, este timpul să mount-aţi aceste partiţii. Utilizaţi comanda
mount. Nu uitaţi să creaţi directoarele de mount pentru fiecare
partiţie creată. Ca un exemplu, vom mount-a partiţia rădăcină:
Atenţie:
Din cauza unei erori în pachetul e2fsprogs, trebuie să utilizaţi în mod
explicit opţiunea mount -t ext3, în cazul în care utilizaţi un sistem
de fişiere ext3.
|
Cod 6.1: Mount-area partiţiilor |
# mkdir /mnt/gentoo
# mount /dev/hda4 /mnt/gentoo
# mount -t ext3 /dev/hda4 /mnt/gentoo
|
Notă:
Dacă doriţi ca directorul /tmp să se afle pe o partiţie
separată, asiguraţi-vă că îi schimbaţi permisiunile după mount-are:
chmod 1777 /mnt/gentoo/tmp. Aceasta este valabil şi pentru
/var/tmp.
|
Trebuie, de asemenea, să utilizăm mount pentru sistemul de fişiere proc
(o interfaţă virtuală cu kernel-ul) în /proc. Dar, mai
întâi va trebui să stocăm fişierele noastre pe partiţii.
Continuaţi cu Instalarea Fişierelor de
Instalare Gentoo.
5. Instalarea Fişierelor Gentoo necesare Instalării
5.a. Instalarea unei Arhive Tar Stage
Setarea corectă a Datei/Orei
Înainte de a continua, trebuie să verificaţi data/ora şi să o
actualizaţi. Un ceas configurat greşit ar putea duce la rezultate ciudate pe
viitor!
Pentru a verifica data/ora curentă, executaţi date
Cod 1.1: Verificarea datei/orei |
# date
Fri Mar 29 16:21:18 CEST 2005
|
Dacă data/ora sunt afişate greşit, actualizaţi-le folosind sintaxa
date MMDDhhmmYYYY (Month - Lună, Day - Zi, hour -
Oră, minute - Minut şi Year - An). De exemplu, pentru a seta
data de 29 Martie, 16:21, a anului 2005:
Cod 1.2: Setarea datei/orei |
# date 032916212005
|
Localizarea Fişierului Stage3
Dacă aţi configurat reţeaua pentru a avea nevoie să descărcaţi
fişierul stage3 pentru arhitectura dvs., continuaţi cu Alternativ: Utilizarea Unei Arhive Stage3 de pe
Internet. Altfel, consultaţi Implicit: Utilizarea
Unei Arhive Stage3 de pe Mediul Installation CD.
5.b. Implicit: Utilizarea Unei Arhive Stage de pe Mediul Installation CD
Dezarhivarea Arhivei Tar Stage
Fişierele Stage de pe CD se găsesc în directorul
/mnt/cdrom/stages. Pentru a urmări o listă cu toate
Stage-urile disponibile, folosiţi ls.
Cod 2.1: Afişarea tuturor arhivelor stage disponibile |
# ls /mnt/cdrom/stages
|
Dacă sistemul va returna o eroare, probabil că trebuie să mount-aţi mai
întâi CD-ROM-ul:
Cod 2.2: Mount-area CD-ROM-ului |
# ls /mnt/cdrom/stages
ls: /mnt/cdrom/stages: No such file or directory
# mount /dev/cdroms/cdrom0 /mnt/cdrom
# ls /mnt/cdrom/stages
|
Acum mergeţi în directorul în care aţi mount-at sistemul Gentoo (de obicei
în /mnt/gentoo):
Cod 2.3: Shimbarea directorului în /mnt/gentoo |
# cd /mnt/gentoo
|
Acum vom extrage arhiva tar stage aleasă de dumneavoastră. Vom realiza
acest lucru cu ajutorul utilitarului GNU tar. Asiguraţi-vă că
folosiţi aceleaşi opţiuni (-xvjpf)! Opţiunea x înseamnă
Extract, v vine de la Verbose pentru a observa ceea ce se
întâmplă în timpul procesului de extracţie (această opţiune este
facultativă), j vine de la Decompress with bz2, p
înseamnă Preserve permissions , iar f denotă că vrem să
dezarhivăm un fişier şi nu datele de la standard input. În următorul
exemplu, vom extrage fişierul stage
stage3-<subarch>-2005.0.tar.bz2. Asiguraţi-vă că
schimbaţi numele fişierului cu cel ales de dumneavoastră.
Cod 2.4: Dezarhivarea fişierului stage |
# tar -xvjpf /mnt/cdrom/stages/stage3-<subarch>-2005.0.tar.bz2
|
Acum, că arhiva stage este instalată, continuaţi cu Instalarea Portage.
5.c. Alternativ: Utilizarea Unei Arhive Stage3 de pe Internet
Descărcarea Arhivei Stage
Mergeţi în directorul în care aţi mount-at sistemul de fişiere Gentoo
(cel mai probabil în /mnt/gentoo):
Cod 3.1: Intrăm în directorul în care am mount-at Gentoo |
# cd /mnt/gentoo
|
În funcţie de mediul de instalare, aveţi câteva unelte disponibile pentru
a descărca un Stage. Dacă aveţi links2 disponibil, atunci puteţi
naviga cu uşurinţă către lista de servere mirror Gentoo şi să alegeţi unul căt
mai apropiat de dumneavoastră.
Dacă nu aveţi disponibilă aplicaţia links2, ar trebui să aveţi
aplicaţia lynx la dispoziţie. Dacă trebuie să utilizaţi un server
proxy, exportaţi variabilele http_proxy şi ftp_proxy:
Cod 3.2: Setarea informaţiilor despre proxy pentru lynx |
# export http_proxy="http://proxy.server.com:port"
# export ftp_proxy="http://proxy.server.com:port"
|
Vom presupune, de acum, că aveţi la dispoziţie links2.
Selectaţi directorul releases/, urmat de cel al arhitecturii
folosite (de exemplu x86/) şi al versiunii Gentoo dorite
(2005.0/), terminând cu directorul stages/. Acolo ar
trebui să găsiţi toate arhivele tar stage disponibile pentru arhitectura
dumneavoastră (este posibil să fie stocate în directoare având numele
subarhitecturilor individuale). Selectaţi una şi apasaţi D pentru a
o descărca. Când aţi terminat, apăsaţi Q pentru a ieşi din
browser.
Cod 3.3: Navigarea cu links2 a listelelor de mirror-uri |
# links2 http://www.gentoo.org/main/en/mirrors.xml
# links2 -http-proxy proxy.server.com:8080 http://www.gentoo.org/main/en/mirrors.xml
|
Dacă doriţi să verificaţi integritatea arhivei descărcate, folosiţi
md5sum şi comparaţi ceea ce este afişat cu suma MD5 aflată pe
mirror. Spre exemplu, pentru a verifica integritatea arhivei tar stage pentru
x86:
Cod 3.4: Verificarea integrităţii arhivei |
# md5sum -c stage3-x86-2005.0.tar.bz2.md5
stage3-x86-2005.0.tar.bz2: OK
|
Despachetarea arhivei
Acum despachetaţi arhiva descărcată pe sistemul dumneavoastră. Noi
utilizăm GNU tar pentru această operaţie, fiind cea mai simplă
metodă:
Cod 3.5: Despachetarea arhivei stage |
# tar -xvjpf stage3-*.tar.bz2
|
Asiguraţi-vă că folosiţi aceleaşi opţiuni (-xvjpf). Opţiunea
x înseamnă Extract, v vine de la Verbose pentru a
observa ce se întâmplă în timpul decompresiei (această opţiune este
facultativă), j vine de la Decompress with bz2, p
înseamnă Preserve permissions , iar f denotă că vrem să
dezarhivăm un fişier şi nu datele de la standard input.
Acum că avem Stage-ul instalat, continuăm cu Instalarea Portage.
5.d. Instalarea Portage
Despachetarea Unei Arhive Snapshot Portage
Acum, trebuie să instalaţi o arhivă snapshot pentru Portage, o colecţie
de fişiere ce informează Portage despre titlurile software pe care le
puteţi instala, ce profile sunt disponibile, etc.
Despachetarea Arhivei Snapshot de pe mediul Installation CD
Pentru a instala o versiune Snapshot, uitaţi-vă în
/mnt/cdrom/snapshots/ pentru a vedea ce arhive Snapshot sunt
disponibile:
Cod 4.1: Vizualizare conţinut /mnt/cdrom/snapshots |
# ls /mnt/cdrom/snapshots
|
Acum extrageţi versiunea Snapshot folosind următoarea syntaxă. Din nou,
asiguraţi-vă că folosiţi opţiunile corecte pentru tar. De
asemenea -C este C cu majusculă, nu c. În următorul
exemplu vom folosi portage-<data>.tar.bz2. Asiguraţi-vă că
înlocuiţi numele cu cel al versiunii snapshot aflată pe mediul dvs.
Installation CD.
Cod 4.2: Extragerea unei versiuni Snapshot a Portage |
# tar -xvjf /mnt/cdrom/snapshots/portage-<data>.tar.bz2 -C /mnt/gentoo/usr
|
Copierea Codurilor Sursă
Va trebui să copiaţi, de asemenea, şi codul sursă de pe mediul Universal
Installation CD.
Cod 4.3: Copierea codului sursă |
# mkdir /mnt/gentoo/usr/portage/distfiles
# cp /mnt/cdrom/distfiles/* /mnt/gentoo/usr/portage/distfiles/
|
5.e. Configurarea Opţiunilor de Compilare
Introducere
Pentru optimizarea Gentoo, puteţi seta unele variabile ce vor determina
comportamentul Portage. Toate aceste variabile pot fi setate ca şi variabile
de mediu (folosind export), dar acest lucru nu este permanent. Pentru a
vă menţine setările, Portage conţine un fişier de configurare
/etc/make.conf. Acest fişier îl vom edita acum.
Notă:
O listă comentată a tuturor variabilelor, poate fi găsită în
/mnt/gentoo/etc/make.conf.example. Pentru o instalare reuşită
Gentoo va trebui doar să setaţi aceste variabile menţionae mai sus.
|
Deschideţi editorul de text favorit (în acest ghid noi folosim nano)
astfel încât să modificăm variabilele de optimizare, pe care le vom
explica în continuare.
Cod 5.1: Deschiderea /etc/make.conf |
# nano -w /mnt/gentoo/etc/make.conf
|
Aşa cum probabil aţi observat, fişierul make.conf.example
este structurat intr-un mod generic: liniile comentate încep cu "#", iar
celelalte definesc variabile folosind sintaxa : VARIABLE="conţinut".
Fişierul make.conf utilizează aceeaşi sintaxă. Multe
dintre acele variabile sunt discutate in continuare.
Atenţie:
Nu efectuaţi nici o modificare asupra variabilei USE dacă efectuaţi o
instalare stage3 cu GRP. Puteţi modifica variabila USE după instalarea
pachetelor dorite. Gremlin sunt cunoscuţi ca atacatori ai sistemului dvs.
dacă ignoraţi acest avertisment!
|
CHOST
Atenţie:
Deşi este, poate, tentant pentru utilizatorii ce nu au început instalarea cu
stage1, aceştia nu trebuie să modifice setarea CHOST în
make.conf. Modificarea ar putea să determine sistemul să
devină instabil. Încă o data: modificaţi această variabila doar dacă
efectuaţi o instalare stage1.
|
Abordarea instalării fără reţea suportă doar instalările stage3. Nu modificaţi
variabila CHOST!
CFLAGS şi CXXFLAGS
Variabilele CFLAGS şi CXXFLAGS definesc opţiunile de
optimizare pentru compilatorul gcc de C respectiv C++. Deşi, în
general, le definim aici, veţi obţine maximul de performanţă dacă
optimizaţi flag-urile pentru fiecare program, în parte. Motivul pentru
această afirmaţie este că fiecare program este diferit.
În make.conf ar trebui să definiţi opţiunile de optimizare
care credeţi că vor face sistemul cât mai rapid în general. Nu
puneţi valori experimentale în această variabilă; o optimizare prea mare
poate duce la un comportament ciudat al programelor (oprirea funcţionării,
sau chiar mai rău, funcţionarea incorectă).
Nu vom explica toate optiunile de optimizare. Dacă vreţi să le aflaţi
pe toate, citiţi Manualul(ele)
Online GNU sau gcc pagina info (info gcc -- funcţionează
doar pe un sistem Linux funcţional). Fişierul make.conf.example
însuşi conţine, de asemenea, multe exemple şi
informaţii; nu uitaţi să-l citiţi.
O primă opţiune este indicatorul -march=, care specifică numele
arhitecturii ţintă. Opţiunile posibile sunt descrise în fişierul
make.conf.example (ca şi comentarii). De exemplu, pentru
arhitectura x86 Athlon-XP:
Cod 5.2: Setarea march pentru GCC |
-march=athlon-xp
|
Al doilea este indicatorul -O (care reprezintă majuscula O, nu cifra
zero), care specifică clasa de optimizare gcc. Clasele posibile sunt
s (pentru optimizarea marimii), 0 (zero - pentru nici o
optimizare), 1, 2 sau 3 pentru mai multe optimizări de
viteză (fiecare clasă are aceiaşi indicatori ca cea dinainte, plus
altele). De exemplu, pentru o optimizare a clasei 2:
Cod 5.3: Setarea O pentru GCC |
-O2
|
O altă setare comună de optimizare este -pipe (utilizează canale
pipe în locul fişierelor temporare pentru comunicaţia între diversele
etape ale compilării.
Luaţi aminte faptul că utilizarea -fomit-frame-pointer (ce nu
păstrează indicatorul frame într-un registru pentru funcţiile ce nu
necesită acest lucru) poate avea repercursiuni serioase asupra aplicaţiilor
de depanare!
Când definiţi CFLAGS şi CXXFLAGS, ar trebui să combinaţi
mai multe opţiuni de optimizare, ca în exemplul următor:
Cod 5.4: Definirea variabilelor CFLAGS şi CXXFLAGS |
CFLAGS="-march=athlon-xp -pipe -O2"
CXXFLAGS="${CFLAGS}"
|
MAKEOPTS
Cu ajutorul MAKEOPTS definiţi câte compilări paralele vor apărea
când instalaţi un pachet. O alegere bună este numărul procesoarelor din
sistem plus încă unul, dar această sugestie nu este întotdeauna
perfectă.
Cod 5.5: MAKEOPTS pentru un sistem normal, cu un procesor |
MAKEOPTS="-j2"
|
Fiţi gata, Pregătiţi-vă, Porniţi!
Actualizaţi fişierul /mnt/gentoo/etc/make.conf, cu
preferinţele dumneavoastră şi salvaţi (utilizatorii nano
tastează Ctrl-X). Acum sunteţi gata să continuaţi cu Intrarea în Mediul Chroot al Sistemului de Bază
Gentoo.
6. Intrarea în Mediul Chroot al Sistemului de Bază Gentoo
6.a. Utilizarea mediului Chroot
Mount-area Sistemului de Fişiere proc
Mount-aţi sistemul de fişiere /proc în
/mnt/gentoo/proc pentru a permite instalării să utilizeze
informaţia oferită de kernel, chiar şi în mediul chroot.
Cod 1.1: Mount-area /proc |
# mount -t proc none /mnt/gentoo/proc
|
Opţional: Precizarea Informaţiilor despre DNS
Dacă v-aţi configurat reţeaua pentru a descărca arhiva stage corespunzătoare
de pe Internet, trebuie să copiaţi informaţiile DNS stocate din fişierul
/etc/resolv.conf în /mnt/gentoo/etc/resolv.conf.
Acest fişier conţine server-ele de nume pe care sistemul dvs. le va utiliza
pentru a rezolva numele către adrese IP.
Cod 1.2: Copierea informaţiilor despre DNS |
# cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf
|
Intrarea în noul Mediu
Acum, că toate partiţiile sunt iniţializate şi mediul de bază instalat,
a venit momentul să intrăm în noul mediu prin acţiunea de
chrooting în acesta. Aceasta înseamnă că ne mutăm din mediul în
care a decurs instalarea (LiveCD sau alt mediu de instalare), în sistemul
instalat (adică în partiţia iniţializată)
Acţiunea de chrooting, se face in trei etape. Mai întâi, vom muta
rădăcina, din / (de pe discul de instalare), către
/mnt/gentoo (de pe partiţia aleasa pentru instalare), folosind
comanda chroot. Apoi, vom creea un nou mediu, folosind comanda
env-update, care, în esenţă, creează variabile ale mediului. În
final, încărcăm aceste variabile în memorie, folosind comanda
source.
Cod 1.3: Chroot în noul mediu |
# chroot /mnt/gentoo /bin/bash
# env-update
* Caching service dependencies...
# source /etc/profile
|
Felicitări! Sunteţi acum în propriul mediu Gentoo Linux. Desigur, suntem
departe de a fi terminat, motiv pentru care procesul de instalare mai are
câteva secţiuni de parcurs :-)
6.b. Configurarea Variabilei USE
Ce Este Varibila USE?
USE este una dintre cele mai puternice variabile, pe care Gentoo o pune
la dizpoziţia utilizatorilor. Multe dintre programe pot fi compilate, cu sau
fără suport opţional pentru diferite pachete. De exemplu, unele programe
pot fi compilate cu suport gtk sau cu suport qt. Altele pot fi compilate cu sau
fără suport SSL. Unele programe pot fi chiar compilate cu suport
framebuffer (svgalib), în loc de suport X11 (X-server).
Majoritatea distribuţiilor îşi compilează propriile pachete, folosind
suport pentru cât mai multe lucruri posibile, crescând astfel dimeniunea
programelor şi totodată a timpului de pornire, fără a menţiona enorma
cantitate de dependenţe. Folosind Gentoo, puteţi defini cu ce opţiuni să
fie compilat un pachet. Aici intră in joc, variabila USE
În cadrul variabilei USE, definiţi cuvinte cheie care sunt folosite
în opţiunile compilării. De exemplu, opţiunea ssl va compila
suportul pentru ssl, în cadrul programelor care îl suportă. -X va
elimina suportul pentru X-server (observaţi semnul minus din faţă).
gnome gtk -kde -qt va compila programele cu suport gnome (gtk) dar
fără suport kde (şi qt), făcându-vă sistemul, pe deplin optimizat
pentru GNOME.
Modificarea Variabilei USE
Atenţie:
Nu efectuaţi nici o modificare variabilei USE, încă, dacă plănuiţi să utilizaţi
pachetele noastre precompilate (setul GRP). Puteţi modifica variabila USE după
ce aţi instalat pachetele dorite. Creaturile Gremlin sunt cunoscuţi a vă ataca
sistemul în cazul în care ignoraţi acest avertisment!
|
Setările USE implicite se află în fişierele
make.defaults din profilul dvs. Veţi putea regăsi fişierele
make.defaults în directorul spre care indică
/etc/make.profile şi în toate directoarele ascendente. Setarea
USE reprezintă suma tuturor setărilor USE din toate
fişierele make.defaults. Setările USE implicite, se
află în fişierele /etc/make.profile/make.defaults. Ceea ce
adăugaţi în /etc/make.conf este calculat în concordanţă cu
aceste setări implicite. Dacă adăugaţi ceva setărilor USE, este
adăugat listei implicite. Dacă ştergeţi ceva din setările USE
(prin scrierea semnului minus in faţa sa), atunci este şters din lista
implicită (în cazul in care ar fi fost in listă). Niciodată nu
faceţi schimbări în interiorul directorului /etc/make.profile;
va fi rescris când actualizaţi Portage!
O descriere completă, a variabilei USE, poate fi găsită în cea de
a doua parte a Gentoo Handbook, Indicatori
USE. O descriere completă a variabilelor USE existente, poate fi
găsită în /usr/portage/profiles/use.desc.
Cod 2.1: Vizualizarea indicatorilor USE existenţi |
# less /usr/portage/profiles/use.desc
|
Drept exemplu, vă prezentăm setările USE ale unui sistem bazat pe KDE,
cu suport DVD, ALSA si CD-Recording.
Cod 2.2: Deschidem /etc/make.conf |
# nano -w /etc/make.conf
|
Cod 2.3: Setările USE |
USE="-gtk -gnome qt kde dvd alsa cdr"
|
7. Configurarea Kernel-ului
7.a. Zona de Fus Orar
Trebuie, mai întâi să setaţi fusul orar, astfel încât sistemul
dumneavoastră să ştie unde se află. Uitaţi-vă după fusul orar
potrivit în /usr/share/zoneinfo, apoi faceţi un symlink către
/etc/localtime, folosind ln:
Cod 1.1: Setarea informaţiilor referitoare la fusul orar |
# ls /usr/share/zoneinfo
# ln -sf /usr/share/zoneinfo/GMT /etc/localtime
|
7.b. Instalarea Surselor
Alegerea unui Kernel
Nucleul în jurul carora sunt construite toate distributiile, este kernelul
Linux. Este nivelul dintre programe şi componentele hardware ale sistemului
dumneavoastră. Gentoo pune la dispoziţia utilizatorilor, mai multe surse de
kernel. O listă completă alături de descrierea lor, este accesibilă la
Ghidul Gentoo pentru Kernel.
Pentru arhitectura PPC puteţi alege între vanilla-sources şi
gentoo-sources (amândouă din generaţia 2.6). Cel din urmă este
disponibil când alegeţi o instalare fără reţea. În afară de acestea
există un set de patch-uri pentru kernel pentru Pegasos:
pegasos-sources. Aşa că să continuăm cu instalarea surselor,
utilizând emerge:
Cod 2.1: Instalarea unor surse de kernel |
# emerge gentoo-sources
|
Notă:
Sursele PowerPC sunt bazate pe versiunea 2.6.10-kernel cu patch-uri de
securitate din versiunea 2.6.11 portate regresiv. La momenul publicării,
versiunea de kernel 2.6.11 producea unele probleme pe unele maşini PowerPC.
|
Când vă veţi uita în /usr/src ar trebui să vedeţi un
symlink numit linux. Vom presupune că versiunea de kernel
instalată este gentoo-sources-2.6.10-r8:
Cod 2.2: Vizualizare symlink sursă kernel |
# ls -l /usr/src/linux
lrwxrwxrwx 1 root root 22 Mar 18 16:23 /usr/src/linux -> linux-2.6.10-gentoo-r8
|
Dacă acesta nu este cazul dvs. (notaţi faptul că linux-2.6.10-gentoo-r8
este doar un exemplu) modificaţi symlink-ul pentru a indica către sursa de
kernel corectă:
Cod 2.3: Modificarea symlink-ului sursei kernel-ului |
# rm /usr/src/linux
# cd /usr/src
# ln -s linux-2.6.10-gentoo-r8 linux
|
Acum este timpul să configurăm şi să compilăm sursa kernel. Puteţi utiliza
genkernel pentru asta, care vă va construi un kernel generic aşa cum
este folosit pe mediul Installation CD. Vom explica configurarea manuală,
totuşi, fiind cea mai bună cale de a vă optimiza sistemul.
Dacă doriţi să configuraţi kernel-ul manual, continuaţi cu secţiunea Implicit: Configurarea Manuală. Dacă doriţi să utilizaţi
genkernel, trebuie să consultaţi secţiunea Alternativ: Utilizarea genkernel, în loc.
7.c. Implicit: Configurarea Manuală
Introducere
Configurarea manuală a kernel-ului este des percepută ca cea mai grea
incercare, pe care fiecare user Linux trebuie să o treacă. Nimic mai fals
-- după ce veţi configura câteva kernel-uri, nici nu vă veţi mai aminti
că a fost greu ;)
Totuşi, un lucru este adevărat: trebuie să vă cunoaşteţi
sistemul înainte de a începe configurarea manuală a kernel-ului. Cele mai
multe informaţii le puteţi obţine prin instalarea pciutils (emerge
pciutils) ce conţine lspci. Acum veţi putea să utilizaţi
comanda lspci în interiorul mediului chroot. Puteţi ignora cu
încredere orice avertismente pcilib (cum ar fi: pcilib: cannot open
/sys/bus/pci/devices) afişate de lspci. Alternativ, puteţi rula
lspci dintr-un mediu non-chroot. Rezultatele sunt aceleaşi. De
asemenea, puteţi rula lsmod pentru a vizualiza modulele kernel-ului
folosit de mediul Installation CD (ar putea să vă formeze o idee despre ce
anume să activaţi).
Acum mergeţi in directorul ce conţine sursa kernel-ului şi executaţi
make menuconfig. Aceasta va porni un meniu de configurare bazat pe
ncurses.
Cod 3.1: Invocarea menuconfig |
# cd /usr/src/linux
# make menuconfig
|
Veţi fi întâmpinat cu mai multe secţiuni de configurare. Mai întăi vom
enumera cateva opţiuni pe care trebuie să le activaţi (altfel Gentoo nu va
funcţiona deloc sau nu va funcţiona corect fară anumite trucuri
suplimentare).
Activarea Opţiunilor Necesare
Mai întâi de toate, activaţi utilizarea codului/driverelor în dezvoltare
sau experimentale. Aveţi nevoie de acesta, altfel anumite drivere foarte
importante nu vor fi afişate:
Cod 3.2: Selectarea codului/driverelor experimentale, General Setup |
Code maturity level options --->
[*] Prompt for development and/or incomplete code/drivers
General setup --->
[*] Support for hot-pluggable devices
|
Acum mergeţi la File Systems şi selectaţi suportul pentru sistemul
de fişiere pe care îl folosiţi. Nu le compilaţi ca module, altfel
Gentoo nu va putea să mount-eze partiţiile. De asemenea, selectaţi
Virtual memory şi proc file system. Nu selectaţi
/dev file system:
Cod 3.3: Selectarea sistemelor de fişiere necesare |
File systems --->
Pseudo Filesystems --->
[*] /proc file system support
[ ] /dev file system support (OBSOLETE)
[*] Virtual memory file system support (former shm fs)
<*> Reiserfs support
<*> Ext3 journalling file system support
<*> Second extended fs support
<*> XFS filesystem support
|
Dacă folosiţi PPPoE pentru conectarea la Internet sau daca folosiţi un
modem tip dial-up, va trebui să activaţi următoarele opţiuni in kernel:
Cod 3.4: Selectarea driverelor PPPoE necesare |
Device Drivers --->
Networking support --->
<*> PPP (point-to-point protocol) support
<*> PPP support for async serial ports
<*> PPP support for sync tty ports
|
Cele două opţiuni de compresie nu vor afecta, dar nu sunt întru totul
necesare, la fel ca şi opţiunea PPP over Ethernet, care ar putea fi
folosită doar de rp-pppoe, când este configurat să folosească
modul PPPoE.
Dacă o doriţi, nu uitaţi să includeţi suport in kernel pentru placa de
reţea.
Dezactivaţi suportul ADB pentru codurile de taste raw.
Cod 3.5: Dezactivarea suportului ADB pentru codurile de taste raw. |
Macintosh Device Drivers --->
[ ] Support for ADB raw keycodes
|
De asemenea alegeţi suportul RTC corect (deselectaţi opţiunea
Enhanced RTC
Cod 3.6: Activarea corectă a suportului RTC |
Character devices --->
[ ] Enhanced RTC
General setup --->
[*] Support for /dev/rtc
|
Utilizatorii de maşini OldWorld vor dori suport pentru HFS pentru a copia
imagini de kernel compilate pe partiţia MacOS. Aceasta este aplicabilă şi în
cazul maşinilor NewWorld, deoarece acestea necesită partiţia specială
Apple_Bootstrap:
Cod 3.7: Activarea suportului HFS |
File Systems --->
[*] HFS Support
|
Când terminaţi de configurat kernel-ul, continuaţi cu Compilare şi Instalare.
Compilare şi Instalare
Acum, că kernelul este configurat, este timpul să îl compilaţi şi să-l
instalaţi. Ieşiţi din meniul de configurare şi să începeţi procesul de
compilare:
Cod 3.8: Compilarea kernel-ului |
# make all && make modules_install
|
Când compilarea s-a terminat, copiaţi imaginea de kernel în directorul
/boot (asiguraţi-vă că este mount-ată corect pe Pegasos).
Cod 3.9: Instalarea kernel-ului |
(Apple/IBM) # cp vmlinux /boot/kernel-2.6.10
(Pegasos) # cp arch/ppc/boot/images/zImage.chrp /boot/kernel-2.6.10
|
Este, de asemenea, recomandat să vă copiaţi fişierul de configurare a
kernel-ului în /boot, pentru orice eventualitate :)
Cod 3.10: Back-up pentru fişierul de configurare al kernel-ului |
# cp .config /boot/config-2.6.10-gentoo-r8
|
Acum, continuaţi cu Instalarea de Module Separate
de Kernel.
7.d. Instalarea de Module Separate de Kernel
Configurarea Modulelor
Va trebui să enumeraţi toate modulele, care vreţi să fie încărcate
automat, în /etc/modules.autoload.d/kernel-2.6. Puteţi, de
asemenea, să adaugaţi extra opţiuni modulelelor dacă doriţi.
Pentru a vizualiza toate modulele disponibile, folosiţi următoarea comandă
find. Nu uitaţi să înlocuiţi "<versiune kernel>" cu versiunea
efectivă de kernel pe care tocmai aţi compilat-o:
Cod 4.1: Vizualizarea tuturor modulelor disponibile |
# find /lib/modules/<kernel version>/ -type f -iname '*.o' -or -iname '*.ko'
|
De exemplu, pentru a încarca automat modulul 3c59x, editaţi fişierul
kernel-2.6 şi scrieţi numele modulului în el.
Cod 4.2: Editarea /etc/modules.autoload.d/kernel-2.6 |
# nano -w /etc/modules.autoload.d/kernel-2.6
|
Cod 4.3: /etc/modules.autoload.d/kernel-2.6 |
3c59x
|
Continuaţi instalarea cu Configurarea
Sistemului.
7.e. Alternativ: Utilizarea genkernel
Dacă citiţi această secţiune, înseamnă că aţi ales script-ul nostru
genkernel pentru a vă configura kernel-ul.
Acum că sursele kernel-ului sunt instalate, este timpul să compilăm
kernel-ul folosind scriptul genkernel, pentru o compilarea automată a
kernel-ului. genkernel funcţionează prin a configura un kernel
aproape identic cu cel al mediului Installation CD. Asta înseamnă că atunci
când folosiţi genkernel pentru a vă construi un kernel, sistemul va
detecta, la modul general, toate componentele hardware, in timpul procesului de
boot, aşa cum o face mediul Installation CD. Deoarece genkernel nu necesită
vreo configurare manuală a kernel-ului, este ideal pentru cei carora nu le este
la îndemână să-şi compileze propriile kernel-uri.
Acum să vedem cum se foloseşte genkernel. Mai întăi, instalaţi pachetul
genkernel:
Cod 5.1: Instalarea genkernel |
# emerge genkernel
|
Apoi, copiaţi configuraţia kernel-ului utilizată de mediul Installation CD în
locaţia unde genkernel caută configuraţia implicită de kernel:
Cod 5.2: Copierea configuraţiei de kernel de pe Installation CD |
# zcat /proc/config.gz > /usr/share/genkernel/ppc/kernel-config-2.6
|
Acum, compilaţi sursa kernel-ului rulând genkernel --udev all. Fiţi atenţi,
totuşi, că genkernel compilează un kernel care suportă aproape
toate componentele hardware, compilarea durând ceva timp pentru a se termina.
Trebuie să ştiţi că daca partiţia de boot nu foloseşte ext2 sau ext3
ca sistem de fişiere, va trebui să configuraţi manual kernel-ul, folosind
genkernel --menuconfig all şi să adăugaţi suport pentru sistemul
respectiv de fişiere în kernel (nu ca modul). Utilizatorii de
EVMS2 sau LVM2, vor trebui, probabil, să adauge --evms2 sau
--lvm2 ca argumente, de asemenea.
Cod 5.3: Rularea genkernel |
# genkernel --udev all
|
Odată ce genkernel îşi încheie execuţia, vor fi create un set
întreg de module şi initial root disk (initrd). Vom folosi kernel-ul
şi initrd cănd vom configura aplicaţia bootloader. Notaţi undeva numele
imaginii de kernel şi a fişierului initrd pentru că vă va trebui cănd veţi
configura aplicaţia bootloader. Initrd-ul va porni imediat după boot, pentru
a iniţia autodetecţia hardware (la fel ca şi la mediul Installation CD) înainte
ca "adevăratul" sistem să pornească.
Cod 5.4: Verificarea numelor imaginii de kernel creată şi a initrd-ului |
# ls /boot/kernel* /boot/initrd*
|
Acum să parcurgem încă un pas spre a face sistemul să semene mai mult cu
mediul Installation CD -- să instalăm coldplug. În timp ce initrd
autodetectează componentele hardware necesare procesului de boot,
coldplug detectează tot ceea ce rămâne. coldplug este disponibil
ca pachet pe mediul Package CD
Cod 5.5: Instalarea şi activarea coldplug |
# emerge coldplug
# rc-update add coldplug boot
|
Acum continuaţi consultând capitolul Configurarea
Sistemului.
8. Configurarea Sistemului
8.a. Informaţii despre Sistemul de Fişiere
Ce este fstab?
Sub Linux, toate partiţiile folosite de sistem trebuie scrise în
/etc/fstab. Fişierul conţine punctele de mount-are a
partiţiilor (unde apar în structura sistemului de fişiere), cum trebuie
mountate şi cu ce opţiuni speciale (mount-are automată sau nu, dacă
user-ii normali pot mounta sau nu partiţia, etc.).
Crearea /etc/fstab
/etc/fstab foloseşte o sintaxă specială. Fiecare linie
conţine şase câmpuri, separate de spaţiu/spaţii, taburi, sau o
combinaţie între cele două. Fiecare câmp îşi are propria semnificaţie:
-
Primul câmp prezintă partiţia respectiva (calea către fişierul
device)
-
Al doilea câmp arată directorul de mountare, unde partiţia trebuie să
fie mountată.
-
Al treilea câmp arată sistemul de fişiere folosit pe partiţie.
-
Al patrulea câmp arată opţiunile folosite la mount-area partiţiilor.
Deoarece fiecare sistem de fisiere are opţiuni de mount-are specifice,
sunteţi incurajaţi să citiţi manualul comenzii mount (man mount) pentru
o listare completă. Punctele de mountare separate sunt separate prin
virgule.
-
Al cincilea câmp este folosit de dump entru a determina dacă pentru
partiţia respectivă trebuie efectuat dump sau nu. În general, se
poate lăsa valoarea standard 0 (zero).
-
Al şaselea câmp este utilizat de fsck pentru a determina ordinea
în care sistemele de fişiere trebuie verificate, în cazul în care
PC-ul nu a fost oprit in mod normal. Sistemul de fişiere root ar trebui
să aibă valoarea 1, în timp ce restul partiţiilor ar trebui să
aibă 2 (sau 0, dacă verificarea nu este necesară).
Fişierul /etc/fstab implicit prezent în Gentoo nu este un
fişier valid, aşadar, porniţi nano (sau editorul favorit)
pentru a crea /etc/fstab:
Cod 1.1: Deschiderea /etc/fstab |
# nano -w /etc/fstab
|
Să vedem cum scriem opţiunile pentru partiţia /boot. Acesta
este doar un exemplu, astfel, dacă arhitectura folosită nu necesită
/boot (precum ar fi PPC), nu o copiaţi.
În exemplul nostru implicită pentru x86, /boot este partiţia
/dev/hda1, cu ext2 ca sistem de fişiere. Trebuie
verificat în timpul procesului de boot, aşadar vom scrie:
Cod 1.2: Un exemplu de linie /boot pentru /etc/fstab |
/dev/hda1 /boot ext2 defaults 1 2
|
Unii utilizatori nu doresc ca partiţia lor /boot să fie
mount-ată automat, pentru a imbunătăţi securitatea sistemului. Aceştia
trebuie să înlocuiască defaults cu noauto. Aceasta
înseamnă că trebuie să mount-aţi manual partiţia de câte ori doriţi
să o folosiţi.
Acum, pentru a îmbunătăţi performanţa, cei mai mulţi utilizatori ar
trebui să adauge opţiunea noatime, opţiune ce va duce la o mărire
a vitezei sistemului, fiindcă timpii de acces nu sunt înregistraţi (în
general nu sunt necesari)
Cod 1.3: O linie /boot optimizată din /etc/fstab |
/dev/hda1 /boot ext2 defaults,noatime 1 2
|
Dacă am continua, am ajunge să avem următoarele trei linii (pentru
partiţiile /boot, / şi swap):
Cod 1.4: Trei linii /etc/fstab |
/dev/hda1 /boot ext2 defaults,noatime 1 2
/dev/hda2 none swap sw 0 0
/dev/hda3 / ext3 noatime 0 1
|
Pentru a încheia, ar trebui adăugată o regulă pentru /proc,
tmpfs (obligatoriu) şi pentru CD-ROM (bineînţeles, dacă aveţi
alte partiţii sau drive-uri, adăugaţi-le):
Cod 1.5: Un exeplu final pentru /etc/fstab |
/dev/hda1 /boot ext2 defaults,noatime 1 2
/dev/hda2 none swap sw 0 0
/dev/hda3 / ext3 noatime 0 1
none /proc proc defaults 0 0
none /dev/shm tmpfs nodev,nosuid,noexec 0 0
/dev/cdroms/cdrom0 /mnt/cdrom auto noauto,user 0 0
|
Opţiunea auto face ca mount să ghicească ce sistem de
fişiere este folosit (recomandat pentru componente detaşabile, deoarece ele
pot avea o varietate de sisteme) iar opţiunea user oferă accesul la
CD utilizatorilor non-root.
Acum, folosiţi exemplul de mai sus pentru a crea propriul
/etc/fstab. Dacă sunteţi utilizator SPARC, ar trebui
să adăugaţi şi linia următoare:
Cod 1.6: Adăugarea unui sistem de fişiere deschis pentru /etc/fstab |
none /proc/openprom openpromfs defaults 0 0
|
Verificaţi de două ori configuraţia /etc/fstab, salvaţi şi
ieşiţi pentru a continua.
8.b. Informaţii reţea
Hostname, Domainname etc.
O decizie ce trebuie făcută de user este numele PC-ului. Aceasta pare a fi
uşoră, dar mulţi utilizatori au dificultăţi alegând un nume
potrivit pentru PC-ul cu Linux. Pentru a grăbi puţin lucrurile, trebuie să
ştiţi că, orice nume alegeţi, acesta poate fi modificat ulterior. Puteţi
pur şi simplu să vă numiţi sistemul tux şi domeniul
homenetwork.
Folosim acestă denumire în exemplul următor. Mai întâi, setăm numele:
Cod 2.1: Setarea numelui |
# echo tux > /etc/hostname
|
Apoi, setăm numele domeniului:
Cod 2.2: Setarea numelui domeniului |
# echo homenetwork > /etc/dnsdomainname
|
Dacă aveţi un domeniu NIS (dacă nu ştiţi ce este acesta, sigur nu
utilizaţi aşa ceva), aveţi nevoie să-l definiţi şi pe acesta:
Cod 2.3: Setarea numelui de domeniu NIS |
# echo nis.homenetwork > /etc/nisdomainname
|
Acum, adăugaţi scriptul domainname in nivelul de execuţie default
Cod 2.4: Adăugarea domainname în nivelul de execuţie default |
# rc-update add domainname default
|
Configurarea reţelei
Înainte de a avea acea stare "Hei, am mai făcut asta o dată", trebuie
să ştiţi că setările făcute la începutul instalării au fost DOAR
pentru instalare. Acum, vom face configurările permanente pentru noul sistem
gentoo.
Toate setările reţelei sunt ţinute în /etc/conf.d/net. Acesta
foloseşte o sintaxă simplă, dar care nu poate fi folosită intuitiv,
dacă nu ştiţi să setaţi reţeaua manual. Dar nu vă temeţi, vă vom
explica totul :)
Mai întâi, deschideţi /etc/conf.d/net cu editorul vaforit (în
acest exemplu este folosit nano ):
Cod 2.5: Deschiderea /etc/conf.d/net pentru editare |
# nano -w /etc/conf.d/net
|
Prima variabilă pe care o veţi întâlni este iface_eth0. Aceasta
foloseşte următoarea sintaxă:
Cod 2.6: sintaxa iface_eth0 |
iface_eth0="<adresa dumneavoastră ip> broadcast <adresa de broadcast> netmask <masca dumneavoastră de reţea>"
|
Dacă folosiţi DHCP (alocare automată de IP), ar trebui să setaţi
iface_eth0 pentru a folosi dhcp. Dacă folosiţi rp-pppoe (ex: pentru ADSL),
setaţi-l să pornească cu up. Dacă trebuie să setaţi reţeaua
manual şi nu sunteţi familiarizaţi cu termenii de mai sus, vă rugăm
să citiţi secţiunea dedicată despre >Înţelegerea Terminologiei despre
Reţele, dacă nu aţi făcut acest lucru deja.
Deci, haideţi să luăm trei exemple; primul foloseşte DHCP, al doilea
foloseşte IP static (192.168.0.2) cu netmask-ul 255.255.255.0, broadcast
192.168.0.255 şi gateway 192.168.0.1, iar al treilea activează doar
interfaţa pentru folosirea rp-pppoe:
Cod 2.7: Example pentru /etc/conf.d/net |
iface_eth0="dhcp"
dhcpcd_eth0="-HD"
dhcpcd_eth0="-N"
iface_eth0="192.168.0.2 broadcast 192.168.0.255 netmask 255.255.255.0"
gateway="eth0/192.168.0.1"
iface_eth0="up"
|
Dacă aveţi mai multe interfeţe de reţea, creaţi variabile
iface_eth suplimentare, cum ar fi iface_eth1, iface_eth2
etc. Variabila gateway nu ar trebui copiată, având în vedere că
gateway-ul se poate seta o singură dată per computer.
Salvaţi configuraţia şi ieşiţi pentru a continua.
Pornirea Automată a Reţelei la Boot
Pentru a activa interfeţele de reţea la boot, acestea trebuie adăugate la
nivelul de execuţie default. Dacă aveţi interfeţe PCMCIA, ar trebui să
săriţi această secţiune, având în vedere că ele sunt pornite de
scripturile de iniţializare PCMCIA.
Cod 2.8: Adăugarea net.eth0 la nivelul de execuţie default |
# rc-update add net.eth0 default
|
Dacă aveţi mai multe interfeţe de reţea, trebuie să creaţi scripturi de
iniţializare corespunzătoare net.eth1, net.eth2
etc. Puteţi folosi ln pentru acest lucru:
Cod 2.9: Crearea de scripturi de iniţializare suplimentare |
# cd /etc/init.d
# ln -s net.eth0 net.eth1
# rc-update add net.eth1 default
|
Scrierea Informaţiilor despre Reţea
Trebuie să informaţi Linux-ul despre reţea. Acesta este definită în
/etc/hosts şi permite rezolvarea numelor corespondente adreselor
IP pentru host-urile ce nu sunt rezolvate de serverul DNS. De exemplu, dacă
reţeaua ar consta în trei PC-uri numite jenny (192.168.0.5),
benny (192.168.0.6) şi tux (192.168.0.7 - acest sistem) aţi
deschide /etc/hosts şi aţi scrie următoarele valori:
Cod 2.10: Deschiderea /etc/hosts |
# nano -w /etc/hosts
|
Cod 2.11: Completarea cu informaţii privind reţeaua |
127.0.0.1 localhost
192.168.0.5 jenny.homenetwork jenny
192.168.0.6 benny.homenetwork benny
192.168.0.7 tux.homenetwork tux
|
Dacă sistemul dumneavoastă este singurul din reţea (sau dacă serverul
DNS se ocupă de toate rezolvările adreselor) o singură linie este
suficientă. Spre exemplu, dacă doriţi să vă denumiţi sistemul
tux:
Cod 2.12: exemplu /etc/hosts pentru calculatoare singure în reţea, sau care se bazează complet pe serverul DNS |
127.0.0.1 localhost tux
|
Salvaţi şi ieşiţi din editor pentru a continua.
Dacă nu aveţi PCMCIA, puteţi continua cu Informaţiile despre Sistem. Utilizatorii PCMCIA ar
trebui să citească următoarea parte despre PCMCIA.
Opţional: Activarea PCMCIA în scopul Funcţionării
Notă:
pcmcia-cs este disponibil doar pentru platformele x86, amd64 şi ppc.
|
Utilizatorii PCMCIA ar trebui mai întâi să instaleze pachetul
pcmcia-cs. Aceasta îi include şi pe utilizatorii ce vor rula un
kernel 2.6 (chiar dacă aceştia nu vor utiliza driver-ele PCMCIA din acest
pachet).
Cod 2.13: Instalarea pcmcia-cs |
# emerge pcmcia-cs
|
După instalarea pcmcia-cs, adăgaţi pcmcia la runlevel-ul
default:
Cod 2.14: Adăugarea pcmcia la niveul de execuţie default |
# rc-update add pcmcia default
|
8.c. Informaţii Despre Sistem
Parola pentru Root
Mai întâi setăm parola pentru root, tastând:
Cod 3.1: Setarea parolei pentru root |
# passwd
|
Dacă doriţi ca root să poată se efectueze login printr-o consolă
serial, adăugaţi tts/0 în /etc/securetty:
Cod 3.2: Adăugarea tts/0 în /etc/securetty |
# echo "tts/0" >> /etc/securetty
|
Informaţii Despre Sistem
Gentoo foloseşte /etc/rc.conf pentru configuraţii generale,
care afectează tot sistemul. Deschideţi /etc/rc.conf şi
savuraţi toate comentariile din acest fişier :)
Cod 3.3: Deschiderea /etc/rc.conf |
# nano -w /etc/rc.conf
|
După cum se poate observa, fişierul are multe comentarii pentru a vă
ajuta în setarea corectă a variabilelor de configurare necesare. Aveţi mare
grijă când configuraţi setările KEYMAP: dacă setaţi greşit
această variabilă, veţi întâmpina nişte rezultate ciudate la folosirea
tastaturii.
Notă:
Utilizatorii sistemelor SPARC bazate pe USB şi alte clone SPARC
vor avea nevoie probabil să selecteze un keymap i386 (precum "us") în loc de
'sunkeymap'.
|
PPC foloseşte keymap x86 în majoritatea sistemelor. Utilizatorii care
doresc să folosească keypam ADB la bootare, trebuie să activeze suportul
din kernel şi să seteze un keymap mac/ppc în rc.conf
Dacă ceasul hardware nu este setat la UTC, trebuie sa adăugaţi
CLOCK="local" în acest fişier. Altfel, veţi observa mesaje despre
"clock skew" (ceas desincronizat).
Când aţi terminat configurarea /etc/rc.conf, salvaţi şi
ieşiţi, apoi continuaţi cu Instalarea
Utilitarelor de Sistem Necesare.
9. Instalarea Utilitarelor de Sistem Necesare
8.a. System Logger
Primul instrument pentru care trebuie să vă decideţi, trebuie să asigure
facilităţi de logare pentru sistemul dvs. Unix si Linux au istorie
excelentă în acest domeniu -- dacă doriţi puteţi sa log-aţi tot ce se
întâmplă în sistemul dvs. în fişierele log. Aceasta se întâmplă prin
intermediul aplicaţiei system logger.
Gentoo oferă mai multe sisteme de logare dintre care puteţi alege. Printre
altele se numără sysklogd, care este un set tradiţional de sisteme
de logare, syslog-ng, un sistem avansat de logare metalog care
este cel mai configurabil. Mai sunt disponibile şi altele în Portage -
numărul nostru de pachete disponibile creşte zilnic.
Dacă doriţi să utilizaţi sysklogd sau syslog-ng, este
recomandat să instalaţi şi logrotate, apoi, deoarece aceste sisteme
de logare nu oferă nici un mecanism de rotire pentru fişierele log.
Pentru a instala o aplicaţie system logger aleasă de dvs., instalaţi-o
utilizând emerge şi adăugaţi-o nivelului de execuţie default, utilizând
rc-update. Următorul exemplu instalează syslog-ng. Bineînţeles,
înlocuiţi-l cu aplicaţia dvs. system logger:
Cod 1.1: Instalarea unui sistem de logare |
# emerge syslog-ng
# rc-update add syslog-ng default
|
9.b. Opţional: Cron Daemon
Următorul este cron daemon. Este opţional şi nu este cerut de sistem dar
este înţelept să instalaţi unul. Ce este un cron daemon? Un cron daemon
execută comenzile programate. Este foarte util dacă aveţi nevoie să
executaţi regulat anumite comenzi (de exemplu zilnic, săptămânal sau
lunar).
Noi vă oferim numai vixie-cron pentru instalările fără reţea.
Dacă doriţi altă aplicaţie cron puteţi aştepta şi îl puteţi
instala ulterior.
Cod 2.1: Instalare cron daemon |
# emerge vixie-cron
# rc-update add vixie-cron default
|
9.c. Opţional: Indexare de Fişiere
Dacă doriţi să vă indexaţi fişierele din sistemul dvs. pentru a le
localiza rapid cu ajutorul utilitarului locate, trebuie să instalaţi
sys-apps/slocate.
Cod 3.1: Instalarea slocate |
# emerge slocate
|
9.d. Utilitare pentru Sistemul de Fişiere
În funcţie de ce sistem de fişiere folosiţi, trebuie să instalaţi
utilitarele necesare sistemului dvs. (pentru a verifica integritatea sistemului
de fişiere, a crea unele în plus etc.).
Următorul tabel afişează instrumentele pe care trebuie să le instalaţi
dacă folosiţi un anumit tip de sistem de fişiere. Totuşi, nu toate sistemele de
fişiere sunt disponibile pentru orice arhitectură.
| Sistem de Fişiere |
Utilitar |
Comanda pentru Instalare |
| XFS |
xfsprogs |
emerge xfsprogs |
| ReiserFS |
reiserfsprogs |
emerge reiserfsprogs |
| JFS |
jfsutils |
emerge jfsutils |
Dacă nu aveţi nevoie de alte utilitare pentru reţea adiţionale (cum ar fi
rp-pppoe sau un client dhcp), continuaţi cu Configurarea Aplicaţiei Bootloader.
9.e. Utilitare pentru Reţea
Opţional: Instalarea unui Client DHCP
Dacă doriţi ca Gentoo să obţină automat o adresă IP pentru
interfeţele de reţea, trebuie să instalaţi dhcpcd (sau orice alt
client DHCP) pe sistemul dvs. Dacă nu faceţi acest lucru acum, este posibil
să nu vă mai puteţi conecta la internet după instalare!
Cod 5.1: Instalarea dhcpcd |
# emerge dhcpcd
|
Opţional: Instalarea unui Client PPPoE
Dacă aveţi nevoie de rp-pppoe pentru a vă conecta la reţea,
trebuie să-l instalaţi.
Cod 5.2: Instalarea rp-pppoe |
# USE="-X" emerge rp-pppoe
|
Opţiunea USE="-X" va inhiba instalarea xorg-x11 ca dependenţă
(rp-pppoe conţine utilitare grafice; dacă le doriţi activate,
puteţi recompila rp-pppoe ulterior sau vi se va instala xorg-x11, acum
-- ce necesită un timp îndelungat de compilare).
Acum continuaţi cu Configurarea Aplicaţiei
Bootloader.
10. Configurarea Aplicaţiei Bootloader
10.a. Alegerea
Introducere
Acum, că kernel-ul este configurat si compilat si fişierele de configurarea
a sistemului sunt completate corect, este timpul să instalăm un program ce
va încărca kernel-ul când porniţi sistemul. Un astfel de program se
numeşte bootloader. Dar, înainte de a începe, luaţi în considerare
opţiunile...
Există mai multe aplicaţii bootloader pentru Linux/PPC. Avem yaboot (pentru noua generaţie NewWorld Apple şi
maşinile IBM) şi BootX (pentru generaţia
anterioară OldWorld Apple şi maşinile IBM). Pegasos nu necesită
bootloader. Nu puteţi utiliza Yaboot sau BootX în acest moment. Utilizatorii
Pegasos nu necesită o aplicaţie bootloader, dar am inclus secţiunea BootCreator pentru a vă putea crea un meniu de boot
SmartFirmware
10.b. Implicit: Utilizarea yaboot
Introducere
Important:
yaboot poate fi utilizat doar pe noua generaţie NewWorld Apple şi sistemele
IBM!
|
Mai întâi, trebuie să creem fişierele /dev în noua
noastră locaţie, necesare în timpul instalării aplicaţiei bootloader.
Aceasta poate fi efectuată prin referenţierea cu "bind" a sistemului de
fişiere /dev prezent pe mediul Installation CD:
Cod 2.1: Referenţierea prin bind a sistemului de fişiere /dev |
# exit # aceasta va determina ieşirea din mediul chroot
# mount -o bind /dev /mnt/gentoo/dev
# chroot /mnt/gentoo /bin/bash
# /usr/sbin/env-update && source /etc/profile
|
Există 2 moduri de configurare a yaboot pentru sistemul dvs. Puteţi
aplicaţia yabootconfig inclusă şi să setaţi automat yaboot.
Dacă, din anumite motive, nu doriţi să rulaţi yabootconfig pentru
a seta automat /etc/yaboot.conf sau instalaţi Gentoo pe un G5 (pe
care yabootconfig nu funcţionează întotdeauna), puteţi să
editaţi exemplul de fişier deja instalat pe sistemul dvs.
Implicit: Utilizarea yabootconfig
yabootconfig va autodetecta partiţiile de pe maşina dvs. şi va seta
combinaţii duble sau triple cu Linux, Mac OS şi Mac OS X.
Pentru a utiliza yabootconfig, drive-ul dvs. trebuie să conţină o
partiţie Apple_Bootstrap şi /etc/fstab trebuie să fie configurat
conform partiţiilor Linux. Amândouă condiţiile trebuie să se fi
îndeplinit deja în paşii anteriori. Pentru a începe, asiguraţi-vă că
aveţi ultima versiune de yaboot instalată.
Cod 2.2: Instalarea yaboot cu GRP |
# emerge --usepkg --update yaboot
|
Acum, ieşiţi din mediul chroot şi rulaţi yabootconfig --chroot
/mnt/gentoo. Programul va rula şi va confirma locaţia partiţiei
bootstrap. Apăsaţi Y dacă aceasta este corectă. Dacă nu,
verificaţi încă o dată /etc/fstab. Apoi, yabootconfig va
scana setările sistemului, va crea /etc/yaboot.conf şi va rula
mkofboot. mkofboot este utilizat pentru a formata partiţia
Apple_Bootstrap şi a instala fişierul de configurare yaboot în aceasta. După
aceasta, intraţi în mediul chroot, din nou.
Cod 2.3: intrarea în mediul chroot |
# chroot /mnt/gentoo /bin/bash
# /usr/sbin/env-update && source /etc/profile
|
Puteţi verifica conţinutul fişierului /etc/yaboot.conf. Dacă
modificaţi /etc/yaboot.conf (cum ar fi setarea sistemului de
operare implicit), trebuie să rulaţi din nou ybin -v pentru a aplica
modificările în partiţia Apple_Bootstrap.
Acum, puteţi continua cu secţiunea Repornirea
Sistemului.
Alternativ: Configurarea Manuală a yaboot
Mai întâi, asiguraţi-vă că aveţi ultima versiune yaboot
instalată în sistemul dvs.:
Cod 2.4: Instalarea yaboot |
# emerge --usepkg --update yaboot
|
Mai jos veţi găsi un fişier yaboot.conf complet.
Modificaţi-l în voie. Utilizatorii G5 ar trebui să aibă în vedere că
disc-urile lor sunt Serial ATA ce sunt interpretate ca disc-uri SCSI de către
Kernel-ul Linux (deci trebuie să înlocuiţi /dev/hda cu
/dev/sda).
Cod 2.5: /etc/yaboot.conf |
boot=/dev/hda2
device=hd:
delay=5
defaultos=macosx
timeout=30
install=/usr/lib/yaboot/yaboot
magicboot=/usr/lib/yaboot/ofboot
image=/boot/kernel-2.6.9
label=Linux
root=/dev/hda3
partition=3
sysmap=/boot/System.map-2.6.9
read-only
macos=/dev/hda13
macosx=/dev/hda12
enablecdboot
enableofboot
|
Odată setat yaboot.conf corect, rulaţi mkofboot -v
pentru a instala setările în partiţia bootstrap. Nu uitaţi acest
lucru! Confirmaţi când mkofboot vă cere să introduceţi un nou
sistem de fişiere.
Dacă totul se desfăşoară corect, şi aveţi aceleaşi opţiuni ca în
exemplul de mai sus, urmatoarea acţiune de restart vă va afişa un meniu
simplu, format din 5 intrări. Dacă modificaţi configurarea yaboot
ulterior, va trebui să rulaţi doar ybin -v pentru a actualiza
partiţia bootstrap - mkofboot este utilizat doar pentru setarea
iniţială.
Pentru mai multe informaţii despre yaboot, vizitaţi proiectul yaboot.
Deocamdată, continuaţi cu secţiunea Repornirea
Sistemului.
6.c. Alternativ: BootX
Important:
BootX poate fi utilizat doar pe generaţia veche OldWorld Apple şi pe
sistemele IBM!
|
BootX necesită mai întâi, reponirea. Deci, sa repornim, da? :-)
Ieşiţi din mediul chroot şi demount-aţi toate partiţiile mount-ate. Apoi
tastaţi comanda magică pe care aţi aşteptat-o: reboot.
Cod 3.1: Ieşirea din chroot, demount-area tuturor partiţiilor şi repornirea |
# exit
cdimage ~# cd
cdimage ~# umount /mnt/gentoo/boot /mnt/gentoo/proc /mnt/gentoo
cdimage ~# reboot
|
Desigur, nu uitaţi să îndepărtaţi CD-ul boot-abil, altfel CD-ul va
boot-a din nou în loc de MacOS.
Acum, maşina dvs. este boot-ată în MacOS şi trebuie să porniţi
interfaţa de control BootX. Selectaţi Options şi debifaţi Used
specified RAM disk. Când reveniţi în interfaţa principală BootX,
veţi regăsi o opţiune pentru specificarea partiţiei şi discului
rădăcină pentru maşina dvs. Completaţi cu valorile corespunzătoare.
BootX poate fi configurat să încarce Linux după boot. Dacă efectuaţi
această operaţie, veţi observa maşina pornind în MacOS, apoi, în timpul
procesului de startup, BootX va încărca şi va rula Linux. Pentru mai multe
informaţii, consultaţi Pagina oficială BootX.
Acum reporniţi din nou şi boot-aţi în Linux, apou continuaţi cu Finalizarea Instalării Gentoo.
10.d. Alternativ: BootCreator
Important:
BootCreator va genera un meniu SmartFirmware scris în limbajul Forth pentru
Pegasos.
|
Mai întâi, asiguraţi-vă că aveţi ultima versiune a aplicaţiei
bootcreator instalată pe sistemul dvs.:
Cod 4.1: Instalarea bootcreator |
# emerge --usepkg --update bootcreator
|
Acum, copiaţi fişierul /etc/bootmenu.example ca
/etc/bootmenu şi editaţi-l în confirmitate cu nevoile dvs.:
Cod 4.2: Editarea fişierului de cofigurare al aplicaţiei bootcreator |
# cp /etc/bootmenu.example /etc/bootmenu
# nano -w /etc/bootmenu
|
Mai jos veţi regăsi un fişier de configurare /etc/bootmenu
completat. Modificaţi-l în voie.
Cod 4.3: fişier de configurare bootcreator |
[VERSION]
1
[TITLE]
Boot Menu
[SETTINGS]
AbortOnKey = false
Timeout = 9
Default = 1
[SECTION]
Local HD -> Morphos (Normal)
ide:0 boot2.img ramdebug edebugflags="logkprintf"
[SECTION]
Local HD -> Linux 2.6.10 (Normal)
ide:0 linux-2.6.10 video=radeonfb:1024x768@70 root=/dev/hda3
|
În final, fişierul bootmenu trebuie transcris în Forth şi copiat
pe partiţia boot, pentru ca aplicaţia SmartFirmware să-l poată accesa. Pentru
aceasta trebuie să rulaţi bootcreator:
Cod 4.4: Instalarea meniului de boot |
# bootcreator /etc/bootmenu /boot/menu
|
Notă:
Asiguraţi-vă că aţi analizat cu atenţie setările SmartFirmware când reporniţi,
pentru că acel fişier menu este cel care este încărcat implicit.
|
Pentru moment, continuaţi instalarea cu secţiunea despre Repornirea Sistemului.
10.e. Repornirea Sistemului
Ieşiţi din mediul chroot şi demount-aţi toate partiţiile mount-ate. Apoi
tastaţi comanda magică pe care aţi aşteptat-o: reboot.
Cod 5.1: Ieşirea din chroot, demount-area tuturor partiţiilor şi repornirea |
# exit
livecd ~# umount /mnt/gentoo/proc /mnt/gentoo/dev /mnt/gentoo
livecd ~# reboot
|
Odată repornită instalarea Gentoo, terminaţi-o cu Finalizarea Instalării Gentoo.
11. Finalizarea Instalării Gentoo
4.a. Administrarea User-ilor
Adăugarea Unui User pentru Întrebuinţarea Zilnică
Utilizând root pe un sistem Unix/Linux este periculos şi trebuie
evitat cât mai mult. De aceea se recomandă insistent să adaugaţi
un user pentru folosirea zilnică.
Grupurile în care user-ul este membru definesc activităţile pe care le
poate efectua user-ul. Următorul tabel afişează un număr de grupuri
importante pe care le puteţi utiliza:
| Grup |
Descriere |
| audio |
pentru a avea avea acces la dispozitivele audio |
| cdrom |
pentru a putea avea acces direct dispozitivele optice |
| floppy |
pentru a putea avea acces direct dispozitivele floppy |
| games |
pentru a putea rula jocuri |
| usb |
pentru a putea accesa dispozitivele USB |
| video |
pentru a putea accesa componentele hardware de captură video şi a putea
beneficia de accelerare hardware
|
| wheel |
pentru a putea utiliza su
|
De exemplu, pentru a creea un user john care este membru al grupurilor
wheel, users şi audio trebuie să efectuaţi login ca
root (numai utilizatorii root pot crea user-i) si să rulaţi useradd:
Cod 1.1: Adăugarea unui user pentru întrebuintarea zilnică |
Login: root
Password:
# useradd -m -G users,wheel,audio -s /bin/bash john
# passwd john
Password:
Re-enter password:
|
Dacă acest user are nevoie să facă anumite operaţi ca root, se poate
utiliza comanda su - pentru a primi privilegii de root, doar temporar. O
altă metodă este pachetul sudo care, dacă este configurat bine,
este foarte sigur.
11.b. Opţinal: Instalarea de pachetelor GRP
Important:
Această parte este doar pentru utilizatori GRP. Restul utilizatorilor ar
trebui să omită această parte sau să continue cu Ce fac in contiunuare?.
|
După boot-are, efectuaţi login ca un user ce l-aţi creat anterior (de
exemplu, john) şi utilizaţi su - pentru a obţine privilegii
de root:
Cod 2.1: Obţinerea de privilegi de root |
$ su -
Password:
|
Acum este necesar să schimbaţi configuraţia sistemului Portage pentru a
căuta binare precompilate de pe CD (Gentoo Packages CD - CD-ul cu Pachete
Gentoo). Mai întâi mount-aţi CD-ul:
Cod 2.2: Mount-area Packages CD |
# mount /mnt/cdrom
|
Acum configuraţi Portage să utilizeze /mnt/cdrom pentru
pachetele precompilate:
Cod 2.3: Configurarea Portage pentru a utiliza /mnt/cdrom |
# ls /mnt/cdrom
# export PKGDIR="/mnt/cdrom/packages"
# export PKGDIR="/mnt/cdrom"
|
Acum, instalaţi pachetele dorite. CD-ul cu pachete conţine câteva binare
precompilate, spre exemplu KDE:
Cod 2.4: Instalarea KDE |
# emerge --usepkg kde
|
Fiţi siguri să instalaţi binarele acum. Cand efectuaţi comanda emerge
--sync pentru actualizarea structurii Portage (după cum veţi vedea mai
târziu), este posibil ca binarele precompilate se poate să nu se
potrivească relativ la ebuild-urile din structura Portage actualizată.
Puteţi evita aceasta folosind comanda emerge --usepkgonly în loc de
emerge --usepkg.
Felicitări, sistemul dvs. Gentoo e complet echipat! Continuaţi cu Ce fac în continuare? pentru a afla mai multe
despre Gentoo.
12. Cum să continuăm?
12.a. Documentaţie
Felicitări! Acum aveţi un sistem Gentoo funcţional. Dar ce să faceţi mai
departe? Care vă sunt opţiunile actuale? Ce să exploraţi mai întâi?
Gentoo oferă utilizatorilor o mulţime de posibilităţi, şi deci o
mulţime de caracteristici documentate (şi mai puţin documentate).
Trebuie neapărat să aruncaţi o privire la următoarea parte al Gentoo
Handbook, intitulată Lucrul cu Gentoo
care explică cum să vă menţineţi aplicaţiile actualizate, cum să
instalaţi mai multe aplicaţii, ce sunt indicatorii USE, cum sistemul
funcţionează sistemul de Iniţializare Gentoo, etc.
Dacă sunteţi interesat în optimizarea sistemului pentru întrebuinţare ca
desktop, sau doriţi să învăţaţi cum să configuraţi sistemul pentru a
fi un desktop complet funcţional, consultaţi vastele noaste Resurse de Documentaţie Desktop
pentru Gentoo.
Dispunem, de asemenea, de un Manual pentru
Securitate în Gentoo ce merită citit.
Pentru o listă completă cu toata documentaţia disponibilă, vizitaţi
pagina cu Resursele despre Documentaţie .
12.b. Gentoo Online
Bineînţeles ca sunteţi întotdeauna bine veniţi pe Forumurile Gentoo sau pe numeroasele canale IRC Gentoo.
Mai avem şi numeroase liste de discuţii
deschise tuturor utilizatorilor noştri.Informaţia care vă explică cum
să vă înscrieţi este conţinută în acea pagină.
Noi vom tace acum, şi vă vom lăsa să vă savuraţi instalarea :)
12.c. Modificări în Gentoo Începând Versiunea 2005.0
Modificări?
Gentoo este o ţintă ce se mişcă foarte repede. Următoarele secţiuni
descriu modificările importante ce afectează instalarea Gentoo. Le vom
specifica doar pe cele ce au puncte în comun cu instalarea, nu cu
schimbările pachetelor ce nu au legătură cu instalarea.
Următoarele modificări trebuie efectuate exact înainte să vă fi
actualizat sistemul (şi înainte de repornire):
-
Pachetul baselayout a primit actualizări majore, inclusiv în
aspectul Configurării Reţelei în Gentoo.
Modificările includ o nouă sintaxă pentru fişierul
/etc/conf.d/net, deşi sintaxa anterioară este încă suportată.
Sunteţi sfătuiţi să v-o modificaţi la cea nouă în timp.
B. Lucrul cu Gentoo
1. Introducere în Portage
1.a. Portage vă urează Bun Venit
Portage este probabil inovaţia cea mai notabilă din Gentoo în categoria
administrării pachetelor. Fiind foarte flexibil şi conţinând un număr enorm de
caracteristici este categorizat de multe ori ca fiind cel mai bun pachet
software de administrare disponibil în Linux.
Portage este scris complet în Python şi
Bash fiind astfel vizibil
pentru utilizatori, amândouă fiind limbaje de scripting.
Majoritatea utilizatorilor vor utiliza Portage prin intermediul utilitarului
emerge. Acest capitol nu are ca scop copierea informaţiei disponibile în
pagina de manual a emerge. Pentru o consultare completă asupra opţiunilor
emerge, vă rugăm să consultaţi pagina de manual:
Cod 1.1: Consultarea paginii de manual a emerge |
$ man emerge
|
1.b. Strucutura Portage
Ebuild-uri
Când ne referim la pachete, adesea înseamnă titluri de pachete software care
sunt disponibile utilizatorilor Gentoo prin intermediul structurii Portage.
Structura Portage este o colecţie de fişiere ebuild, ce conţin toată
informaţia necesară pentru ca Portage să administreze aplicaţiile (instalare,
căutare, cereri, ...). Aceste fişiere ebuild sunt localizate implicit în
/usr/portage.
Oricând interogaţi Portage în a efectueze o acţiune în legătură cu titlurile
software, va utiliza fişierele ebuild din sistemul dvs. ca bază. Este, deci,
important să vă actualizaţi în mod regulat fişierele ebuild de pe sistemul
dvs., pentru ca Portage să cunoască aplicaţiile software noi, actualizările de
securitate, etc.
Actualizarea Structurii Portage
Structura Portage este, de obicei, actualizată cu ajutorul rsync, un utilitar pentru transfer de
fişiere rapid incremental. Actualizarea este destul de simplă, deoarece comanda
emerge oferă o interfaţă pentru rsync:
Cod 2.1: Actualizarea structurii Portage |
# emerge --sync
|
Dacă nu puteţi să efectuaţi rsync din cauza restricţiilor impuse de firewall,
puteţi actualiza structura Portage utilizând arhivele snapshot ale structurii
Portage generate de către noi zilnic. Utilitarul emerge-webrsync
descarcă şi instalează automat ultima arhiva snapshot în sistemul dvs:
Cod 2.2: Rularea emerge-webrsync |
# emerge-webrsync
|
1.c. Mentenanţa Software
Căutarea Pachetelor Software
Pentru a căuta prin structura Portage după titluri software, puteţi utiliza
capabilităţile de căutare integrate în emerge. Implicit, emerge
--search returnează numele pachetelor ale căror titluri corespund (fie
integral sau parţial) cu termenul utilizat pentru căutare.
Spre exemplu, pentru a căuta toate pachetele ce conţin "pdf" în nume:
Cod 3.1: Căutarea pachetelor ce conţin pdf |
$ emerge --search pdf
|
Dacă doriţi să căutaţi şi prin descrieri, puteţi utiliza parametrul
--searchdesc (sau -S):
Cod 3.2: Cautarea pachetelor în legătură cu pdf |
$ emerge --searchdesc pdf
|
Când veţi analiza ce vi se afişează, veţi observa că vă oferă multă informaţie.
Câmpurile sunt marcate clar, deci nu vom intra în amănunt:
Cod 3.3: Exemplu de afişare în cazul '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
|
Instalarea de Software
Odată ce aţi găsit un titlu de software satisfăcător, puteţi să-l instalaţi
uşor cu emerge: doar adăugaţi numele pachetului. Spre exemplu, pentru a
instala gnumeric:
Cod 3.4: Instalarea gnumeric |
# emerge gnumeric
|
Deoarece multe aplicaţii sunt interdependente, orice încercare de a instala un
anumit pachet software poate rezulta în instalarea altor câteva dependenţe, de
asemenea. Nu vă faceţi griji, Portage poate manevra dependenţele bine. Dacă
doriţi să aflaţi ce ar instala Portage în cazul unui anumit pachet,
adăugaţi parametrul --pretend. Spre exemplu:
Cod 3.5: Simularea instalării gnumeric |
# emerge --pretend gnumeric
|
Când îi specificaţi sistemului Portage să instaleze un pachet, va descărca
codul sursă necesar de pe internet (dacă este necesar) şi-l va stoca implicit
în /usr/portage/distfiles. Apoi, va despacheta, compila şi instala
pachetul. Dacă doriţi ca portage doar să descarce sursele fără a le instala,
adăugaţi opţiunea --fetchonly comenzii emerge:
Cod 3.6: Descărcarea codului sursă pentru gnumeric |
# emerge --fetchonly gnumeric
|
Găsirea Documentaţiei Pachetelor Instalate
Multe pachete sunt distribuite cu documentaţia proprie. Uneori, indicatorul USE
doc determină dacă documentaţia pachetului respectiv va instalată sau
nu. Puteţi verifica existenţa unui indicator USE doc utilizând comanda
emerge -vp <nume pachet>.
Cod 3.7: Verificarea existenţei unui indicator USE doc |
# emerge -vp alsa-lib
[ebuild N ] media-libs/alsa-lib-1.0.9_rc3 +doc -jack 674 kB
|
Puteţi activa sau dezactiva indicatorul USE doc, fie global în fişierul
/etc/make.conf, fie specific pachetului, în fişierul
/etc/portage/package.use file. Capitolul despre Indicatori USE acoperă acest aspect în detaliu.
Odată ce pachetul este instalat, documentaţia acestuia se poate regăsi, de
obicei, într-un subdirector denumit în funcţie de pachet, în directorul
/usr/share/doc. Puteţi, de asemenea, să afişaţi toate fişierele
instalate cu utilitarul equery, ce face parte din pachetul app-portage/gentoolkit.
Cod 3.8: Localizarea documentaţiei unui pachet |
# 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
|
Ştergerea de Software
Dacă doriţi să ştergeţi un pachet software de pe sistem, utilizaţi emerge
--unmerge. Aceasta îi va specifica sistemului Portage să şteargă fişierele
instalate de acel pachet din sistemul dvs. exceptând fişierele de
configurare ale acelei aplicaţii, dacă au fost modificate după instalare.
Omiterea fişierelor de configurare permite continuarea utilizării pachetului
dacă mai decideţi vreodată să-l reinstalaţi.
În orice caz, un avertisment mare se aplică: Portage nu
va verifica dacă pachetul pe care doriţi să-l îndepărtaţi îi este necesar altui
pachet. Vă va avertiza, totuşi, când veţi dori să ştergeţi un pachet important
ce vă va afecta funcţionarea sistemului în cazul operaţiei unmerge.
Cod 3.9: Ştergerea gnumeric din sistem |
# emerge --unmerge gnumeric
|
Când ştergeţi un pachet din sistemul dvs., dependenţele acelui pachet care au
fost instalate automat când aţi instalat aplicaţia sunt păstrate. Pentru ca
Portage să vă localizeze toate dependenţele ce pot fi şterse, utilizaţi
funncţionalitatea --depclean a aplicaţiei emerge. Vom trata acest
subiect ulterior.
Actualizarea Sistemului
Pentru a vă menţine sistemul în stare perfectă (ca să nu mai menţionăm şi
actualizările de securitate) trebuie să vă actualizaţi sistemul regulat.
Deoarece sistemul Portage doar verifică fişierele ebuild din structura dvs.
Portage, trebuie mai întâi să o actualizaţi pe aceasta. După ce structura
Portage este actualizată, puteţi mai întâi să vă actualizaţi sistemul cu
emerge --update world. În următorul exemplu vom utiliza, de asemenea,
opţiunea --ask ce îi va specifica sistemului Portage să afişeze lista
pachetelor ce trebuie actualizate şi vă va cere continuarea:
Cod 3.10: Actualizarea sistemului |
# emerge --update --ask world
|
Portage va căuta, apoi, versiuni noi ale aplicaţiilor instalate. Totuşi, va
verifica doar versiunile aplicaţiilor instalate explicit - nu şi dependenţele.
Dacă doriţi să actualizaţi fiecare pachet din sistemul dvs., adăugaţi
argumentul --deep:
Cod 3.11: Actualizarea întregului sistem |
# emerge --update --deep world
|
Deoarece există şi actualizări de securitate în pachete pe care nu le-aţi
instalat explicit în sistemul dvs. (dar sunt indicate ca dependenţe ale altor
programe), este recomandat să rulaţi această comandă periodic.
Dacă aţi modificat oricare din indicatorii
USE ulterior, va trebui să adăugaţi şi --newuse. Portage va
verifica, apoi, dacă modificările necesită instalarea de noi pachete sau
recompilarea celor deja existente:
Cod 3.12: Efectuarea unei actualizări complete |
# emerge --update --deep --newuse world
|
Meta-Pachetele
Unele pachete din structura Portage, nu au un conţinut real, dar sunt utilizate
pentru a instala o colecţie de pachete. Spre exemplu, pachetul kde va
instala întreg mediul KDE pe sistemul dvs. prin implicarea unor alte pachete ce
au legătură cu KDE ca dependenţe.
Dacă doriţi vreodată să ştergeţi un asemenea pachet din sistem, prin rularea
emerge --unmerge pentru pachetul respectiv nu va avea un efect major
pentru că dependenţele vor rămâne în sistem.
Portage are funcţionalitatea de a îndepărta dependenţe nerezolvate, de
asemenea, dar, pentru că disponibilitatea aplicaţiilor este dependentă dinamic,
va trebui întâi să actualizaţi în întregime sistemul, incluzând noile modificări
aplicate în urma schimbării indicatorilor USE. Apoi, puteţi rula emerge
--depclean pentru a şterge dependenţele nerezolvate. La sfârşit, trebuie să
reinstalaţi aplicaţiile ce sunt legate dinamic de aplicaţiile, de acum şterse,
dar care nu mai sunt necesare.
Toate acestea se pot efectua cu următoarele trei comenzi:
Cod 3.13: Îndepărtarea dependenţelor nerezolvate |
# emerge --update --deep --newuse world
# emerge --depclean
# revdep-rebuild
|
revdep-rebuild este oferită de pachetul gentoolkit; nu uitaţi
să-l instalaţi, mai întâi:
Cod 3.14: Instalarea pachetului gentoolkit |
# emerge gentoolkit
|
1.d. Când Portage Reclamă În Legătura Cu...
SLOT-uri, Virtuale, Categorii, Arhitecturi şi Profile
Aşa cum am afirmat anterior, Portage este extrem de solid şi suportă multe
caracteristici neexistente în alte utilitare de administrare a pachetelor.
Pentru a înţelege aceasta, vom explica unele aspecte ale sistemului Portage
fără a intra prea mult în detaliu.
Cu Portage, mai multe versiuni diferite ale unui singur pachet pot coexista
într-un sistem. În timp ce alte distribuţii tind să-şi denumească pachetele
conţinând versiunile (cum ar fi freetype şi freetype2), Portage
utilizează o terminologie numită SLOT-uri. Un fişier ebuild, defineşte
un anumit SLOT pentru versiunea sa. Ebuild-urile cu SLOT-uri diferite pot
coexista în acelaşi sistem. Spre exemplu, pachetul freetype are fişiere
ebuild ce conţin SLOT="1" şi SLOT="2".
Există, de asemenea, pachete ce oferă aceeaşi funcţionalitate, dar sunt
implementate diferit. Spre exemplu, metalogd, sysklogd şi
syslog-ng sunt toate aplicaţii de tip logger de sistem. Aplicaţiile ce
se bazează pe disponibilitatea unui "logger de sistem" nu pot depinde de, spre
exemplu, metalogd, ca aplicaţie de tip "logger de sistem", pentru orice
aplicaţie de acest tip reprezintă o soluţie la fel de bună ca altele. Portage
permite virtuale: fiecare aplicaţie de tip logger de sistem oferă
virtual/syslog pentru ca aplicaţiile să poată depinde de
virtual/syslog.
Aplicaţiile software se pot afla în diferite categorii în Portage. Implicit,
sistemul dvs. acceptă doar pachete considerate de Portage ca fiind stabile.
Cele mai multe titluri software noi, când sunt comise, sunt adăugate în
categoria de testare, însemnând că trebuie să se mai efectueze unele teste
înainte de a fi marcat ca stabil. Deşi veţi observa fişiere ebuild pentru
aceste aplicaţii în structura Portage, sistemul Portage nu le va actualiza până
când nu vor fi clasate în categoria stabilă.
Unele aplicaţii sunt disponibile doar pentru puţine arhitecturi. Fie aplicaţia
nu rulează pe alte arhitecturi, ori mai trebuie testată, sau dezvoltatorul ce a
comis aplicaţia în structura Portage nu poate verifica dacă pachetul
funcţionează pe alte arhitecturi diferite.
Fiecare instalare Gentoo aderă la un anumit profil ce conţine, alături
de alte informaţii, lista cu pachetele necesare pentru ca sistemul să
funcţioneze normal.
Pachetele Blocate
Cod 4.1: Avertisment Portage în legătură cu pachetele blocate (cu --pretend) |
[blocks B ] mail-mta/ssmtp (is blocking mail-mta/postfix-2.2.2-r1)
|
Cod 4.2: Avertisment Portage în legătură cu pachetele blocate (fără --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.
|
Fişierele ebuild conţin câmpuri speciale ce informează Portage despre
dependenţele sale. Există două dependenţe posibile: dependenţe de compilare,
declarate în DEPEND şi dependenţe de rulare, declarate în
RDEPEND. Când una din aceste dependenţe marchează un pachet sau un
virtual ca nefiind compatibil, se va genera un blocaj.
Pentru a repara un blocaj, puteţi alege să nu instalaţi pachetul sau să
dezinstalaţi pachetul conflictual, mai întâi. În exemplul dat, puteţi opta să
nu instalaţi postfix sau să ştergeţi, mai întâi, ssmtp.
Este, de asemenea, posibil ca două pachete care sunt pe cale să fie instalate
să se blocheze unul pe celălalt. În acest caz rar, ar trebui să găsiţi motivul
pentru care trebuie instalate amândouă. În cele mai multe cazuri puteţi
instala doar unul dintre pachete. Dacă nu, vă rugăm să completaţi un bug la
Sistemul de Urmărire a Bug-urilor al
Gentoo.
Pachete Mascate
Cod 4.3: Avertisment Portage în legătură cu pachetele mascate |
!!! all ebuilds that could satisfy "bootsplash" have been masked.
|
Cod 4.4: Avertisment Portage în legătură cu pachetele mascate - motivul |
!!! 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)
|
Când doriţi să instalaţi un pachet care nu este disponibil pentru sistemul
dvs., veţi primi această eroare de mascare. Ar trebui să încercaţi instalarea
unei alte aplicaţii ce este disponibilă pentru sistemul dvs. sau să aşteptaţi
până când pachetul este marcat ca disponibil. Există întotdeauna un motiv
pentru care un pachet este mascat:
-
~arch keyword înseamnă că aplicaţia nu a fost testată suficient
pentru a fi pusă în structura principală. Aşteptaţi câteva zile sau
săptămâni şi încercaţi din nou.
-
-arch keyword sau -* keyword înseamnă că aplicaţi nu
funcţionează pe arhitectura dvs. Dacă dvs. credeţi că aplicaţia
funcţionează, raportaţi un bug pe site-ul nostru bugzilla.
-
missing keyword înseamnă că aplicaţia nu a fost testată pe
arhitectura dvs., încă. Cereţi echipei de portare să testeze pachetul sau
testaţi-l dvs. pentru ei şi raportaţi rezultatele pe site-ul nostru bugzilla.
-
package.mask înseamnă că pachetul a fost găsit corupt, instabil sau,
mai rău şi a fost marcat în mod deliberat ca a-nu-se-utiliza.
-
profile înseamnă că pachetul a fost găsit ca nepotrivit pentru
profilul dvs. Aplicaţi vă poate afecta funcţionarea sistemului dacă aţi
instala-o sau, pur şi simplu nu este compatibilă cu profilul utilizat de
dvs.
Dependenţe lipsă
Cod 4.5: Avertisment Portage despre dependenţe lipsă |
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.
|
Aplicaţia pe care încercaţi să o instalaţi depinde de alt pachet care nu este
disponibil pentru sistemul dvs. Vă rugăm să verificaţi bugzilla dacă problema este cunoscută şi,
dacă nu este, vă rugăm să o raportaţi. Dacă nu utilizaţi structuri mixte,
problema nu ar trebui să se întâmple şi, de aceea, reprezintă un bug.
Nume de Ebuild Ambiguu
Cod 4.6: Avertisment Portage despre numele ambigue de ebuild-uri |
!!! The short ebuild name "aterm" is ambiguous. Please specify
!!! one of the following fully-qualified ebuild names instead:
dev-libs/aterm
x11-terms/aterm
|
Aplicaţia pe care doriţi să o instalaţi are un nume ce corespunde unui număr
mai mare de un pachet. Trebuie să furnizaţi şi numele categoriei, de asemenea.
Portage vă va informa de toate descrierile pentru a vă alege.
Dependenţe Circulare
Cod 4.7: Avertisment Portage despre dependenţele circulare |
!!! 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
|
Două (sau mai multe) pachete pe care doriţi să le instalaţi depind unele de
altele şi, de aceea, nu pot fi instalate. Acesta este, cel mai probabil un bug
în structura Portage. Vă rugăm să resincronizaţi după un timp şi să încercaţi
din nou. Puteţi încerca, de asemenea, bugzilla pentru a vedea dacă problema este
cunoscută şi, dacă nu este, să o raportaţi.
Descărcare eşuată
Cod 4.8: Avertisment Portage despre o descărcare eşuată |
!!! Fetch failed for sys-libs/ncurses-5.4-r5, continuing...
!!! Some fetch errors were encountered. Please see above for details.
|
Portage nu a putut să descarce sursele pentru aplicaţia dată şi va încerca să
instaleze celelalte aplicaţii (dacă este cazul). Această eşuare se poate
întâmpla datorită unui mirror ce nu s-a sincronizat corect sau din cauză că
descrierea ebuild indică spre o locaţie incorectă. Serverul unde sunt
localizate sursele poate fi, de asemenea, indisponibil dintr-un motiv oarecare.
Reîncercaţi după o oră pentru a vedea dacă problema încă persistă.
Protecţia Profilului Sistemului
Cod 4.9: Avertisment Portage despre un pachet protejat de profil |
!!! Trying to unmerge package(s) in system profile. 'sys-apps/portage'
!!! This could be damaging to your system.
|
Aţi cerut să ştergeţi un pachet ce este parte din pachetele de bază ale
sistemului dvs. Este listat în profilul dvs. şi necesar şi nu ar trebui, de
aceea, să fie şters din sistemul dvs.
2. Indicatori USE
2.a. Ce sunt indicatorii USE?
Ideeile din spatele indicatorilor USE
Când instalaţi Gentoo (sau orice altă distribuţie, sau chiar sistem de
operare din acel punct de vedere) faceţi alegerile în funcţie de mediul în
care lucraţi. O serie de setări pentru un server diferă de setul de
setări pentru o staţie de lucru. O staţie de lucru destinată jocurilor
diferă de o staţie de lucru pentru prelucrări 3D.
Aceasta nu este adevărat numai pentru alegerea pachetelor pe care le doriţi
instalate, dar şi ce caracteristici ar trebui să suporte un anumit pachet.
Dacă nu aveţi nevoie de OpenGL, de ce să vă obosiţi să instalaţi
OpenGL şi suport OpenGL pentru majoritatea pachetelor? Dacă nu doriţi să
utilizaţi KDE, v-aţi obosi să vă compilaţi pachetele cu suport KDE
dacă acele pachete funcţionează fără probleme şi fără acel
suport?
Pentru a ajuta utilizatorii să decidă ce să instaleze/activeze şi ce
nu, am dorit ca ei să îşi specifice mediul într-un mod facil. Aceasta
obligă utilizatorii să decidă ceea ce doresc cu adevărat şi să
faciliteze procesul Portage, sistemul nostru de administrare a pachetelor, în
luarea deciziilor utile.
Definirea unui indicator USE
Vă prezentăm indicatorii USE. Un astfel de indicator este un cuvânt cheie
ce reprezintă suport şi informaţii despre dependenţe relativ la un anumit
concept. Dacă definiţi un anumit indicator USE, Portage va memora faptul ca
doriţi suport pentru cuvântul cheie ales. Bineînţeles, aceasta modifică
şi informaţia relativă la dependenţe pentru un pachet.
Să aruncăm o privire la un exemplu specific: cuvântul cheie kde.
Dacă nu aveţi acest cuvânt cheie în variabila dvs. USE, toate pachetele ce
conţin suport opţional pentru KDE vor fi compilate fără
suport KDE. Toate pachetele ce au ca dependenţă optională KDE vor
fi instalate fără a instala librăriile KDE (ca dependenţă).
Dacă aţi definit cuvântul cheie kde, atunci acele pachete vor
fi compilate cu suport KDE, şi librăriile KDE vor fi instalate ca
dependenţă.
Prin definirea corectă a cuvintelor cheie, veţi obţine un sistem construit
specific nevoilor dvs.
Ce indicatori USE există?
Există două tipuri de indicatori USE: indicatori USE globali şi
locali.
-
Un indicator USE global este utilizat de mai multe pachete, la nivel
de sistem. Acesta este ceea ce cei mai mulţi dintre utilizatori văd ca
indicatori USE.
-
Un indicator USE local este utilizat de către un singur pachet
pentru a efectua decizii specifice pachetului.
O listă a indicatorilor USE globali poate fi găsită online sau local în
/usr/portage/profiles/use.desc.
O listă locală de indicatori USE este disponibilă în
/usr/portage/profiles/use.local.desc.
2.b. Utilizarea indicatorilor USE
Declararea permanentă a indicatorilor USE
Sperăm că sunteţi convinşi de importanţa indicatorilor USE şi vă
vom informa cu privire la modul de declarare a indicatorilor USE.
Aşa cum am menţionat anterior, toţi indicatorii USE sunt declaraţi în
variabila USE. Pentru a înlesni activitatea utilizatorilor, deja oferim
o setare USE implicită. Această setare este o colecţie de
indicatori USE care noi credem ca sunt în general folosiţi de către
utilizatorii Gentoo. Această setare implicită este definită în
fişierele make.defaults din profilul dvs.
Profilul luat în considerare de către sistemul dvs. este indicat de link-ul
simbolic /etc/make.profile. Fiecare profil funcţionează peste
altul mai larg, rezultatul fiind, deci, suma tuturor profilelor. Cel mai
superior profil este profilul base
(/usr/portage/profiles/base).
Să aruncăm o privire asupra acestei setări implicite pentru profilul
2004.3:
Cod 2.1: Variabila USE cumulată din make.defaults pentru profilul 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"
|
După cum puteţi observa, variabila deja conţine destul de multe cuvinte
cheie. Nu alteraţi fişierul make.defaults pentru a
ajusta variabila USE în concordanţă cu nevoile dvs.: modificările
în acest fişier vor fi suprascrise în momentul actualizării sistemului
Portage!
Pentru a schimba această setare implicită, trebuie să adăugaţi sau
să eliminaţi cuvinte cheie variabilei USE. Acest lucru se poate
efectua global prin definirea variabilei USE în
/etc/make.conf. În această variabilă, adăugaţi
indicatorii USE adiţionali de care aveţi nevoie, sau eliminaţi indicatorii
USE pe care nu-i doriţi. Această ultimă acţiune se efectuează prin
prefixarea cuvântului cheie cu semnul minus ("-").
Spre exemplu, pentru a elimina suportul pentru KDE şi QT dar să adăugaţi
suportul pentru ldap, următoarea setare USE poate fi definită în
/etc/make.conf:
Cod 2.2: Un exemplu de setare USE în /etc/make.conf |
USE="-kde -qt ldap"
|
Declararea indicatorilor USE individual pentru pachete
Uneori doriţi să declaraţi un anumit indicator USE pentru una (sau mai
multe) aplicaţii, dar nu global pentru tot sistemul. Pentru aceasta, va trebui
să creaţi directorul /etc/portage (dacă nu există, deja)
şi să editaţi /etc/portage/package.use.
Spre exemplu, dacă nu doriţi ca berkdb suportat global dar îl
doriţi pentru mysql, trebuie să adăugaţi:
Cod 2.3: exemplu /etc/portage/package.use |
dev-db/mysql berkdb
|
Bineînţeles, Puteţi, de asemenea, să dezactivaţi indicatori USE
pentru o anumită aplicaţie. Spre exemplu, dacă nu doriţi suport
java în PHP:
Cod 2.4: a doilea exemplu /etc/portage/package.use |
dev-php/php -java
|
Declararea temporară a indicatorilor USE
Uneori doriţi să setaţi un anumit indicator USE, doar o singură dată.
În locul editării /etc/make.conf de două ori (pentru a seta
şi a reseta modificările USE) puteţi doar să declaraţi variabila USE ca
variabilă de mediu. Amintiţi-vă că, dacă reinstalaţi sau actualizaţi
o aplicaţie (fie explicit sau ca urmare a unei actualizări a sistemului)
modificările dvs. se vor pierde!
Ca exemplu, vom elimina temporar java din setarea USE în timpul instalării
mozilla.
Cod 2.5: Utilizarea USE ca variabilă de mediu |
# USE="-java" emerge mozilla
|
Indicatorii USE Automaţi
După ce anumite pachete sunt instalate, unii indicatori USE adiţionali vor fi
activaţi automat pentru dvs. dacă nu îi dezactivaţi în mod explicit. Pentru a
vizualiza o listă cu pachetele care furnizează indicatori USE, verificaţi
/etc/make.profile/use.defaults şi fişierele
use.defaults din profilele superioare:
Cod 2.6: Un scurt extras din /etc/make.profile/use.defaults |
gnome gnome-base/gnome
gtk x11-libs/gtk+
qt x11-libs/qt
kde kde-base/kdebase
motif x11-libs/openmotif
|
Precendenţă
Desigur, există o anume precendenţă asupra cărei setări are prioritate
peste setarea USE. Nu doriţi declararea USE="-java" doar pentru a
observa că java este definit oricum din cauza unei setări ce are o
prioritate mai mare. Precedenţa pentru setarea USE este, ordonată după
prioritate (primul are cea mai mică prioritate):
-
Setarea USE implictă declarată în fişierele
make.defaults conţinute în profilul dvs.
-
Setarea USE moştenită dacă un pachet din use.defaults
este instalat
-
Setarea USE definită de utilizator în /etc/make.conf
-
Setarea USE definită de utilizator în
/etc/portage/package.use
-
Setarea USE definită de utilizator ca variabilă de mediu
Pentru a vizualiza setarea USE finală aşa cum este interpretată de
Portage, rulaţi emerge --info. Aceasta va afişa toate variabilele
relevante (incluzând variabila USE) cu conţinutul utilizat de Portage.
Cod 2.7: Rularea emerge --info |
# emerge --info
|
Adaptarea Întregului Sistem la Noii Indicatori USE
Dacă aţi modificat indicatorii USE şi doriţi să vă actualizaţi
întregul sistem în scopul de a utiliza noii indicatori USE, utilizaţi
opţiunea --newuse pentru emerge:
Cod 2.8: Recompilarea întregului sistem |
# emerge --update --deep --newuse world
|
Apoi, rulaţi proprietarea depclean a Portage pentru a îndepărta
dependenţele condiţionale ce au fost compilate pe sistemul "vechi" dar au
fost scoase din uz de către noii indicatori USE.
Atenţie:
Rularea emerge --depclean este o operaţie riscantă şi ar trebui să
fie efectuată cu grijă. Verificaţi de cel puţin două ori listă
afişată de pachete "vechi" pentru a vă asigura că nu vor fi şterse
pachete necesare. În următorul exemplu vom adăuga parametrul -p
pentru ca depclean doar să afişeze lista de pachete fără a le şterge.
|
Cod 2.9: Ştergerea pachetelor vechi |
# emerge -p --depclean
|
Când operaţia depclean s-a terminat, rulaţi revdep-rebuild pentru a
reconstrui aplicaţiile care sunt legate dinamic de obiectele partajate din
pachetele şterse. revdep-rebuild este o componentă a pachetului
gentoolkit; nu uitaţi să-l instalaţi, mai întâi.
Cod 2.10: Rularea revdep-rebuild |
# revdep-rebuild
|
Când totul s-a terminat, sistemul dvs. va utiliza noile setări ale
indicatorilor USE.
2.c. Indicatori USE specifice pachetelor
Vizualizarea indicatorilor USE disponibili
Să luăm ca exemplu mozilla: ce indicatori USE utilizează? Pentru a
afla, utilizăm emerge cu opţiunile --pretend şi
--verbose:
Cod 3.1: Vizualizarea indicatorilor USE utilizaţi |
# 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 nu este singurul utilitar pentru această acţiune. De fapt, avem
un utilitar dedicat informaţiilor despre pachete numit equery ce se află
în pachetul gentoolkit. Mai întâi instalaţi gentoolkit:
Cod 3.2: Instalarea gentoolkit |
# emerge gentoolkit
|
Acum, rulaţi equery cu argumentul uses pentru a vizualiza
indicatorii USE ai unui pachet anume. Spre exemplu, pentru pachetul
gnumeric:
Cod 3.3: Folosirea equery pentru a vizualiza indicatorii USE utilizaţi |
# 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. Particularităţile Portage
3.a. Caracteristici Portage
Portage are unele caracteristici în plus ce transformă experienţa dvs. Gentoo
într-una şi mai bună. Multe din aceste caracteristici se bazează pe anumite
utilitare ce ajută la îmbunătăţirea performanţei, stabilitatea, securitatea,
...
Pentru a dezactiva anumite caracteristici ale Portage, trebuie să editaţi
variabila FEATURES din /etc/make.conf, ce conţine unele
cuvinte cheie cu caracteristici separate de spaţii goale. În unele cazuri, va
trebui, de asemenea, să instalaţi utilitarul adiţional pe care se bazează
respectiva caracteristică.
Nu toate caracteristicile Portage suportate sunt explicate aici. Pentru
informaţii mai detaliate, vă rugăm să consultaţi pagina de manual
make.conf:
Cod 1.1: Consultarea paginii de manual make.conf |
$ man make.conf
|
Pentru a afla ce caracteristici sunt setate implicit prin intermediul FEATURES,
rulaţi emerge --info şi căutaţi definiţia variabilei FEATURES sau
utilizaţi grep:
Cod 1.2: Afişarea caracteristicilor deja setate în FEATURES |
$ emerge --info | grep FEATURES
|
3.b. Compilarea Distribuită
Utilizarea distcc
distcc este un program pentru distribuirea compilărilor peste mai multe,
nu neapărat identice, maşini din reţea. Clientul distcc trimite toată
informaţia necesară serverelor distcc disponibile (ce rulează distccd)
pentru a compila bucăţi din codul sursă pentru client. Rezultatul net este un
timp de compilare mai rapid.
Puteţi afla mai multe informaţii despre distcc (şi cum să îl utilizaţi
cu Gentoo) în Documentaţia Gentoo pentru
Distcc.
Instalarea distcc
Distcc conţine o aplicaţie grafică pentru monitorizarea sarcinilor trimise de
sistemul dvs. în vederea compilării. Dacă utilizaţi Gnome, atunci adăugaţi
'gnome' în variabila dvs. USE. Totuşi, dacă nu utilizaţi Gnome şi doriţi în
continuare să rulaţi aplicaţia de monitorizare, adăugaţi 'gtk' variabilei dvs.
USE.
Cod 2.1: Instalarea distcc |
# emerge distcc
|
Activarea Suportului în Portage
Adăugaţi distcc variabilei FEATURES din /etc/make.conf.
Apoi, editaţi variabila MAKEOPTS după preferinţe. O soluţie bună este să
completaţi "-jX", unde X este numărul de procesoare ce rulează distccd
(incluzând maşina curentă) plus unu, dar este posibil să obţineţi rezultate mai
bune cu alte numere.
Acum, rulaţi distcc-config şi introduceţi lista de servere distcc
disponibile. Pentru un exemplu simplu, vom presupune că serverele DistCC sunt
192.168.1.102 (maşina curentă), 192.168.1.103 şi 192.168.1.104 (două maşini "la
distanţă"):
Cod 2.2: Configurarea distcc pentru utilizarea a trei servere distcc |
# distcc-config --set-hosts "192.168.1.102 192.168.1.103 192.168.1.104"
|
Nu uitaţi să rulaţi aplicaţia daemon distccd, de asemenea:
Cod 2.3: Pornirea aplicaţiilor daemon distccd |
# rc-update add distccd default
# /etc/init.d/distccd start
|
3.c. Utilizarea unui Cache pentru Compilare
Despre ccache
ccache este o aplicaţie de cache pentru compilare. Când compilaţi un
program, acesta va salva în cache rezultatele intermediare astfel încât, de
câte ori recompilaţi acelaşi program, timpul de compilare este redus foarte
mult. În cazurile comune de compilare, aceasta poate avea ca rezultat timpi de
5 până la 10 ori mai reduşi.
Dacă sunteţi interesat în detalii despre ccache, vă rugăm să vizitaţi pagina oficială ccache.
Instalarea ccache
Pentru a instala ccache, rulaţi emerge ccache:
Cod 3.1: Instalarea ccache |
# emerge ccache
|
Activarea Suportului în Portage
Deschideţi /etc/make.conf şi adăugaţi ccache în variabila
FEATURES. Apoi, adăugaţi o nouă variabilă numită CCACHE_SIZE şi setaţi-o cu
valoarea "2G":
Cod 3.2: Editarea CCACHE_SIZE în /etc/make.conf |
CCACHE_SIZE="2G"
|
Pentru a verifica dacă ccache funcţionează, interogaţi ccache în scopul
afişării statisticilor proprii. Deoarece Portage utilizează un director
diferit, trebuie să setaţi, de asemenea, variabila CCACHE_DIR.
Cod 3.3: Vizualizarea statisticilor ccache |
# CCACHE_DIR="/var/tmp/ccache" ccache -s
|
Locaţia /var/tmp/ccache este locaţia implicită pentru ccache
a Portage; dacă doriţi să modificaţi această setare, trebuie să setaţi
variabila CCACHE_DIR în /etc/make.conf.
În schimb, dacă aţi dori să rulaţi ccache, acesta ar utiliza locaţia
implicită ${HOME}/.ccache, acesta fiind motivul pentru care a
trebuit să setaţi variabila CCACHE_DIR când aţi interogat ccache
(din Portage) pentru statistici.
Utilizarea ccache pentru Compilarea C în afara Portage
Dacă doriţi să utilizaţi ccache pentru compilări în afara Portage, adăugaţi
/usr/lib/ccache/bin la începutul variabilei PATH (înainte de
/usr/bin). Aceasta poate fi obţinută prin editarea fişierului
/etc/env.d/00basic, ce este primul fişier de mediu ce defineşte
variabila PATH.
Cod 3.4: Editarea /etc/env.d/00basic |
PATH="/usr/lib/ccache/bin:/opt/bin"
|
3.d. Suportul pentru Pachete Binare
Crearea Pachetelor Precompilate
Portage suportă instalarea de pachete precompilate. Deşi Gentoo însăşi nu oferă
pachete precompilate (cu excepţia versiunilor snapshot de GRP), Portage poate
fi configurat pentru a face uz de prezenţa pachetelor precompilate.
Pentru a crea un pachet precompilat, puteţi utiliza quickpkg dacă
pachetul este deja instalat în sistemul dvs, sau emerge cu opţiunile
--buildpkg sau --buildpkgonly.
Dacă doriţi ca Portage să creeze pachete precompilate pentru fiecare pachet pe
care doriţi să-l instalaţi, adăugaţi buildpkg ca valoare pentru
variabila FEATURES.
Mai mult suport pentru crearea de pachete precompilate poate fi obţinut cu
catalyst. Pentru mai multe informaţii despre catalyst, citiţi Manualul de Referinţă
Catalyst şi Întrebări
Frecvente despre Catalyst.
Instalarea Pachetelor Precompilate
Deşi Gentoo nu oferă, puteţi crea un repozitoriu central unde să stocaţi
pachetele precompilate. Dacă doriţi să utilizaţi acest repozitoriu, trebuie să
configuraţi Portage să îl utilizeze prin setarea variabilei PORTAGE_BINHOST cu
valoarea indicând spre acesta. Spre exemplu, dacă pachetele precompilate sunt
pe ftp://buildhost/gentoo:
Cod 4.1: Setarea PORTAGE_BINHOST în /etc/make.conf |
PORTAGE_BINHOST="ftp://buildhost/gentoo"
|
Când doriţi să instalaţi un pachet precompilat, adăugaţi opţiunea
--getbinpkg comenzii emerge împreună cu opţiunea --usepkg. Prima
opţiune îi specifică aplicaţiei emerge să descarce pachetul precompilat de pe
serverul definit anterior în timp ce a doua opţiune îi specifică să încerce să
instaleze pachetul precompilat mai întâi, înainte de a descărca sursele şi a le
compila.
Spre exemplu, pentru a instala gnumeric cu pachete precompilate:
Cod 4.2: Instalarea pachetului precompilat gnumeric |
# emerge --usepkg --getbinpkg gnumeric
|
Mai multe informaţii despre opţiunile emerge legate de pachete, pot fi găsite
în pagina de manual pentru emerge:
Cod 4.3: Consultarea paginii de manual pentru emerge |
$ man emerge
|
4. Script-urile de Iniţializare
4.a. Nivele de execuţie
Pornirea Sistemului
La procesul de boot al sistemului, veţi observa mult text defilând. Dacă
acordaţi o mică atenţie, veţi observa că acest text este acelaşi de fiecare
dată când reporniţi sistemul. Secvenţa tuturor acestor acţiuni este denumită
secvenţa de boot şi este (mai mult sau mai puţin) definită static.
Mai întâi, aplicaţia boot loader va încărca imaginea de kernel, definită în
configurarea acesteia, în memorie după ce-i specifică CPU-ului să ruleze
kernel-ul. Când kernel-ul este încărcat şi rulează, acesta iniţializează toate
structurile şi sarcinile specifice kernel-ului şi rulează procesul init.
Apoi, acest proces se asigură că toate sistemele de fişiere (definite în
/etc/fstab) sunt mount-ate şi gata de utilizare. Apoi, execută
unele script-uri localizate în /etc/init.d, care vor porni
serviciile necesare pentru a avea un sistem ce a trecut cu succes procesului de
boot.
În final, când toate script-urile sunt executate, init activează
terminalele (în majoritatea cazurilor doar consolele virtuale ce se ascund în
spatele combinaţiilor Alt-F1, Alt-F2, etc.) ataşându-le un proces
special numit agetty. Acest proces va asigura procesul de login prin
intermediul acestor terminale prin rularea login.
Script-uri de Iniţializare
Acum, init nu doar execută script-urile din /etc/init.d în
mod aleator. Mai mult, nu rulează toate script-urile din
/etc/init.d, ci doar script-urile care îi sunt specificate spre
execuţie. El decide ce script-uri sa execute prin analizarea
/etc/runlevels.
Mai întâi, init rulează script-urile din /etc/init.d ce au
link-uri simbolice în /etc/runlevels/boot. De obicei, va rula
script-urile în ordine alfabetică, dar unele script-uri conţin informaţii
despre dependenţe, specificând sistemului că un alt script trebuie rulat
înainte ca ele să fie pornite.
Când sunt executate toate script-urile ce deţin referinţe în
/etc/runlevels/boot, init va continua să ruleze script-uri
ce au link-uri simbolice spre ele în /etc/runlevels/default. Din
nou, va utiliza ordinea alfabetică pentru a decide ce script să ruleze mai
întâi, doar dacă un script conţine o informaţie despre dependenţe, caz în care
ordinea este schimbată pentru a oferi o secvenţă de pornire validă.
Cum Funcţionează Init
Bineînţeles, init nu decide totul singur. El necesită un fişier de
configurare ce specifică ce acţiuni trebuie să întreprindă. Acest fişier de
configurare este /etc/inittab.
Dacă vă amintiţi secvenţa de boot ce tocmai am descris-o, vă veţi aminti că
prima acţiune a init este mount-area tuturor sistemelor de fişiere.
Acest lucru este definit în următoarea linie din /etc/inittab:
Cod 1.1: Linia de iniţializare a sistemului din /etc/inittab |
si::sysinit:/sbin/rc sysinit
|
Această linie îi specifică aplicaţiei init faptul că trebuie să ruleze
/sbin/rc sysinit pentru a iniţializa sistemul. Script-ul
/sbin/rc are ca scop iniţializarea sistemului, deci aţi putea
afirma că init nu execută prea multe acţiuni -- el delegă sarcina de
iniţializare a sistemului altui proces.
Apoi, init execută toate script-urile ce au conţinute link-uri simbolice
în /etc/runlevels/boot. Această acţiune este definită de următoare
linie:
Cod 1.2: Iniţializarea sistemului, continuată |
rc::bootwait:/sbin/rc boot
|
Din nou, script-ul rc execută sarcinile necesare. Notaţi că opţiunea
transferată lui rc (boot) este aceeaşi ca subdirectorul din
/etc/runlevels ce este utilizat.
Acum, init îşi verifică fişierul de configurare pentru a analiza ce
nivel de execuţie să ruleze. Pentru a decide această acţiune, citeşte
următoarea linie din /etc/inittab:
Cod 1.3: Linia initdefault |
id:3:initdefault:
|
În acest caz (pentru care majoritatea utilizatorilor Gentoo îl vor folosi),
identificatorul nivelului de execuţie este 3. Utilizând această
informaţie, init verifică ceea ce trebuie să ruleze pentru a porni
nivelul de execuţie 3:
Cod 1.4: Definiţiile nivelului de execuţie |
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
|
Linia ce defineşte nivelul 3, din nou, utilizează script-ul rc pentru a
porni serviciile (acum cu argumentul default). Din nou, notaţi că
argumentul lui rc este acelaşi ca subdirectorul din
/etc/runlevels.
Când rc este terminat, init decide ce console virtuale să
activeze şi ce comenzi trebuie rulate pentru fiecare consolă:
Cod 1.5: Definirea consolelor virtuale |
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
|
Ce este un nivel de execuţie?
Aţi observat că init utilizează o schemă de numerotare pentru a decide
ce nivel de execuţie trebuie să activeze. Un nivel de execuţie
este un stadiu în care sistemul rulează şi conţine o colecţie de script-uri
(scripturi de nivele de execuţie sau initscipt-uri) ce trebuie executate
când intraţi în sau ieşiţi dintr-un nivel de execuţie.
În Gentoo, există şapte nivele de execuţie: trei nivele de execuţie interne, şi
patru nivele de execuţie definite de utilizatori. Nivelele interne sunt
denumite sysinit, shutdown şi reboot şi execută acelaşi
lucru ca numele lor: iniţializarea sistemului, oprirea sistemului, repornirea
sistemului.
Nivelele de execuţie definite de utilizator sunt cele ce sunt localizate în
subdirectorul /etc/runlevels: boot,
default, nonetwork şi single. Nivelul de
execuţie boot rulează toate serviciile necesare sistemului
utilizate de toate celelalte nivele de execuţie. Cele trei nivele de execuţie
diferă prin serviciile care le pornesc: default este pentru
utilizarea zilnică, nonetwork este utilizat în cazul în care nu
este necesară conectivitatea reţelei şi single este utilizat când
se repară sistemul.
Utilizarea Script-urilor de Iniţializare
Script-urile pe care procesul rc le porneşte sunt denumite script-uri
de iniţializare. Fiecare script în /etc/init.d poate fi
executat cu argumentele start, stop, restart,
pause, zap, status, ineed, iuse,
needsme, usesme sau broken.
Pentru a porni, opri sau reporni un serviciu (şi toate serviciile dependente),
trebuie utilizaţi parametrii start, stop şi restart:
Cod 1.6: Pornirea Postfix |
# /etc/init.d/postfix start
|
Notă:
Doar serviciile ce necesită serviciul dat prin declaraţia need sunt
oprite sau repornite. Alte servicii dependente (cele care depind prin
declaraţia use de serviciu dar nu îl necesită) nu sunt afectate.
|
Dacă doriţi să opriţi un serviciu, dar nu şi serviciile ce depind de el, puteţi
utiliza argumentul pause:
Cod 1.7: Oprirea Postfix dar păstrarea serviciilor dependente pornite |
# /etc/init.d/postfix pause
|
Dacă doriţi să analizaţi în ce stadiu se află un serviciu (în starea started,
stopped, paused, ...) puteţi utiliza argumentul status:
Cod 1.8: Informaţia despre starea serviciului postfix |
# /etc/init.d/postfix status
|
Dacă informaţia de stare precizează că serviciul rulează, dar ştiţi sigur că nu
rulează, puteţi reseta informaţia de stare ca "stopped" cu argumentul
zap:
Cod 1.9: Resetarea informaţiei de stare pentru postfix |
# /etc/init.d/postfix zap
|
Pentru a interoga în scopul vizualizării dependenţelor unui serviciu, puteţi
utiliza iuse sau ineed. Cu ineed puteţi vizualiza
serviciile ce chiar sunt necesare pentru funcţionarea corectă a serviciului. Pe
de altă parte iuse afişează serviciile ce pot fi folosite de serviciu,
dar nu sunt necesare pentru funcţionarea corectă.
Cod 1.10: Interogarea în scopul obţinerii unei liste de servicii de care depinde Postfix |
# /etc/init.d/postfix ineed
|
În mod similar, puteţi interoga în scopul obţinerii serviciilor ce necesită
serviciul (needsme) sau îl pot utiliza (usesme):
Cod 1.11: Interogarea în scopul vizualizării unei liste a tuturor serviciilor ce necesită Postfix |
# /etc/init.d/postfix needsme
|
În final, puteţi interoga în scopul vizualizării dependenţelor lipsă a unui
serviciu:
Cod 1.12: Interogarea în scopul obţinerii lista dependenţelor lipsă pentru Postfix |
# /etc/init.d/postfix broken
|
4.b. Utilizarea rc-update
Ce este rc-update?
Sistemul de iniţializare Gentoo utilizează o structură de dependenţe pentru a
decide ce servicii trebuie să fie pornite mai întâi. Cum, aceasta este o
sarcină plictisitoare pentru care nu am dori ca utilizatorii noştri să o seteze
manual, am creat utilitare ce facilitează administrarea nivelelor de execuţie
şi script-urilor de iniţializare.
Cu ajutorul rc-update puteţi adăuga şi scoate script-uri de iniţializare
pentru un nivel de execuţie. Utilitarul rc-update va interoga automat
script-ul depscan.sh pentru a reconstrui structura de dependenţe.
Adăugarea şi Ştergerea de Servicii
Deja aţi adăugat script-uri de iniţializare nivelului de execuţie "default" în
timpul instalării Gentoo. La acea vreme, probabil că nu înţelegeaţi ce
reprezintă "default", dar acum ar trebui. Script-ul rc-update necesită
un al doilea argument ce defineşte acţiunea: add (adăugare), del
(ştergere) sau show (vizualizare).
Pentru a adăuga sau a şterge un script de iniţializare, trebuie doar să pasaţi
argumentul add sau del, urmat de script-ul de iniţializare şi de
nivelul de execuţie. Spre exemplu:
Cod 2.1: Ştergerea Postfix din nivelul de execuţie default |
# rc-update del postfix default
|
Comanda rc-update show va afişa toate script-urile de iniţializare şi în
ce nivele de execuţie vor fi rulate:
Cod 2.2: Receiving init script information |
# rc-update show
|
4.c. Configurarea Serviciilor
De ce Nevoia pentru Configurări Suplimentare?
Script-urile de iniţializare pot fi destul de complexe. De aceea, nu este de
dorit ca utilizatorii să editeze script-ul de iniţializare direct, deoarece ar
fi mai expus spre erori. Este, cu toate acestea, important să puteţi să
configuraţi un asemenea serviciu. Spre exemplu, aţi putea adăuga mai multe
opţiuni serviciului în sine.
Un al doilea motiv pentru a avea această configuraţie separat script-ului de
iniţializare este să poată actualiza script-urile de iniţializare fără să aibă
grija faptului că modificările în configuraţia dvs. vor fi refăcute.
Directorul /etc/conf.d
Gentoo oferă o cale uşoară de a configura un asemenea serviciu: fiecare script
de iniţializare ce poate fi configurat are un fişier în
/etc/conf.d. Spre exemplu, script-ul de iniţializare apache2
(denumit /etc/init.d/apache2) are un fişier de configurare denumit
/etc/conf.d/apache2, ce poate conţine opţiunile ce doriţi să le
pasaţi aplicaţiei server Apache 2 în momentul în care este pornit:
Cod 3.1: Variabilă definită în /etc/conf.d/apache2 |
APACHE2_OPTS="-D PHP4"
|
Un asemenea fişier de configurare conţine variabile şi numai variabile (exact
ca în cazul /etc/make.conf), facilitând configurarea serviciilor.
De asemenea, permite oferirea unor informaţii mai detaliate în despre variabile
(sub forma comentariilor).
4.d. Scrierea de Script-uri de Iniţializare
Chiar Trebuie?
Nu, scrierea unui script de iniţializare nu este, de obicei, necesară, deoarece
Gentoo oferă script-uri de iniţializare gata-de-utilizare pentru toate
serviciile oferite. În orice caz, puteţi avea instalat un serviciu fără a fi
utilizat Portage, caz în care veţi dori să creaţi un script de iniţializare.
Nu utilizaţi un script de iniţializare oferit de un serviciu dacă nu este scris
explicit pentru Gentoo: Script-urile de iniţializare din Gentoo nu sunt
compatibile cu script-urile de iniţializare din alte distribuţii!
Schema
Schema de bază pentru un script de iniţializare poate fi vizualizată mai jos.
Cod 4.1: Schema de bază pentru un script de iniţializare |
#!/sbin/runscript
depend() {
}
start() {
}
stop() {
}
restart() {
}
|
Orice script de iniţializare necesită definirea funcţiei start.
Toate celelalte secţiuni sunt opţionale.
Dependendenţe
Există două dependenţe ce le puteţi defini: use şi need. Aşa cum
am menţionat anterior, dependenţa need este mai strictă decât dependenţa
use. Urmărind acest tip de dependenţă puteţi manipula serviciul de care
depindeţi, sau dependenţa virtuală.
O dependenţă virtuală este o dependenţă oferită de un serviciu, dar nu
este oferită doar de acel serviciu. Script-ul dvs. de iniţializare poate
depinde de o aplicaţie de tip logger de sistem, dar sunt multe aplicaţii de
acest tip disponibile (metalogd, syslog-ng, sysklogd, ...). Cum, nu puteţi
depinde de fiecare din acestea prin declaraţia need (nici un sistem nu
are toate aplicaţiile de tip logger de sistem instalate si rulând), ne asigurăm
că toate aceste servicii oferă prin declaraţia provide o dependenţă
virtuală.
Să aruncăm o privire asupra informaţiilor despre dependenţe pentru serviciul
postfix.
Cod 4.2: Informaţia despre dependenţe pentru Postfix |
depend() {
need net
use logger dns
provide mta
}
|
După cum observaţi, serviciul postfix:
-
Necesită dependenţa (virtuală) net (ce este oferită, spre exemplu,
de /etc/init.d/net.eth0)
-
utilizează dependenţa (virtuală) logger (care este oferită, spre
exemplu, de /etc/init.d/syslog-ng)
-
utilizează dependenţa (virtuală) dns (care este oferită, spre
exemplu, de /etc/init.d/named)
-
oferă dependenţa (virtuală) mta (ce este comună pentru toate
aplicaţiile de tip server de mail)
Controlarea Ordinii
În unele cazuri, nu veţi dori să cereţi rularea unui serviciu, dar veţi dori ca
serviciul dvs. să fie pornit înaintea altui serviciu, prin declararea
before (sau înaintea, prin declararea after) doar dacă
este disponibil în sistem (notaţi condiţia - aceasta nu mai reprezintă
dependenţă) şi dacă rulează în acelaşi nivel de execuţie (notaţi
condiţia - pot fi invocate doar serviciile din acelaşi nivel de execuţie).
Puteţi oferi această informaţie utilizând setările before sau
after.
Ca exemplu, vom vizualiza setările serviciului Portmap:
Cod 4.3: Funcţia depend() în serviciul Portmap |
depend() {
need net
before inetd
before xinetd
}
|
Puteţi utiliza generalizarea "*" pentru a invoca toate serviciile din acelaşi
nivel de execuţie, deşi nu este indicat.
Cod 4.4: Rularea unui script de iniţializare ca fiind primul script din nivelul de execuţie |
depend() {
before *
}
|
Funcţii Standard
Alături de funcţionalitatea depend(), puteţi avea nevoie să definiţi
funcţia start(). Aceasta conţine toate comenzile necesare pentru a
iniţializa serviciul. Este indicat să utilizaţi funcţiile ebegin şi
eend pentru a informa utilizatorul asupra a ceea ce se întâmplă:
Cod 4.5: Exemplu pentru funcţia start() |
start() {
ebegin "Starting my_service"
start-stop-daemon --start --quiet --exec /path/to/my_service
eend $?
}
|
Dacă doriţi mai multe exemple ale funcţiei start(), vă rugăm să citiţi
codul sursă disponibil în script-urile de iniţializare din directorul
/etc/init.d. Cât despre start-stop-daemon, există o
excelentă pagină de manual disponibilă dacă doriţi informaţii suplimentare:
Cod 4.6: Afişarea paginii de manual pentru start-stop-daemon |
# man start-stop-daemon
|
Alte funcţii ce le puteţi defini sunt: stop() şi restart(). Nu
sunteţi obligat să definiţi aceste funcţii! Sistemul nostru de iniţializare
este destul de inteligent pentru a completa aceste funcţii singur dacă
utilizaţi start-stop-daemon.
Sintaxa script-urilor de iniţializare din Gentoo este bazată pe Bourne Again
Shell (bash), deci puteţi utiliza construcţii compatibile cu bash în
interiorul script-ului de iniţializare.
Adăugarea de Opţiuni Personalizate
Dacă doriţi ca script-urile de iniţializare să suporte mai multe funcţii decât
cele deja definite, va trebui să adăugaţi variabila opts şi să creaţi o
funcţie cu acelaşi nume ca opţiunea. Spre exemplu, pentru a suporta o opţiune
numită restartdelay:
Cod 4.7: Suportarea opţiunii restartdelay |
opts="${opts} restartdelay"
restartdelay() {
stop
sleep 3
start
}
|
Variabilele de Configurare pentru Serviciu
Nu trebuie să întreprindeţi nimic pentru a suporta un fişier de configurare în
/etc/conf.d: dacă script-ul de iniţializare este executat,
următoarele fişiere sunt interpretate automat (spre ex. variabilele sunt
disponibile spre utilizare):
- /etc/conf.d/<your init script>
- /etc/conf.d/basic
- /etc/rc.conf
De asemenea, dacă script-ul dvs. de iniţializare oferă o dependenţă virtuală
(cum ar fi net), fişierul asociat cu acea dependenţă (cum ar fi
/etc/conf.d/net) va fi interpretat, de asemenea.
4.e. Schimbarea Comportamentului Nivelului de Execuţie
Cine ar putea beneficia de această funcţionalitate?
Mulţi utilizatori de laptop cunosc situaţia: acasă trebuie să pornească
net.eth0, în timp ce în timpul călătoriei nu doresc să pornească
net.eth0 (deoarece reţeaua nu este disponibilă). Cu Gentoo, puteţi
modifica comportamentul nivelului de execuţie în concordanţă cu nevoile
proprii.
Spre exemplu, puteţi crea un al doilea nivel de execuţie "default" în care să
porniţi şi care are atribuite alte script-uri de iniţializare. Puteţi selecta
la boot ce nivel de execuţie implicit să utilizaţi.
Utilizarea softlevel
Mai întâi de toate, creaţi un director corespunzător nivelului de execuţie
pentru cel de-al doilea nivel de execuţie "default" al dvs. Ca un exemplu,
putem crea nivelul de execuţie offline:
Cod 5.1: Crearea unui director corespunzător unui nivel de execuţie |
# mkdir /etc/runlevels/offline
|
Adăugaţi script-urile de iniţializare noilor create nivele de execuţie. Spre
exemplu, dacă doriţi să aveţi o copie exactă a nivelului de execuţie
default, dar fără net.eth0:
Cod 5.2: Adăugarea script-urilor de iniţializare necesare |
# 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 |
|
Acum, editaţi configurarea aplicaţiei bootloader şi adăugaţi o nouă intrare
pentru nivelul de execuţie offline. Spre exemplu, în
/boot/grub/grub.conf:
Cod 5.3: Adăugarea unei intrări pentru nivelul de execuţie offline |
title Gentoo Linux Offline Usage
root (hd0,0)
kernel (hd0,0)/kernel-2.4.25 root=/dev/hda3 softlevel=offline
|
Iată că totul este setat, acum. Dacă veţi porni sistemul şi selecta noua
intrare la boot, nivelul de execuţie offline va fi rulat în locul celui
implicit, default.
Utilizarea bootlevel
Utilizarea bootlevel este complet analoagă cu cea softlevel.
Singura diferenţă este că definiţi un nou nivel de execuţie "boot" în loc să
definiţi un al doilea nivel "default".
5. Variabile de Mediu
5.a. Variabile de Mediu?
Ce sunt ele
O variabilă de mediu este un obiect cu nume propriu, care conţine informaţii
folosite de una sau mai multe aplicaţii. Mulţi utilizatori (în special cei noi
sistemului Linux) consideră asta ca fiind un pic cam ciudat, sau chiar de
nestăpânit. Acest concept este greşit: folosind o variabilă de mediu, se
poate schimba cu uşurinţă configuraţia uneia sau mai multor aplicaţii.
Example Importante
Următorul tabel listează un număr de variabile folosite de sistemul Linux şi
descrie modul lor de folosire. Ca exemplu, sunt prezentate câteva valori pentru
aceste variabile după tabel.
| Variabilă |
Descriere |
| PATH |
Această variabilă conţine o listă de directoare, separate prin virgulă,
unde sistemul dumneavoastră caută fişierele executabile. Dacă introduceţi
numele unui executabil (cum ar fi ls, rc-update sau
emerge) dar acesta nu se află într-un director specificat, sistemul
dumneavoastră nu-l va executa (decât dacă introduceţi locaţia completă,
precum /bin/ls).
|
| ROOTPATH |
Această variabilă este asemănătoare comenzii PATH, doar că listează
directoarele ce trebuie verificate atunci când user-ul 'root' introduce o
comandă.
|
| LDPATH |
Această variabilă conţine o listă de directoare, separate prin virgulă,
unde linker-ul dinamic caută pentru a găsi o librărie.
|
| MANPATH |
Această variabilă conţine o listă de directoare, separate prin virgulă,
unde comanda man caută paginile de manual
|
| INFODIR |
Această variabilă conţine o listă de directoare, separate prin virgulă,
unde comanda info caută paginile info.
|
| PAGER |
Această variabilă conţine calea către programul folosit pentru a lista
conţinutul fişierelor (cum ar fi less sau more)
|
| EDITOR |
Această variabilă conţine calea către programul folosit pentru a schimba
conţinutul fişierelor (cum ar fi nano sau vi)
|
| KDEDIRS |
Această variabilă conţine o listă de directoare, separate prin virgulă, ce
conţin materiale specifice KDE.
|
| CLASSPATH |
Această variabilă conţine o listă de directoare, separate prin virgulă, ce
conţin clase Java.
|
| CONFIG_PROTECT |
Această variabilă conţine o listă delimitată de caracterul spaţiu a
directoarelor ce trebuie protejate de Portage în timpul actualizărilor.
|
| CONFIG_PROTECT_MASK |
Această variabilă conţine o listă delimitată de caracterul spaţiu a
directoarelor ce nu trebuie protejate de Portage în timpul actulizărilor.
|
Mai jos veţi găsi un exemplu de definire pentru toate variabilele:
Cod 1.1: Definiţii exemplu |
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. Definirea Variabilelor Globale
Directorul /etc/env.d
Pentru a centraliza definiţiile acestor variabile, Gentoo introduce directorul
/etc/env.d. În acest director veţi găsi unele fişiere, precum
00basic, 05gcc, etc. care conţin variabilele necesare
pentru aplicaţiile menţionate în nume.
De exemplu, când aţi instalat gcc, un fişier numit 05gcc a
fost creat de către ebuild şi conţine definiţiile următoarelor variabile:
Cod 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"
|
Alte distribuţii vă spun să schimbaţi sau să definiţi astfel de variabile de
mediu în /etc/profile sau alte locaţii. Gentoo, pe de altă parte,
uşurează (atât pentru dumneavoastră cât şi pentru portage) mentenanţa acestor
variabile fără a trebui să acordaţi atenţie fişierelor numeroase ce pot conţine
variabile de mediu.
De exemplu, când gcc este actualizat, fişierul
/etc/env.d/05gcc este actualizat fără a necesita interacţiunea cu
utilizatorul.
Acesta nu este un beneficiu numai pentru Portage, dar şi pentru dumneavoastră,
ca utilizator. Ocazional, este posibil să vi se ceară să setaţi o anumită
variabilă de mediu globală pentru tot sistemul. Ca exemplu, luăm variabila
http_proxy. În loc să vă încurcaţi cu /etc/profile, puteţi
crea un fişier nou (/etc/env.d/99local) unde să definiţi
variabilele de care aveţi nevoie:
Cod 2.2: /etc/env.d/99local |
http_proxy="proxy.server.com:8080"
|
Prin folosirea unui singur fişier în care păstraţi toate variabilele
dumneavoastră, puteţi avea acces rapid la variabilele definite de
dumneavoastră.
Script-ul env-update
Mai multe fişiere din /etc/env.d definesc variabila PATH.
Aceasta nu este greşit: când rulaţi env-update, va adăuga un număr de
definiţii înainte de a actualizarea variabilele de mediu, facilitând pachetelor
(sau utilizatorilor) adăugarea propriilor variabile fără alterarea valorilor
deja existente.
Script-ul env-update va adăuga valorile în ordine alfabetică, conform
fişierelor din /etc/env.d. Fişierele trebuie să înceapă cu două
cifre zecimale.
Cod 2.3: Ordinea actualizării utilizată de env-update |
00basic 99kde-env 99local
+-------------+----------------+-------------+
PATH="/bin:/usr/bin:/usr/kde/3.2/bin:/usr/local/bin"
|
Concatenarea variabilelor nu se întâmplă în toate cazurile, ci doar pentru
următoarele variabile: KDEDIRS, PATH, CLASSPATH,
LDPATH, MANPATH, INFODIR, INFOPATH,
ROOTPATH, CONFIG_PROTECT, CONFIG_PROTECT_MASK,
PRELINK_PATH şi PRELINK_PATH_MASK. Pentru toate celelalte
variabile, ultima valoare definită (în ordinea alfabetică a fişierelor din
/etc/env.d) este cea utilizată.
Când rulaţi env-update, script-ul va genera toate variabilele de mediu,
şi le va plasa în /etc/profile.env (care este utilizat de
/etc/profile). De asemenea, va extrage informaţiile din variabila
LDPATH şi le va folosi pentru a crea
fişierul/etc/ld.so.conf. Apoi, va rula ldconfig pentru a
recrea /etc/ld.so.cache, folosit de linker-ul dinamic.
Dacă doriţi să observaţi consecinţele env-update imediat după ce îl
rulaţi, executaţi următoarea comandă pentru a actualiza mediul. Utilizatorii
care au instalat ei înşişi Gentoo, îşi vor aminti de aceste instrucţiuni din
timpul instalării:
Cod 2.4: Actualizarea mediului |
# env-update && source /etc/profile
|
Notă:
Comanda de mai sus actualizează doar variabilele din terminalul curent,
consolele noi şi procesele fiu ale acestora. Astfel, dacă lucraţi
în X11, va trebui, fie să tastaţi source /etc/profile în fiecare
terminal nou pe care-l deschideţi, sau să reporniţi aplicaţia X pentru ca
toate terminalele să încarce noile variabile. Dacă utilizaţi un manager
de login, trebuie să tastaţi ca root /etc/init.d/xdm restart. Dacă
nu, va trebui să efectuaţi logout şi apoi să vă autentificaţi din nou
pentru ca X să poată crea procese fiu cu valorile noilor variabile.
|
5.c. Definirea Variabilelor Local
Specific User-ilor
Nu întotdeauna este dorită definirea globală a variabilelor de mediu. De
exemplu, s-ar putea să doriţi să adăugaţi /home/my_user/bin,
precum şi directorul curent de lucru (directorul în care vă aflaţi) la
variabila PATH, dar nu doriţi ca toţi user-ii sistemului să o aibă
definită în variabila lor PATH. Dacă doriţi să definiţi o variabilă de
mediu local trebuie să folosiţi ~/.bashrc sau
~/.bash_profile:
Cod 3.1: Extinderea variabilei PATH pentru folosire locală în ~/.bashrc |
PATH="${PATH}:/home/my_user/bin:"
|
Când efectuaţi din nou acţiunea de login, variabila dumneavoastră PATH
va fi actualizată.
Specific Sesiunii
Uneori, sunt necesare definiţii şi mai stricte. Poate doriţi să puteţi folosi
executabilele dintr-un director temporar, creat de dumneavoastră (fără a folosi
calea către executabile sau prin editarea ~/.bashrc) pentru timpul
scurt în care aveţi nevoie de ele.
În acest caz, puteţi defini variabila PATH în sesiunea curentă folosind
comanda export. Cât timp nu efectuaţi log out, variabila PATH va
folosi aceste setări temporare.
Cod 3.2: Definirea unei variabile de mediu specifice sesiunii |
# export PATH="${PATH}:/home/my_user/tmp/usr/bin"
|
C. Utilizarea Portage
1. Fişiere şi Directoare
6.a. Fişierele Utilizate de Portage
Directive de Configurare
Portage conţine o configuraţie implicită stocată în
/etc/make.globals. Dacă vizualizaţi fişierul, veţi observa
că toată configuraţia Portage este manipulată prin intermediul acestor
variabile. Ce variabile interpretează şi ce reprezintă ele, este descris
ulterior.
Deoarece multe directive de configurare diferă între arhitecturi, Portage
mai conţine fişiere de configurare implicite ce fac parte din profilul dvs.
Profilul este indicat de către fişierul symlink
/etc/make.profile; Configuraţiile sistemului Portage sunt setate
în fişierele make.defaults din profilul dvs. şi toate
profilele ascendente. Vom explica mai multe despre profile şi directorul
/etc/make.profile ulterior.
Dacă plănuţi să schimbaţi o variabilă de configurare, nu
modificaţi /etc/make.globals sau make.defaults.
Utilizaţi, în loc, /etc/make.conf, fişier ce are prioritate
peste celelalte fişiere. Veţi regăsi, de asemenea, un fişier
/etc/make.conf.example. Aşa cum sugerează şi numele, este
numai un fişier exemplu - Portage nu citeşte din acest fişier.
Puteţi, de asemenea, defini o variabilă Portage sub forma unei variabile de
mediu, dar nu recomandăm această politică.
Informaţii Specifice pentru Profile
Deja am amintit despre directorul /etc/make.profile. Acesta, nu
este chiar un director, ci un link simbolic spre un profil, cel implicit din
/usr/portage/profiles, deşi vă puteţi chiar crea profilele
proprii în altă locaţie şi să indicaţi link-ul simbolic spre acestea.
Link-ul simbolic spre care profilul este cel corespondent sistemului dvs.
Un profil conţine informaţii specifice arhitecturii pentru Portage, cum ar fi
o listă de pachete ce aparţin sistemului corespondent profilului, o listă
de pachete ce nu funcţionează (sau sunt mascate) în acel profil, etc.
Configurări Specifice Utilizatorului
Dacă doriţi să suprascrieţi comportamentul Portage în legătură cu
instalarea pachetelor, va trebui să editaţi fişierele din
/etc/portage. Este foarte recomandat să utilizaţi
fişierele din /etc/portage şi foarte nerecomandat să
suprascrieţi comportamentul prin intermediul variabilelor de mediu!
În directorul /etc/portage puteţi crea următoarele fişiere:
-
package.mask ce conţine o listă cu pachetele pe care
doriţi ca Portage să nu le instaleze niciodată
-
package.unmask ce conţine o listă cu pachetele ce doriţi
să le instalaţi, chiar dacă dezvoltatorii Gentoo descurajează foarte
puternic să le instalaţi
-
package.keywords ce conţine o listă cu pachetele ce doriţi
să le instalaţi, deşi pachetul nu a fost găsit ca potrivit (încă)
pentru sistemul sau arhitectura dvs.
-
package.use ce conţine o listă cu indicatorii USE pe care
doriţi să-i utilizaţi pentru anumite pachete, fără ca întregul
sistem să utilizeze acei indicatori USE
Mai multe informaţii despre directorul /etc/portage şi o
listă completă cu fişierele posibile pe care le puteţi crea, pot fi
găsite în pagina de manual a Portage:
Cod 1.1: Consultarea paginii de manual Portage |
$ man portage
|
Modificarea Fişierelor & Locaţiile Directoarelor Portage
Fişierele de configurare menţionate anterior nu pot fi stocate în altă
locaţie - Portage va căuta întotdeauna aceste fişiere de configurare
exact în locaţia specificată. Totuşi, Portage utilizează multe locaţii
în mai multe scopuri: directorul de instalare temporar, stocarea surselor,
structura Portage, ...
Toate aceste scopuri au locaţii implicite bine stabilite, dar le puteţi
modifica după preferinţe prin intermediul /etc/make.conf.
Restul acestui capitol explică scopul special locaţiilor utilizate de
Portage şi cum să le modificaţi locaţia în sistemul dvs. de fişiere.
Totuşi, acest document nu are ca scop sa fie utilizat ca referinţă. Dacă
doriţi acoperirea 100% cu informaţii, vă rugăm să consultaţi paginile
de manual pentru Portage şi make.conf:
Cod 1.2: Consultarea paginilor de manual pentru Portage şi make.conf |
$ man portage
$ man make.conf
|
1.b. Stocarea Fişierelor
Structura Portage
Locaţia implicită a structurii Portage este /usr/portage.
Această locaţie este definită de către variabila PORTDIR. Când stocaţi
structura Portage în altă locaţie (prin modificarea acestei variabile), nu
uitaţi să schimbaţi link-ul simbolic pentru /etc/make.profile
în concordanţă.
Dacă modificaţi variabila PORTDIR, aţi putea dori modificarea
următoarelor variabile, de asemenea, deoarece ele nu vor fi influenţate de
schimbarea variabilei PORTDIR. Aceasta se întâmplă din modul cum Portage
manipulează variabilele: PKGDIR, DISTDIR, RPMDIR.
Binare Precompilate
Deşi Portage nu utilizează binare precompilate, implicit, are un suport
vast pentru acestea. Când îi specificaţi sistemului Portage lucrul cu
pachete precompilate, acesta le va căuta în
/usr/portage/packages. Această locaţie este definită de
variabila PKGDIR.
Codul Sursă
Codurile sursă ale aplicaţiilor sunt stocate, implicit, în directorul
/usr/portage/distfiles. Această locaţie este definită de
variabila DISTDIR.
Fişierele RPM
Chiar dacă Portage nu poate utiliza fişiere RPM, este capabil să le
genereze utilizând comanda ebuild (consultaţi capitolul despre Aplicaţia Ebuild). Locaţia implicită în
care Portage stochează fişierele RPM este /usr/portage/rpm
şi este definită de variabila RPMDIR.
Baza de Date Portage
Portage stochează starea sistemului dvs. (ce pachete sunt instalate, ce
fişiere aparţin fiecărui pachet, ...) în /var/db/pkg. Nu
alteraţi aceste fişier manual! Va strica informaţiile pe care le deţine
Portage despre sistemul dvs.
Informaţiile Cache din Portage
Informaţiile cache din Portage (conţinând timpii de modificare, pachetele
virtuale, informaţiile despre arborele de dependenţe, ...) sunt stocate în
/var/cache/edb. Această locaţie este chiar un sistem cache: îl
puteţi curăţa, dacă nu aveţi nici o aplicaţie din portage ce rulează în acel
moment.
1.c. Compilarea Aplicaţiilor
Fişierele Temporare din Portage
Fişierele temporare din Portage sunt stocate, implicit, în
/var/tmp. Acest director este definit de variabila PORTAGE_TMPDIR.
Dacă modificaţi variabila PORTAGE_TMPDIR, aţi putea modifica următoarele
variabile, de asemenea, deoarece nu sunt alterate odată cu modificarea
PORTAGE_TMPDIR. Aceasta se întâmplă ca urmare a manipulării de către
Portage a următoarelor variabile: BUILD_PREFIX.
Directorul pentru Compilare
Portage creează directoare specifice necesare compilării pentru fiecare
pachet instalat, în /var/tmp/portage. Această locaţie este
definită de variabila BUILD_PREFIX.
Locaţia Sistemului de Fişiere Real
Implicit, Portage instalează toate fişierele în sistemul de fişiere
curent (/), dar puteţi schimba această locaţie prin setarea
variabilei de mediu ROOT. Aceasta este utilă când creaţi imagini instalate
noi.
1.d. Caracteristici de Logging
Procesul de Logging
Portage poate crea fişiere de log pentru fiecare ebuild, dar doar dacă
variabila PORT_LOGDIR este setată spre o locaţie ce are permisiuni de
scriere pentru Portage (user-ul portage). Implicit, această variabilă nu
este setată.
2. Configurarea prin intermediul Variabilelor
2.a. Configuraţia Portage
Aşa cum am notat anterior, Portage este configurabil prin multe variabile pe
care ar trebui să le definiţi în /etc/make.conf. Vă rugăm să
consultaţi pagina de manual make.conf pentru o informaţii mai
detaliate:
Cod 1.1: Consultarea paginii de manual make.conf |
$ man make.conf
|
2.b. Opţiuni Specifice Compilării
Opţiuni pentru Configurare şi Compilator
Când Portage compilează aplicaţiile, acesta pasează conţinutul următoarelor
variabile compilatorului şi scriptului configure:
-
CFLAGS & CXXFLAGS definesc indicatorii de compilare doriţi pentru C şi
C++.
-
CHOST defineşte informaţia despre host-ul pentru care se face compilarea
pentru scriptul configure a aplicaţiei.
-
MAKEOPTS este pasat comenzii make şi este, de obicei, setat să
definească numărul de paralelism utilizat în timpul compilării. Mai multe
informaţii despre opţiunile make pot fi găsite în pagina de manual make.
Variabila USE este, de asemenea, utilizată în timpul rulării configure şi al
compilărilor dar a fost explicată în detaliu în capitolele anterioare.
Opţiuni de Construire
Când Portage a construit o versiune mai nouă a unui anumit titlu software, va
şterge fişierele vechi şi versiunea veche din sistem. Portage acordă o pauză de
5 secunde înaintea ştergerii vechii versiuni. Aceste 5 secunde sunt definite de
variabila CLEAN_DELAY.
2.c. Configuraţia Protecţiei Fişierelor
Locaţiile Protejate ale Portage
Portage suprascrie fişierele noilor versiuni ale unui titlu software, dacă
fişierele nu sunt stocate într-o locaţie protejată. Aceste locaţii
protejate sunt definite de variabila CONFIG_PROTECT şi sunt, în general,
locaţii pentru fişierele de configurare. Lista de directoare este delimitată
prin spaţii.
Un fişier ce ar fi trebuit să fie scris într-o asemenea locaţie, este redenumit
şi utilizatorul este avertizat de prezenţa unei versiuni mai noi (presupusă) a
fişierului de configurare.
Puteţi afla setarea curentă pentru CONFIG_PROTECT din ieşirea comenzii
emerge --info:
Cod 3.1: Aflarea setării curente a CONFIG_PROTECT |
$ emerge --info | grep 'CONFIG_PROTECT='
|
Mai multe informaţii despre Configurarea Protecţiei Fişierelor este disponibilă
prin intermediul emerge:
Cod 3.2: Mai multe informaţii despre Configurarea Protecţiei Fişierelor |
$ emerge --help config
|
Excluderea de Directoare
Pentru a 'deproteja' anumite directoare din locaţiile protejate, puteţi utiliza
variabila CONFIG_PROTECT_MASK.
2.d. Opţiuni de Descărcare
Locaţii de Servere
Când informaţia sau data necesară nu este disponibilă pe sistemul dvs., Portage
o va descărca de pe Internet. Locaţiile serverelor pentru diverse informaţii şi
canale de date sunt definite de următoarele variabile:
-
GENTOO_MIRRORS defineşte o listă de locaţii de servere ce conţin coduri
sursă (distfiles).
-
PORTAGE_BINHOST defineşte o locaţie particulară de servere ce conţine
pachete precompilate pentru sistemul dvs.
A treia setare implică locaţia serverului de rsync utilizat pentru a vă
actualiza structura Portage:
-
SYNC defineşte un anume server pe care Portage îl utilizează pentru
descărca structura Portage.
Variabilele GENTOO_MIRRORS şi SYNC pot fi setate automat prin intermediul
aplicaţiei mirrorselect. Trebuie mai întâi să instalaţi mirrorselect
utilizând emerge mirrorselect, înainte de a-l folosi. Pentru mai multe
informaţii, consultaţi pagina de ajutor online a aplicaţiei mirrorselect:
Cod 4.1: Mai multe informaţii despre mirrorselect |
# mirrorselect --help
|
Dacă mediul dvs. necesită utilizarea unui server proxy, puteţi utiliza
variabilele HTTP_PROXY, FTP_PROXY şi RSYNC_PROXY pentru a declara un server
proxy.
Comenzi de Descărcare
Când Portage necesită descărcarea unui cod sursa, utilizează wget
implicit. Puteţi modifica aceasta comanda prin setarea variabilei FETCHCOMMAND.
Portage poate să continue un cod sursă descărcat parţial. Acesta utilizează
implicit wget, dar aceasta se poate schimba prin modificarea variabilei
RESUMECOMMAND.
Asiguraţi-vă că atât FETCHCOMMAND cât şi RESUMECOMMAND stochează codul sursă în
locaţia curentă. În interiorul acestor variabile puteţi utiliza \${URI} şi
\${DISTDIR} pentru a indica locaţia codului sursă şi locaţia distfiles.
De asemenea, puteţi defini manipulatori specifici protocoalelor prin
intermediul FETCHCOMMAND_HTTP, FETCHCOMMAND_FTP, RESUMECOMMAND_HTTP,
RESUMECOMMAND_FTP, şi aşa mai departe.
Setări pentru Rsync
Nu puteţi modifica comanda rsync utilizată de Portage pentru a actualiza
structura Portage, dar puteţi seta unele variabile în legătură cu comanda
rsync:
-
RSYNC_EXCLUDEFROM indică un fişier ce conţine pachetele şi/sau categoriile
pe care rsync doriţi să le ignore în timpul procesului de actualizare
-
RSYNC_RETRIES defineşte numărul de câte ori rsync ar trebui să încerce să
se conecteze la mirror-ul indicat de variabila SYNC înainte de a renunţa.
Această variabilă are valoarea implcită 3.
-
RSYNC_TIMEOUT defineşte numărul de secunde în care conexiunea rsync poate
stagna înainte ca rsync să considere că timpul a expirat. Această variabilă
are valoare implicită de 180, dar utilizatorii de dial-up sau cei care au
sisteme încete ar trebui să o seteze, probabil, la 300 sau mai mare.
2.e. Configurarea Gentoo
Selectarea Ramurii
Puteţi modifica ramura implicită cu ajutorul variabilei ACCEPT_KEYWORDS.
Aceasta are valoarea implicită ramura stabilă a arhitecturii dvs. Mai multe
informaţii despre ramurile din Gentoo, pot fi găsite în următorul capitol.
Caracteristici ale Sistemului Portage
Puteţi activa anumite caracteristici ale Portage prin intermediul variabilei
FEATURES. Caracteristicile Portage au fost tratate în capitolele anterioare,
cum ar fi cel dedicat Caracteristicilor
Portage.
2.f. Comportamentul Portage
Administrarea Resurselor
Cu ajutorul variabilei PORTAGE_NICENESS puteţi mări sau reduce valoarea nice
sub care rulează Portage. Valoarea PORTAGE_NICENESS este adăugată
valorii curente nice.
Pentru mai multe informaţii despre valorile nice, consultaţi pagina de manual
nice:
Cod 6.1: Mai multe informaţii despre nice |
$ man nice
|
Comportamentul Afişării
Variabila NOCOLOR, ce are valoarea implicită "false", defineşte dacă Portage ar
trebui să dezactiveze utilizarea afişării utilizând culori.
3. Interclasarea Categoriilor Software
3.a. Utilizarea Unei Singure Ramuri
Ramura Stabilă
Variabila ACCEPT_KEYWORDS defineşte ce ramură de aplicaţii utilizaţi pe
sistemul dvs. Aceasta are valoarea implicită ramura stabilă a arhitecturii dvs,
spre exemplu x86.
Recomandăm utilizarea numai a ramurii stabile. Cu toate acestea, dacă nu
acordaţi prea multă importanţă stabilităţii şi doriţi să ajutaţi comunitatea
Gentoo prin trimiterea de rapoarte de bug-uri la
http://bugs.gentoo.org, citiţi mai departe.
Ramura de Test
Dacă doriţi să utilizaţi mai mult aplicaţii recente, puteţi avea în vedere
utilizarea ramurii de test în loc. Pentru a îi specifica sistemului Portage să
utilizeze ramura de test, adăugaţi un ~ în faţa numelui arhitecturii dvs.
Ramura de test este exact ceea ce-i implică numele - Testare. Dacă
un pachet este în testare, înseamnă că dezvoltatorii ştiu că este
funcţional dar nu a fost testat îndeajuns. Puteţi, foarte bine, să fiţi
primul ce descoperă o eroare în pachet, caz în care puteţi completa un
raport de bug pentru a înştiinţa
dezvoltatorii de acesta.
Aveţi grijă, totuşi, că este posibil să observaţi unele probleme de
instabilitate, manipularea imperfectă a pachetelor (spre ex. dependenţe
incorecte/lipsă), actualizări prea frecvente (rezultând în multe compilări)
sau pachete problematice. Dacă nu ştiţi cum funcţionează Gentoo şi modalităţile
de rezolvare a problemelor, vă recomandăm să rămâneţi pe ramura stabilă şi
testată.
Spre exemplu, pentru a selecta ramura de test pentru arhitectura x86, editaţi
/etc/make.conf şi setaţi:
Cod 1.1: Setarea variabilei ACCEPT_KEYWORDS |
ACCEPT_KEYWORDS="~x86"
|
Dacă vă actualizaţi sistemul acum, veţi observa că multe din pachete vor
fi actualizate. Ţineţi minte, totuşi: după ce v-aţi actualizat sistemul să
utilizeze ramura stabilă, de obicei nu există o cale prea uşoară să reveniţi la
cea stabilă, oficială (cu excepţia cazurilor în care deţineţi un backup).
3.b. Combinarea Ramurii Stabile cu cea de Test
Fişierul package.keywords
Îi puteţi specifica sistemului Portage să permită ramura de test pentru anumite
pachete dar utilizaţi ramura stabilă pentru restul sistemului. Pentru aceasta,
adăugaţi categoria pachetului şi numele pe care doriţi să-l folosiţi din ramura
de test în /etc/portage/package.keywords. Spre exemplu, dacă
doriţi să utilizaţi ramura de test pentru gnumeric:
Cod 2.1: Setarea /etc/portage/package.keywords pentru gnumeric, întreaga linie |
app-office/gnumeric ~x86
|
Testarea Anumitor Versiunilor
Dacă doriţi să utilizaţi o anumită versiune din ramura de test, dar nu doriţi
ca Portage să considere ramura de test pentru celelalte versiuni, puteţi adăuga
versiunea în fişierul package.keywords. În acest caz,
trebuie să utilizaţi operatorul =. Puteţi, de asemenea, să introduceţi o
plajă de versiuni utilizând operatorii <=, <, > or >=.
În oricare din cazuri, dacă adăugaţi informaţia despre versiune, trebuie
să utilizaţi un operator. Dacă nu utilizaţi informaţia despre versiune,
nu puteţi folosi un operator.
În următorul exemplu, îi specificăm sistemului Portage să accepte
gnumeric-1.2.13:
Cod 2.2: Activarea unei versiuni specifice de test pentru gnumeric |
=app-office/gnumeric-1.2.13 ~x86
|
3.c. Utilizarea Pachetelor Mascate
Fişierul package.unmask
Dezvoltatorii Gentoo nu oferă suport pentru utilizarea acestor
fişiere. vă rugăm să faceţi exerciţii cu atenţie. Cererile de suport
în legătură cu package.unmask şi/sau package.mask nu vor
primi răspuns. Aţi fost avertizaţi.
Când un pachet a fost mascat de către dezvoltatorii Gentoo şi totuşi doriţi
să-l utilizaţi, în ciuda motivului menţionat în fişierul
package.mask (situat implicit în
/usr/portage/profiles), adăugaţi exact aceeaşi linie în
/etc/portage/package.unmask.
Spre exemplu, dacă =net-mail/hotwayd-0.8 este mascat, îi puteţi anula
mascarea prin adăugarea exact aceleiaşi linii în fişierul
package.unmask:
Cod 3.1: /etc/portage/package.unmask |
=net-mail/hotwayd-0.8
|
Fişierul package.mask
Când doriţi ca sistemul Portage să nu ia în considerare un anumit pachet sau o
anumită versiune a unui pachet, îl puteţi masca prin adăugarea liniei
corespunzătoare în /etc/portage/package.mask.
Spre exemplu, dacă nu doriţi ca Portage să instaleze versiuni de kernel mai noi
decât gentoo-sources-2.6.8.1, adăugaţi linia următoare în
package.mask:
Cod 3.2: Exemplu /etc/portage/package.mask |
>sys-kernel/gentoo-sources-2.6.8.1
|
4. Utilitare Adiţionale pentru Portage
4.a. etc-update
etc-update este un utilitar ce ajută la instalarea fişierelor
._cfg0000_<nume>. El oferă un mediu de instalare interactiv
şi poate, de asemenea, să instaleze modificările triviale. Fişierele
._cfg0000_<name> sunt generate de Portage în momentul în
care încearcă suprascrierea unui fişier într-un director protejat de variabila
CONFIG_PROTECT.
Rularea etc-update este destul de directă:
Cod 1.1: Rularea etc-update |
# etc-update
|
După instalarea modificărilor implicite, vi se va afişa o listă cu fişierele
protejate ce au un fişier de actualizat în aşteptare. În partea inferioară vi
se vor afişa următoarele opţiuni posibile:
Cod 1.2: opţiunile 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'):
|
Dacă introduceţi -1, etc-update va ieşi fără a executa nici o
schimbare. Dacă introduceţi -3 sau -5, toate fişierele de
configurare afişate vor fi suprascrise cu versiunile mai noi. Este, de aceea,
foarte important să selectaţi întâi fişierele de configurare ce nu trebuie
actualizate automat. Această operaţiune constă în simpla introducere a
numărului afişat în stânga acelui fişier de configurare.
Ca un exemplu, vom selecta fişierul de configurare /etc/pear.conf:
Cod 1.3: Actualizarea unui anumit fişier de configurare |
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
|
Acum, puteţi observa diferenţele dintre două fişiere. Dacă dvs. credeţi că
fişierele de configurare actualizate pot fi utilizate fără probleme,
introduceţi 1. Dacă dvs. credeţi că fişierul de configurare actualizat
nu este necesar, sau nu oferă nici o informaţie nouă sau folositoare,
introduceţi 2. Dacă doriţi să actualizaţi interactiv fişierul de
configurare curent, introduceţi 3.
Nu are nici un sens elaborarea instalării interactive, aici. Pentru
completitudine, vom lista toate comenzile posibile pe care le puteţi utiliza în
timpul instalării interactive a două fişiere. Vi se vor afişa două linii (cea
originală, şi cea nouă, propusă) şi un prompt la care puteţi introduce
următoarele comenzi:
Cod 1.4: Comenzile disponibile pentru instalarea interactivă |
ed: Editaţi şi apoi utilizaţi ambele versiuni, fiecare conţinând un antet.
eb: Editaţi şi apoi utilizaţi ambele versiuni.
el: Editaţi şi apoi utilizaţi versiunea din stânga.
er: Editaţi şi apoi utilizaţi versiunea din dreapta.
e: Editaţi o nouă versiune.
l: Utilizaţi versiunea din stânga.
r: Utilizaţi versiunea din dreapta.
s: Includeţi silenţios liniile comune.
v: Includeţi afişând amănuntele, liniile comune.
q: Ieşiţi.
|
Când aţi terminat actualizarea fişierelor de configurare importante, puteţi,
acum, să le actualizaţi pe toate celelalte. etc-update va ieşi, dacă nu
va mai găsi alte fişiere de configurare actualizabile.
4.b. dispatch-conf
Cu ajutorul dispatch-conf puteţi actualiza fişierele dvs. de configurare
şi să reţineţi istoricul tuturor modificărilor efectuate. dispatch-conf
stochează diferenţele dintre fişierele de configurare ca fişiere patch sau prin
utilizarea sistemului de revizii RCS.
La fel ca etc-update, îi puteţi specifica păstrarea fişierelor de
configurare intacte, editarea celui curent sau instalarea interactivă a
modificărilor. Totuşi, dispatch-conf deţine unele caracteristici
adiţionale:
-
Instalează automat actualizările fişierelor de configurare ce conţin doar
actualizări ale comentariilor
-
Instalează automat fişierele de configurare ce diferă numai prin numărul de
spaţii albe
Asiguraţi-vă că aţi editat mai întâi /etc/dispatch-conf.conf şi
creaţi directorul indicat de variabila archive-dir.
Pentru mai multe informaţii, verificaţi pagina de manual pentru
dispatch-conf:
Cod 2.1: Consultarea paginii de manual pentru dispatch-conf |
$ man dispatch-conf
|
4.c. quickpkg
Cu ajutorul quickpkg puteţi crea arhive ale pachetelor ce sunt deja
instalate în sistemul dvs. Aceste arhive pot fi utilizate ca pachete
precompilate. Rularea quickpkg este directă: trebuie doar să adăugaţi
numele pachetelor pe care doriţi să le împachetaţi:
Spre exemplu, pentru a impacheta curl, arts şi procps:
Cod 3.1: Exemplu de utilizare pentru quickpkg |
# quickpkg curl arts procps
|
Pachetele precompilate vor fi stocate în $PKGDIR/All (implicit
/usr/portage/packages/All). Link-uri simbolice ce indică spre aceste pachete
sunt stocate în $PKGDIR/<categorie>.
5. Derivarea din Structura Oficială
5.a. Utilizarea unui Subset din Structura Portage
Excluderea de Pachete/Categorii
Puteţi actualiza în mod selectiv anumite categorii/pachete şi să ignoraţi
celelalte categorii pachete. Puteţi face acest lucru prin configurarea
rsync pentru excluderea unor categorii/pachete în timpul operaţiei de
emerge --sync.
Trebuie să definiţi numele fişierului ce conţine schema de excludere, în
variabila RSYNC_EXCLUDEFROM din fişierul dvs.
/etc/make.conf.
Cod 1.1: Definirea fişierului de excluziune în /etc/make.conf |
RSYNC_EXCLUDEFROM=/etc/portage/rsync_excludes
|
Cod 1.2: Excluderea tuturor jocurilor în /etc/portage/rsync_excludes |
games-*/*
|
Notaţi, totuşi, că aceasta poate genera probleme de dependenţe, deoarece unele
pachete noi pot depinde de alte pachete noi, dar care au fost excluse.
5.b. Adăugarea de Ebuild-uri Neoficiale
Definirea unui Director Portage Paralel
Îi puteţi specifica sistemului Portage să utilizeze fişiere ebuild ce nu sunt
disponibile oficial prin intermediul structurii Portage. Creaţi un director nou
(spre exemplu /usr/local/portage) în care să stocaţi fişiere
ebuild neoficiale. Utilizaţi aceeaşi structură ca structura Portage oficială!
Apoi, definiţi variabila PORTDIR_OVERLAY în /etc/make.conf şi
setaţi-o să indice către directorul definit anterior. Când utilizaţi Portage,
acum, va considera şi toate aceste fişiere ebuild fără ştergerea/suprascrierea
acestor fişiere ebuild următoarea dată când se va rula emerge --sync.
Lucrul cu mai Multe Directoare Paralele
Pentru utilizatorii experimentaţi ce dezvoltă utilizând mai multe
directoare paralele, testarea pachetelor înainte de a fi integrate cu
structura Portage sau doar dorinţa de a utiliza fişiere ebuild neoficiale
din surse variate, pachetul app-portage/gentoolkit-dev vă oferă
gensync, un utilitar ce vă păstrează repozitoriile paralele
actualizate.
Cu gensync puteţi actualiza toate repozitoriile dintr-o dată, sau
să selectaţi doar o parte din acestea. Fiecare repozitoriu ar trebui să
aibă un fişier .syncsource în directorul de configurare
/etc/gensync/ ce conţine locaţia repozitoriului, numele,
identificatorul, etc.
Presupunem că aveţi două repozitorii adiţionale denumite java
(pentru fişierele ebuild de java, în dezvoltare) şi entapps (pentru
aplicaţiile dezvoltate proprietar pentru mediul dvs. enterprise). Puteţi
actualiza aceste repozitorii, după cum urmează:
Cod 2.1: Utilizarea gensync pentru actualizarea unor repozitorii |
# gensync java entapps
|
5.c. Aplicaţii Neîntreţinute de Portage
Utilizarea Portage cu Aplicaţii Auto-Întreţinute
În unele cazuri, doriţi să configuraţi, instalaţi şi să asiguraţi
mentenanţa aplicaţiilor manual, fără ca Portage să automatizeze acest
proces pentru dvs., chiar în cazul în care titlurile software se regăsesc
în Portage. Cazuri mai cunoscute sunt sursele de kernel şi driver-ele
nvidia. Puteţi configura Portage să ştie că un anumit pachet este manual
întreţinut în sistem. Acest proces este numit injectare şi este
suportat de Portage prin fişierul
/etc/portage/profile/package.provided.
Spre exemplu, dacă doriţi să informaţi Portage despre
vanilla-sources-2.6.11.6 pe care l-aţi instalat manual, adăugaţi
următoarea linie în /etc/portage/profile/package.provided:
Cod 3.1: Exemplu de linie pentru package.provided |
sys-kernel/vanilla-sources-2.6.11.6
|
6. Aplicaţia Ebuild
6.a. Emerge şi Ebuild
Aplicaţia ebuild este o interfaţă de nivel mai scăzut pentru sistemul
Portage. Utilizând această aplicaţie, puteţi executa acţiuni specifice pentru
un anumit fişier ebuild. Spre exemplu, puteţi efectua paşii instalării unui
pachet individual.
Utilizarea ebuild este mai mult pentru scopuri de dezvoltare; mai multe
informaţii despre ebuild pot, astfel, fi găsite în Manualul Dezvoltatorilor. În
orice caz, vom prezenta ce instanţe ale unui ebuild sunt invocate de Portage în
timpul procesului de instalare al unui anumit pachet şi cum să invocăm paşii
post-configurare permişi de unele ebuild-uri.
6.b. Instalarea Manuală de Aplicaţii
Descărcarea Surselor & Validarea
De câte ori invocaţi ebuild pentru un anumit fişier ebuild, acesta va
verifica dacă sumele de control ale tuturor fişierelor implicate sunt egale cu
cele conţinute în fişierul Manifest sau
files/digest-<nume>-<versiune>. Aceasta se întâmplă
după ce sursele au fost descărcate.
Pentru a descărca sursele utilizând comanda ebuild, rulaţi:
Cod 2.1: Descărcarea surselor |
# ebuild cale/catre/ebuild fetch
|
Dacă suma de control md5 nu se potriveşte cu cea listată în fişierul
Manifest sau dacă una din sursele descărcate nu se potrivesc celor
conţinute în fişierul files/digest-<package>, veţi primi un
mesaj de eroare similar cu următorul:
Cod 2.2: Sumă de control incorectă pentru ebuild |
!!! File is corrupt or incomplete. (Digests do not match)
>>> our recorded digest: db20421ce35e8e54346e3ef19e60e4ee
>>> your file's digest: f10392b7c0b2bbc463ad09642606a7d6
|
Următoarea linie, va menţiona fişierul eronat.
Dacă sunteţi convins că sursele pe care le-aţi descărcat sau însuşi fişierul
ebuild sunt valide, puteţi regenera fişierele Manifest şi
digest-<package> utilizând funcţionalitatea digest a
comenzii ebuild:
Cod 2.3: Regenerarea Manifest şi digest |
# ebuild cale/catre/ebuild digest
|
Decompresia Surselor
Pentru a decompresa sursele în /var/tmp/portage (sau orice alt
director specificat în /etc/make.conf), utilizaţi funcţionalitatea
unpack a comenzii ebuild:
Cod 2.4: Decompresia surselor |
# ebuild cale/catre/ebuild unpack
|
Aceasta va executa funcţia src_unpack() (ce are conţinutul implicit extragerea
directă dacă nu este specificată nici o funcţie src_unpack() ). Tot în acest
pas se aplică toate patch-urile.
Compilarea Surselor
Următorul pas în procesul de instalare este compilarea surselor.
Funcţionalitatea compile a comenzii ebuild realizează acest pas prin
execuţia funcţiei src_compile() din fişierul ebuild. Aceasta include şi paşii
de configurarea, dacă este cazul.
Cod 2.5: Compilarea surselor |
# ebuild cale/catre/ebuild compile
|
Este recomandat să editaţi funcţia src_compile() a fişierului ebuild dacă
doriţi să modificaţi instrucţiunile de compilare. Totuşi, puteţi determina
Portage să considere că aplicaţia ebuild a terminat paşii de compilare.
Rulaţi individual toate comenzile necesare şi creaţi un fişier numit
.compiled în directorul de lucru:
Cod 2.6: Informarea Portage despre terminarea paşilor de compilare |
# touch .compiled
|
Instalarea Fişierelor într-o Locaţie Temporară
La următorul pas, Portage va instala toate fişierele necesare într-o locaţie
temporară. Acest director va conţine, în acest caz, toate fişierele ce urmează
să fie instalate în sistemul de fişiere real. Puteţi realiza acest lucru prin
rularea funcţiei install a comenzii ebuild ce execută funcţia
src_install() din fişierul ebuild:
Cod 2.7: Instalarea fişierelor |
# ebuild cale/catre/ebuild install
|
Instalarea Fişierelor în Sistemul de Fişiere Real
Pasul final este instalarea tuturor fişierelor în sistemul de fişiere real şi
înregistrarea acestor fişiere în baza de date a Portage. Comanda ebuild
denumeşte acest pas "qmerge" şi implică următorii paşi:
- Execuţia funcţiei pkg_preinst(), dacă este specificat
- Copierea tuturor fişierelor în sistemul de fişiere real
- Înregistrarea fişierelor în baza de date Portage
- Execuţia funcţiei pkg_postinst(), dacă este specificat
Rulaţi funcţia qmerge a comenzii ebuild pentru a realiza aceşti paşi:
Cod 2.8: Instalarea fişierelor în sistemul de fişiere real |
# ebuild cale/catre/ebuild qmerge
|
Curăţarea Directorului Temporar
În final, puteţi curăţa directorul temporar prin utilizarea funcţiei clean a
comenzii ebuild:
Cod 2.9: Curăţarea directorului temporar |
# ebuild cale/catre/ebuild clean
|
6.c. Caracteristici Adiţionale Ebuild
Rularea Tuturor Comenzilor Legate de Instalare
Utilizând funcţia merge a comenzii ebuild puteţi rula descărcarea,
decompresia, compilarea, instalarea şi comenzile qmerge într-un singur pas:
Cod 3.1: Instalarea aplicaţiilor |
# ebuild cale/catre/ebuild merge
|
Efectuarea Acţiunilor de Configurare
Unele aplicaţii includ instrucţiuni ce configurează pachetul în continuare, pe
sistemul dvs. Aceste instrucţiuni pot fi interactive şi, de aceea, nu pot fi
executate automat. Pentru a rula aceşti paşi de configurare, ce sunt listaţi în
funcţia (opţională) a fişierului ebuild, utilizaţi funcţionalitatea config a
comenzii ebuild:
Cod 3.2: Configurarea unui pachet |
# ebuild cale/catre/ebuild config
|
Costruirea unui pachet (RPM)
Îi puteţi specifica sistemului Portage să creeze un pachet binar pentru un
fişier ebuild, sau chiar un pachet RPM. Utilizaţi funcţia package sau rpm a
comenzii ebuild pentru a crea aceste arhive. Există, totuşi, unele
diferenţe de funcţionalitate între acestea două:
-
Funcţionalitatea package este asemănătoare cu cea de instalare, executând
toţi paşii necesari (descărcare, decompresie, compilare, instalare) înainte
ca pachetul să fie creat
-
Funcţionalitatea rpm construieşte un pachet RPM din fişierele create
după ce a rulat funcţia install a comenzii ebuild
Cod 3.3: Crearea de pachete |
# ebuild cale/catre/ebuild package
# ebuild cale/catre/ebuild rpm
|
Totuşi, fişierul RPM creat, nu va conţine informaţia de dependenţă a fişierului
ebuild.
6.d. Mai Multe Informaţii
Vă rugăm să consultaţi următoarele pagini de manual pentru mai multe informaţii
despre Portage, aplicaţia ebuild şi fişierele ebuild:
Cod 4.1: Pagini de manual |
$ man portage
$ man emerge
$ man ebuild
$ man 5 ebuild
|
Veţi găsi, de asemenea, informaţii în legătură cu dezvoltarea în Manualul Dezvoltatorilor.
D. Configurarea Reţelei în Gentoo
1. Primii Paşi
1.a. Primii paşi
Notă:
Acest document presupune că aţi configurat corect kernel-ul dvs., modulele
pentru componentele hardware şi cunoaşteţi numele interfeţei componentei
dvs. hardware. De asemenea, presupune cazul în care configuraţi eth0,
dar poate fi şi eth1, wlan0, etc.
|
Notă:
Acest document necesită rularea pachetului baselayout-1.11.11 sau mai nou.
|
Pentru a începe configurarea plăcii dvs. de reţea, trebuie să i-o
specificaţi sistemului RC al Gentoo. Aceasta se poate face prin crearea unui
link simbolic de la net.lo către net.eth0 în
/etc/init.d
Cod 1.1: Crearea link-ului simbolic net.eth0 către net.lo |
# cd /etc/init.d
# ln -s net.lo net.eth0
|
Sistemul RC al Gentoo recunoaşte acum interfaţa respectivă. De asemenea,
trebuie să cunoască modalitatea de configurare a noii interfeţe. Toate
interfeţele de reţea sunt configurate în /etc/conf.d/net. Mai jos,
aveţi un exemplu de configurare DHCP şi adresă statică.
Cod 1.2: Exemple pentru /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" )
|
Notă:
Dacă nu specificaţi o configuraţie pentru interfaţa dvs., atunci este
presupus DHCP.
|
Notă:
CIDR înseamnă Classless InterDomain Routing. Original, adresele IPv4 erau
clasificate ca A, B sau C. Sistemul de clasificare anterior nu se aştepta la
popularitatea masivă a Internetului şi este în pericol de a rămâne fără
adrese unice noi. CIDR este o schemă de adresare ce permite unei adrese IP să
desemneze mai multe adrese IP. O adresă IP CIDR arată ca o adresă IP normală
exceptând faptul că se termină cu un caracter slash urmat de un număr; spre
exemplu 192.168.0.0/16. CIDR este descris în RFC 1519.
|
Acum, că ne-am configurat interfaţa, o putem porni şi opri prin utilizarea
următoarelor comenzi.
Cod 1.3: Pornirea şi oprirea script-urilor de reţea |
# /etc/init.d/net.eth0 start
# /etc/init.d/net.eth0 stop
|
Important:
Când aveţi probleme cu reţeaua, este recomandat să setaţi
RC_VERBOSE="yes" în /etc/conf.d/rc pentru a vi se afişa
mai multe informaţii despre ceea ce se intâmplă.
|
Acum, că aţi pornit şi oprit cu succes interfaţa dvs. de reţea, este
posibil să doriţi să o porniţi odată cu pornirea sistemului. Iată cum
puteţi face acest lucru. Ultima comandă "rc" în specifică sistemului
Gentoo să pornească orice script-uri din nivelul de iniţializare curent,
ce nu au fost pornite, încă.
Cod 1.4: Configurarea unei interfeţe de reţea pentru a porni la boot |
# rc-update add net.eth0 default
# rc
|
2. Configurarea Avansată
2.a. Configurare Avansată
Variabila config_eth0 reprezintă inima configuraţiei unei interfeţe.
Este o listă de instrucţiuni de nivel înalt pentru configurarea interfeţei
(eth0 în acest caz). Fiecare comandă din lista de instrucţiuni este
executată secvenţial. Interfaţa este considerată OK dacă cel puţin o
comandă funcţionează.
Iată o listă de instrucţiuni integrate:
| Commandă |
Descriere |
| null |
Nu face nimic |
| noop |
Dacă interfaţa este activă şi există o adresă, atunci anulează
configurarea cu succes
|
| o adresă IPv4 sau IPv6 |
Adaugă adresa interfeţei |
|
dhcp, adsl sau apipa (sau o anumită comandă
dintr-un modul extern)
|
Rulează modulul ce oferă comanda. Spre exemplu, dhcp va rula un
modul ce oferă DHCP, care poate fi, ori dhcpcd, udhcpc,
dhclient sau pump.
|
Dacă o comandă returnează eroare, puteţi specifica o comandă de revenire.
Aceasta trebuie să se potrivească în structura configuraţiei exact.
Puteţi înlănţui aceste comenzi împreună. Iată unele exemple din lumea reală.
Cod 1.1: Exemple de configurare |
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"
)
|
Notă:
Când utilizaţi modulul ifconfig şi adăugaţi una sau mai multe
adrese, aliasurile interfeţelor sunt create pentru fiecare adresă
suplimentară. Deci, cu exemplele de mai sus, veţi avea interfeţele
eth0, eth0:1 şi eth0:2. Nu puteţi face nimic special cu
aceste interfeţe, deoarece kernel-ul sau alte aplicaţii vor trata
eth0:1 şi eth0:2 ca eth0.
|
Important:
Ordinea comenzilor de revenire este importantă! Dacă nu am specificat
opţiunea null, atunci comanda apipa va fi rulată doar în
cazul în care comanda noop returnează eroare.
|
Notă:
APIPA şi DHCP sunt tratate ulterior.
|
2.b. Dependenţe de Reţea
Script-urile de iniţializare din /etc/init.d pot depinde de o
anumită interfaţă de reţea sau doar de net. net poate fi definit
în /etc/conf.d/rc să aibă o altă însemnătate prin
utilizarea variabilei RC_NET_STRICT_CHECKING.
| Valoare |
Descriere |
| none |
Serviciul net este considerat întotdeauna activ |
| no |
În principiu, aceasta înseamnă că cel puţin un serviciu
net.* în afară de net.lo trebuie să fie
activ. Aceasta poate fi utilizată de utilizatorii de sisteme notebook ce
deţin o interfaţă WIFI şi o interfaţă statică, şi doresc ca
doar una să fie activă în orice moment au nevoie de o interfaţă
activă.
|
| lo |
Aceasta este similară cu opţiunea no, numai că şi
net.lo este luată în considerare. Acest lucru este
folositor utilizatorilor cărora nu le pasă ca o anume interfaţă de
reţea să fie activă la boot.
|
| yes |
Pentru aceasta, TOATE interfeţele de reţea TREBUIE să fie active pentru
ca serviciul net să fie considerat activ.
|
Dar ce se întâmplă în situaţia în care net.br0 depinde de
net.eth0 şi net.eth1? net.eth1 poate
fi un dispozitiv wireless sau PPP ce necesită configurare înainte să fie
adăugate în bridge. Aceasta nu se poate înfăptui dacă
/etc/init.d/net.br0 este un link simbolic la net.lo.
Răspunsul este crearea propriei funcţii depend() în
/etc/conf.d/net
Cod 2.1: dependenţă net.br0 în /etc/conf.d/net |
depend_br0() {
need net.eth0 net.eth1
}
|
Pentru o discuţie mai detaliată despre dependenţă, consultaţi secţiunea "Scrierea Script-urilor de
Iniţializare" din Manualul Gentoo.
2.c. Nume de variabile şi valori
Numele de variabile este dinamic. Acestea urmează în mod normal, structura
de variabila_${interfata|mac|essid|apmac}. Spre exemplu, variabila
dhcpcd_eth0 are ca valoare opţiunile dhcpcd pentru eth0 şi
dhcpcd_essid are ca valoare opţiunile dhcpcd când oricare interfaţă
se conectează la numele ESSID "essid".
Oricum, nu este nici o regulă principală şi rapidă ce defineşte faptul că
numele interfeţelor trebuie să fie ethx. De fapt, multe interfeţe wireless au
numele interfeţelor ca wlanx, rax cât şi ethx. De asemenea, unele interfeţe
definite de utilizator, cum ar fi sisteme bridge, li se poate desemna orice
nume, cum ar fi foo. Mai interesant, dispozitivele wireless Access Point pot
avea nume cu caractere non-alfanumerice conţinute - aceasta este important,
deoarece puteţi configura parametrii de reţea pentru fiecare nume ESSID.
Dezavantajul îl reprezintă faptul că Gentoo utilizează variabile bash pentru
reţea - iar bash nu poate utiliza altceva în afara caracterelor alfanumerice
din engleză. Pentru a trece peste această limitare, noi modificăm fiecare
caracter ce nu este unul alfanumeric englezesc, într-un caracter _.
Un alt dezavantaj al bash este conţinutul variabilelor - unele caractere
trebuie să fie reprezentate escape. Aceasta se poate efectua prin plasarea
caracterului \ în faţa caracterului ce trebuie reprezentat escape. Mai
jos aveţi o listă a caracterelor ce trebuie reprezentate escape în acest
mod: ", ' şi \.
În acest exemplu, vom utiliza nume wireless ESSID, deoarece acestea pot conţine
cea mai mare plajă de caractere. Vom utiliza ESSID My "\ NET.
Cod 3.1: exemplu de nume de variabilă |
dns_domain_My____NET="My \"\\ NET"
|
3. Reţelistica Modulară
3.a. Module de Reţea
Acum suportăm script-uri de reţea modulare, ceea ce înseamnă că puteţi
adăuga cu uşurinţă suport pentru tipuri noi de interfeţe şi module de
configurare păstrând compatibilitatea cu cele existente.
Modulele se încarcă implicit în cazul în care pachetul necesar pentru
acestea este instalat. Dacă specificaţi un modul aici ce nu are pachetul
corespondent instalat, atunci veţi primi o eroare ce va indica numele
pachetului ce trebuie instalat. În mod ideal, puteţi utiliza setările
modulelor deja prezente atunci când aveţi unul sau mai multe pachete ce
oferă acelaşi serviciu şi îl preferaţi pe unul dintre acestea relativ
la celălalt.
Notă:
Toate setările discutate aici sunt prezente în fişierul
/etc/conf.d/net, în cazul în care nu este specificat altfel.
|
Cod 1.1: Preferenţa modulelor |
modules=( "iproute2" )
modules_eth0=( "udhcpc" )
modules=( "!iwconfig" )
|
3.b. Aplicaţii pentru manipularea interfeţelor
Oferim două aplicaţii pentru a manipula interfeţele, şi anume:
ifconfig şi iproute2. Aveţi nevoie de unul dintre acestea
pentru a efectua orice tip de configurare de reţea.
ifconfig este, momentan, implicit în Gentoo şi este inclus în
profilul de sistem. iproute2 este un pachet mult mai puternic şi
flexibil, dar nu este inclus implicit.
Cod 2.1: Pentru a instala iproute2 |
# emerge sys-apps/iproute2
modules=( "iproute2" )
|
Deoarece, atât ifconfig cât şi iproute2 efectuează acţiuni
similare, noi permitem o configurare de bază pentru a funcţiona cu fiecare.
Spre exemplu, ambele exemple de cod de mai jos funcţionează, indiferent de
modulul utilizat.
Cod 2.2: exemple ifconfig şi 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 este utilizat la obţinerea informaţiilor de reţea (adresă IP,
server-e DNS, Gateway, etc) de la un server DHCP. Aceasta înseamnă că,
dacă există un server DHCP ce rulează în reţeaua dvs., trebuie doar
să-i specificaţi fiecărui client să utilizeze DHCP iar acesta setează
reţeaua singur. Bineînţeles, va trebui să configuraţi alte opţiuni, cum
ar fi cele de wireless, PPP şi altele, dacă este necesar, înainte de a
putea utiliza DHCP.
DHCP poate fi oferit de dhclient, dhcpcd, pump sau
udhcpc. Fiecare modul DHCP are argumentele sale pro şi contra - iată
un sumar.
| Modul DHCP |
Pachet |
Pro |
Contra |
| dhclient |
net-misc/dhcp |
Dezvoltat de ISC, aceiaşi oameni care dezvoltă BIND DNS. Foarte configurabil
|
Configurarea este foarte complexă, aplicaţia este oarecum mare, nu poate
transfera server-ele NTP de la DHCP, nu trimite nici un nume de gazdă implicit
|
| dhcpcd |
net-misc/dhcpcd |
De mult timp, implicit în Gentoo, nu se bazează pe utilitare externe
|
Nu mai este menţinut de dezvoltatori, poate fi încet ca timpi, nu devine
daemon când timpul de asociere este infinit
|
| pump |
net-misc/pump |
Foarte simplu, nu se bazează pe utilitare externe
|
Nu mai este menţinut de dezvoltatori, nu este de încredere, în special
pentru dispozitive modem, nu poate prelua server-e NIS de la DHCP
|
| udhcpc |
net-misc/udhcp |
Foarte simplu - cel mai mic client DHCP cunoscut, dezvoltat pentru sisteme
integrate
|
Nu este verificat - nici o distribuţie nu îl utilizează implicit, nu se
poate defini un timp peste 3 secunde
|
Dacă aveţi mai mult de un client DHCP instalat, trebuie să specificaţi pe
care să-l utilizaţi - altfel utilizăm implicit dhcpcd, dacă este
disponibil.
Pentru a transmite opţiuni specifice modulului dhcp, utilizaţi
modul_eth0="..." (modificaţi modulul cu numele clientului DHCP pe
care îl utilizaţi - spre ex. dhcpcd_eth0)
Încercăm să facem DHCP relativ agnostic - astfel, suportăm
următoarele comenzi utilizând variabila dhcp_eth0. Implicit nu este
setată nici una dintre opţiuni
-
release - eliberează adresa IP pentru re-utilizare
-
nodns - nu suprascrie /etc/resolv.conf
-
nontp - nu suprascrie /etc/ntp.conf
-
nonis - nu suprascrie /etc/yp.conf
Cod 3.1: Exemplu de configurare DHCP din /etc/conf.d/net |
modules=( "dhcpcd" )
config_eth0=( "dhcp" )
dhcpcd_eth0="-t 10"
dhcp_eth0="release nodns nontp nonis"
|
Notă:
dhcpcd, udhcpc şi pump trimit numele de gazdă curent
server-ului de DHCP implicit, deci nu trebuie să-l mai specificaţi.
|
3.d. Dispozitiv modem ADSL
Mai întâi trebuie să instală aplicaţia ADSL.
Cod 4.1: Instalarea pachetului rp-pppoe |
# emerge net-dialup/rp-pppoe
|
Atenţie:
baselayout-1.11.x suportă doar PPPOE. Sperăm că următoarele
versiuni vor suporta PPPOA.
|
Acum, trebuie să configurăm eth0 să fie o interfaţă ADSL şi
să introducem numele nostru de utilizator, prin actualizarea
/etc/conf.d/net.
Cod 4.2: Configurarea eth0 pentru ADSL în /etc/conf.d/net |
config_eth0=( "adsl" )
adsl_user_eth0="nume_utilizator"
|
La final, trebuie să definiţi numele dvs. de utilizator şi parola în
/etc/ppp/pap-secrets.
Cod 4.3: exemplu de fişier /etc/ppp/pap-secrets |
"username" * "password"
|
3.e. APIPA (Automatic Private IP Addressing - Adresare Automată de Adrese IP Private)
APIPA încearcă să găsească o adresă liberă în intervalul
169.254.0.0-169.254.255.255 prin emiterea de semnale arping către adrese
aleatoare din acel interval pentru interfaţă. Dacă nu este primit nici un
răspuns, atunci asociem acea adresă interfeţei.
Aceasta este folositor doar pentru reţelele LAN ce nu conţin nici un server
DHCP şi nu vă conectaţi direct la internet, iar celelalte sisteme
utilizează APIPA.
Pentru suportul APIPA, instalaţi net-misc/iputils sau
net-analyzer/arping.
Cod 5.1: Configurarea APIPA din /etc/conf.d/net |
config_eth0=( "dhcp" )
fallback_eth0=( "apipa" )
config_eth0=( "apipa" )
|
3.f. Legarea prin Bonding
Pentru legarea conexiunilor instalaţi net-misc/ifenslave.
Bonding este utilizat pentru a mări banda de reţea. Dacă aveţi două
plăci ce servesc aceeaşi reţea, le puteţi lega împreună, astfel ca
aplicaţiile dvs. să le considere ca fiind doar o singură interfaţă, dar
în realitate să le utilizeze pe amândouă.
Cod 6.1: configurarea legării prin bonding în /etc/conf.d/net |
slaves_bond0="eth0 eth1 eth2"
config_bond0=( "null" )
depend_bond0() {
need net.eth0 net.eth1 net.eth2
}
|
3.g. Interconectarea prin Bridge (suport 802.1d)
Pentru suportul interconectării prin bridge, instalaţi
net-misc/bridge-utils.
Interconectarea prin bridge este utilizată pentru a uni două reţele. Spre
exemplu, este posibil să aveţi un server conectat la internet printr-un
dispozitiv modem şi o placă de acces wireless pentru a activa conectarea
altor sisteme la internet prin dispozitivul modem ADSL. Puteţi crea o
interconectare bridge pentru a uni cele două interfeţe.
Cod 7.1: Configuraţia bridge din /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
}
|
Important:
Pentru utilizarea unor setări bridge, este posibil să trebuiască
consultarea documentaţiei despre numele de variabilă.
|
3.h. Adresa MAC
Nu trebuie să instalaţi nimic pentru a modifica adresa MAC a interfeţei
dvs. dacă aveţi sys-apps/baselayout-1.11.14 sau mai nou şi doriţi să
modificaţi la o anumită adresă MAC. Dar, dacă modificaţi cu o adresă aleatoare
sau aveţi instalată o versiune de baselayout mai veche decât cea menţionată mai
sus, atunci trebuie să instalaţi net-analyzer/macchanger.
Cod 8.1: Exemplu pentru modificarea adresei MAC |
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. Tunelarea
Nu trebuie să instalaţi nimic pentru tunelare, deoarece aplicaţia de
manipulare a interfeţei vă poate efectua acest lucru.
Cod 9.1: Configurarea tunelării în /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 (suport 802.1q)
Pentru suport VLAN, instalaţi net-misc/vconfig.
Reţeaua Virtuală (Virtual LAN) este un grup de dispozitive de reţea ce se
comportă ca şi când acestea ar fi fost conectate la un singur segment de
reţea - chiar dacă este posibil să nu fie din acelaşi segment. Membrii
VLAN se pot conecta numai la membrii aceleiaşi reţele VLAN, chiar dacă
este posibil să împartă aceeaşi reţea fizică.
Cod 10.1: Configurarea VLAN din /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" )
|
Important:
Pentru a utiliza unele setări VLAN, este posibil să trebuiască
consultarea documentaţiei despre numele de variabilă.
|
4. Reţelistică Wireless
4.a. Introducere
Momentan suportăm setarea wireless, fie prin intermediul
wireless-tools fie wpa_supplicant. Lucrul important de reţinut
este să vă amintiţi că dvs. configuraţi reţelele wireless într-un
context global, şi nu la nivelul interfeţei.
wpa_supplicant este cea mai bună soluţie, dar nu suportă toate
driver-ele. Pentru o listă de driver-e suportate, consultaţi site-ul
wpa_supplicant. De asemenea, wpa_supplicant se poate conecta doar
la sesiunile SSID pentru care le-aţi configurat.
wireless-tools suportă aproape toate plăcile şi driver-ele, dar nu
se poate conecta la dispozitive WPA, ci numai la dispozitive Access Point.
Atenţie:
Driver-ul linux-wlan-ng nu este suportat de baselayout, momentan.
Aceasta se datorează faptului că linux-wlan-ng are propriile
setări şi configurare, care sunt complet diferite de toate celelalte.
Dezvoltatorii linux-wlan-ng sunt presaţi să îşi modifice
setările pentru wireless-tools - când se va întâmpla acest lucru,
veţi putea utiliza linux-wlan-ng cu baselayout.
|
4.b. WPA Supplicant
WPA Supplicant este
un pachet ce vă permite să vă conectaţi la dispozitive access point cu
WPA. Setarea acestuia este destul de neclară, deoarece este încă în
stadiu de beta - oricum, funcţionează corect în cele mai multe din cazuri.
Cod 2.1: Instalarea wpa_supplicant |
# emerge net-wireless/wpa_supplicant
|
Important:
Trebuie să aveţi CONFIG_PACKET activat în kernel-ul dvs. pentru ca
wpa_supplicant să funcţioneze.
|
Acum trebuie să configurăm /etc/conf.d/net pentru a prefera
wpa_supplicant în detrimentul wireless-tools (dacă ambele sunt
instalate, wireless-tools este implicit).
Cod 2.2: configurarea /etc/conf.d/net pentru wpa_supplicant |
modules=( "wpa_supplicant" )
wpa_supplicant_eth0="-Dmadwifi"
|
Notă:
Dacă utilizaţi driver-ul host-ap, va trebui să setaţi placa în modul
Managed înainte de a putea fi utilizată corect cu wpa_supplicant.
Puteţi utiliza iwconfig_eth0="mode managed" pentru acest lucru, în
/etc/conf.d/net.
|
A fost simplu, nu? Oricum, tot trebuie să configurăm însăşi aplicaţia
wpa_supplicant, ceea ce este mai dificil, în funcţie de cât de
securizate sunt dispozitivele Access Point la care încercăm să ne
conectăm. Exemplul de mai jos este preluat şi simplificat din
/etc/wpa_supplicant.conf.example distribuit împreună cu
wpa_supplicant.
Cod 2.3: un examplu /etc/wpa_supplicant.conf |
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
ap_scan=1
network={
ssid="simplu"
psk="fraza de autentificare foarte secreta"
priority=5
}
network={
ssid="al doilea ssid"
scan_ssid=1
psk="fraza de autentificare foarte secreta"
priority=2
}
network={
ssid="examplu"
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="secret passphrase"
}
|
4.c. Utilitare Wireless
Setările Iniţiale şi Modul Managed
Utilitarele
Wireless oferă o modalitate fundamentală generică de a configura
interfeţele wireless la nivelul de securitate WEP. În timp ce WEP este o
metodă de securitate slabă, aceasta este şi ce mai predominantă.
Configurarea Utilitarelor Wireless este controlată de câteva variabile
principale. Exemplul de fişier de configuraţie de mai jos ar trebui să
descrie tot ceea ce vă este necesar. Un lucru de reţinut este faptul că
nici o configuraţie nu reprezintă "conectarea la cel mai puternic dispozitiv
Access Point neencriptat" - vom încerca mereu să vă conectăm la ceva.
Cod 3.1: Instalarea wireless-tools |
# emerge net-wireless/wireless-tools
|
Notă:
Deşi puteţi să stocaţi setările dvs. wireless, în
/etc/conf.d/wireless, acest ghid recomandă să le stocaţi în
/etc/conf.d/net
|
Important:
Va trebui să consultaţi documentaţia despre numele variabilei.
|
Cod 3.2: setări exemplu pentru iwconfig în /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" )
|
Setări pentru Selecţia Fină a Dispozitivelor Access Point
Puteţi adăuga unele opţiuni pentru a finisa selecţia dispozitivelor dvs.
Access Point, dar acestea nu sunt necesare, în mod normal.
Puteţi decide dacă ne conectăm doar la dispozitivele Access Point
preferate, sau nu. Implicit, dacă tot ce este configurat returnează eroare
şi putem să ne conectăm la un dispozitiv Access Point necriptat, atunci
vom face acest lucru. Aceasta poate fi controlată prin variabila
associate_order. Iată un tabel de valori şi cum controlează
acestea acest comportament.
| Valoare |
Descriere |
| any |
Comportamentul implicit |
| preferredonly |
Ne vom conecta doar la dispozitivele AP vizibile din lista preferată
|
| forcepreferred |
Vom forţa conectarea la dispozitivele AP în ordinea preferată, dacă
nu sunt detectate la o scanare
|
| forcepreferredonly |
Nu scanează după dispozitive Access Point - în loc, se încearcă
conectarea la fiecare, în ordine
|
| forceany |
La fel ca în cazul forcepreferred + se conectează la orice alt
dispozitiv AP disponibil
|
În sfârşit, avem o selecţie blacklist_aps şi una
unique_ap. blacklist_aps funcţionează similar cu
preferred_aps. unique_ap este o valoare yes (da) sau
no (nu) ce indică dacă o a doua interfaţă wireless se poate
conecta la acelaşi dispozitiv Access Point ca prima interfaţă.
Cod 3.3: exemplu blacklist_aps şi unique_ap |
blacklist_aps=( "ESSID3" "ESSID4" )
unique_ap="yes"
|
Modurile Ad-Hoc şi Master
Dacă doriţi să vă setaţi ca pe un nod Ad-Hoc în cazul în care nu
reuşiţi să vă conectaţi la nici un dispozitiv Access Point în modul
managed, puteţi face şi acest lucru.
Cod 3.4: revenire la modul ad-hoc |
adhoc_essid_eth0="Acest Nod Adhoc"
|
Ce spuneţi de conectarea la reţele Ad-Hoc sau rularea în modul Master pentru
a deveni un dispozitiv Access Point? Iată o configuraţie doar pentru acest
lucru! Puteţi specifica cheile WEP, aşa cum am exemplificat anterior.
Cod 3.5: configuraţie exemplu pentru ad-hoc/master |
mode_eth0="ad-hoc"
essid_eth0="Acest Nod Adhoc"
channel_eth0="9"
|
Important:
Nota de mai jos este copiată exact din documentaţia BSD wavelan, ce poate fi
găsită în documentaţia
NetBSD.
Există 14 canale posibile; ni s-a precizat că numerele 1-11 pentru canale
sunt legale pentru America de Nord, canalele 1-13 pentru majoritatea ţărilor
din Europa, canalele 10-13 pentru Franţa şi doar canalul 14 pentru Japonia.
Dacă aveţi îndoieli, vă rugăm să consultaţi documentaţia ce
însoţeşte dispozitivul dvs. access point. Asiguraţi-vă că acel canal
pe care îl selectaţi este acelaşi cu al dispozitivului access point (sau al
celeilalte plăci din reţeaua ad-hoc). Implicit pentru plăcile vândute în
America de Nord şi cea mai mare parte a Europei este 3; implicit pentru
plăcile vândute în Franţa este 11 şi pentru cele vândute în Japonia,
implicit este 14.
|
Probleme cu Utilitarele Wireless
Mai există unele variabile ce le puteţi utiliza pentru a vă activa şi
rula prin intermediul dispozitivului dvs. wireless din cauza problemelor
cauzate de driver sau mediu. Iată un table cu alte lucruri pe care le puteţi
încerca.
| Variabilă |
Valoarea Implicită |
Descriere |
| iwconfig_eth0 |
|
Consultaţi pagina de manual iwconfig pentru detalii despre parametrii ce
pot fi transmişi utilitarului iwconfig
|
| iwpriv_eth0 |
|
Consultaţi pagina de manual iwpriv pentru detalii despre parametrii
ce pot fi transmişi utilitarului iwpriv
|
| sleep_scan_eth0 |
0 |
Numărul de secunde de aşteptare înainte de a începe scanarea.
Aceasta este necesară când driver-ul/componenta firmware are nevoie de
mai mult timp de activare înainte de a fi utilizată.
|
| sleep_associate_eth0 |
5 |
Numărul de secunde de aşteptare al interfaţei asociate cu
dispozitivul Access Point, înainte de a o încerca pe următoarea
|
| associate_test_eth0 |
MAC |
Unele driver-e nu reajustează adresa MAC asociată cu una invalidă
când returnează eroare sau încearcă să se asocieze. Unele driver-e
nu reajustează nivelul de calitate când returnează eroare sau
încearcă să se asocieze. Setările valide sunt MAC,
quality şi all.
|
| scan_mode_eth0 |
|
Unele driver-e trebuie să scaneze în modul ad-hoc, deci dacă
scanarea returnează eroare, încercaţi să setaţi ad-hoc, aici
|
| iwpriv_scan_pre_eth0 |
|
Trimite unele comenzi iwpriv interfeţei, înainte de scanare.
Consultaţi pagina de manual iwpriv pentru mai multe detalii
|
| iwpriv_scan_post_eth0 |
|
Trimite unele comenzi iwpriv interfeţei, după scanare.
Consultaţi pagina de manual iwpriv pentru mai multe detalii
|
4.d. Definirea configuaţiei de reţea per ESSID
Uneori, când încercaţi să vă conectaţi la ESSID1, aveţi nevoie
de o adresă IP statică, iar în momentul în care vă conectaţi la
ESSID2, aveţi nevoie de DHCP. De fapt, majoritatea variabilelor de
modul pot fi modificate pentru fiecare ESSID. Iată cum puteţi face acest
lucru.
Notă:
Acestea funcţionează dacă utilizaţi WPA Supplicant sau Wireless Tools.
|
Important:
Va trebui să consultaţi documentaţia despre numele variabilei.
|
Cod 4.1: suprascrieţi setările de reţea per 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="some.domain"
dns_search_domains_ESSID1="search.this.domain search.that.domain"
config_001122334455=( "dhcp" )
dhcpcd_001122334455="-t 10"
dns_servers_001122334455=( "192.168.0.1" "192.168.0.2" )
|
5. Adăugarea Funcţionalităţii
5.a. Funcţii standard
Patru funcţii pot fi definite ce vor fi executate în jurul operaţiilor
start/stop. Funcţiile sunt denumite cu numele interfeţei la
început, pentru ca o funcţie să poată controla mai multe adaptoare.
Valorile returnate pentru funcţiile preup() şi predown() ar
trebui să fie 0 (succes) pentru a indica că procesul de configurare sau
deconfigurare poate continua. Dacă preup() returnează o valoarea
non-zero, atunci configurarea interfeţei va fi întreruptă. Dacă
predown() returnează o valoare non-zero, atunci interfeţei nu i se va
permite continuarea deconfigurării.
Valorile returnate de funcţiile postup() şi postdown() sunt
ignorate deoarece nu se poate efectua nimic dacă acestea returnează eroare.
${IFACE} este setată pentru interfaţa care trebuie să fie
activată/dezactivată. ${IFVAR} este ${IFACE} convertit la un
nume de variabilă permis de bash.
Cod 1.1: exemple de funcţii pre/post de activare/dezactivare |
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. Funcţii standard pentru utilitare wireless
Notă:
Aceasta nu funcţiona cu WPA Supplicant - dar variabilele ${ESSID} şi
${ESSIDVAR} sunt disponibile în funcţia postup().
|
Două funcţii pot fi definite ce vor fi invocate înainte şi după
funcţia asociată. Aceste funcţii sunt invocate având numele sufixat cu
numele interfeţei pentru ca o singură funcţie să poată controla mai
multe adaptoare.
Valorile returnate pentru funcţia postassociate() ar trebui să fie 0
(succes) pentru indicarea continuării configurării sau deconfigurării.
Dacă funcţia postassociate() returnează o valoare non-zero, atunci
configurarea interfeţei va fi anulată.
Valoarea returnată pentru funcţia postassociate() este ignorată
deoarece nu rămâne nici o acţiune de efectuat dacă aceasta indică
eroare.
${ESSID} este setată exact la valoarea ESSID a dispozitivului AP la
care vă conectaţi. ${ESSIDVAR} este ${ESSID} convertită la un
nume de variabilă permis de bash.
Cod 2.1: funcţiile de asociere pre/post |
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
}
|
Notă:
${ESSID} şi ${ESSIDVAR} nu sunt disponibile în funcţiile
predown() şi postdown().
|
6. Administrarea Reţelei
6.a. Administrarea Reţelei
Dacă dvs. şi sistemul dvs. sunt mereu în mişcare, este posibil să nu
aveţi mereu un cablu ethernet sau o priză sau un dispozitiv access point
disponibil. De asemenea, am dori ca reţeaua să funcţioneze automat când un
cablu ethernet este introdus în priză sau când un dispozitiv access point
este găsit.
Iată câteva utilitare ce vă pot ajuta în acest sens.
Notă:
Acest document tratează doar ifplugd, dar există şi alte
alternative pe care le puteţi încerca, cum este quickswitch.
|
6.b. ifplugd
ifplugd este o
aplicaţie daemon ce porneşte şi opreşte interfeţele în momentul când
un cablu ethernet este introdus sau scos. Poate, de asemenea, să manipuleze
detectarea asocierii cu un dispozitiv Access Point sau în momentul în care
unul se află în rază.
Cod 2.1: Instalarea ifplugd |
# emerge sys-apps/ifplugd
|
Configurarea pentru ifplugd este destul de la obiect. Fişierul de configurare
este menţinut în /etc/conf.d/ifplugd. Rulaţi man ifplugd
pentru detalii despre funcţionalitatea acestor variabile.
Cod 2.2: configuraţie simplă 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"
|
Conţinutul acestui document este publicat sub licenţa Creative Commons -
Attribution / Share Alike.
|