Gentoo Logo

Avertisment : Acest manual a fost înlocuit cu o versiune mai nouă şi nu mai este întreţinut.

Manual Gentoo Linux pentru arhitectura Alpha

Conţinut:

  • Instalarea Gentoo
    În această parte învăţaţi cum să instalaţi Gentoo pe sistemul dvs.
    1. Despre Instalarea Gentoo Linux
      Utilizatorii nefamiliari cu Gentoo nu cunosc faptul că alegerea este ceea în ce constă Gentoo.
    2. Alegerea Mediului de Instalare Corect
      Puteţi instala Gentoo în multe moduri. Acest capitol vă explică cum să instalaţi Gentoo utilizând Gentoo LiveCD.
    3. Configurarea Reţelei
      Dacă doriţi să instalaţi Gentoo utilizând o conexiune la Internet, trebuie să setaţi opţiunile de reţea.
    4. Pregătirea Discurilor
      Pentru a putea instala Gentoo, trebuie să creaţi partiţiile necesare. Acest capitol descrie cum să partiţionaţi un disk pentru utilizări ulterioare.
    5. Instalarea Fişierelor Gentoo necesare Instalării
      Instalările Gentoo funcţionează prin intermediul aşa-numitelor fişiere-stagiu. În acest capitol vom descrie modul de a dezarhiva un fişier-stagiu şi a configura Portage.
    6. Instalarea Sistemului de Bază al Gentoo
      Indiferent de ce stagiu alegeţi, rezultatul eventual este că veţi avea un sistem de bază Gentoo, la dispoziţia dvs. Acest capitol explică cum să progresaţi până la acel stagiu.
    7. Configurarea Kernel-ului
      Kernel-ul Linux este nucleul fiecărei distribuţii. Acest capitol explică cum dă vă configuraţi kernel-ul.
    8. 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.
    9. 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.
    10. Configurarea Bootloader-ului
      Există mai multe aplicaţii bootloader pentru arhitectura x86. Fiecare dintre ele are modul propriu de configurare. Vom parcurge procesul configurării aplicaţiei bootloader în concordanţă cu nevoile dvs.
    11. Finalizarea Instalării Gentoo
      Sunteţi aproape gata. Vom crea unul (sau mai mulţi) useri pentru sistemul dvs. şi să lăsăm instalarea să repornească într-un nou sistem Gentoo.
    12. 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 Genoo: instalarea de aplicaţii software, modificarea variabilelor, modificarea comportamentului portage, etc.
    1. 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.
    2. 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.
    3. Particularităţile Portage
      Descoperiţi particularităţile deţinute de Portage, cum ar fi suportul pentru compilarea distribuită, ccache şi altele.
    4. 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.
    5. 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.
    1. 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.
    2. Configurarea prin intermediul Variabilelor
      Portage este complet configurabile prin diversele varibile ce le puteţi seta în fişierul de configurare sau ca variabilă de mediu.
    3. 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.
    4. 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.
    5. 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.
    6. 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.

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 opta pentru 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 LiveCD-urile (CD-uri de instalare) 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 va cuprinde instalarea de pe unul din LiveCD-urile Gentoo şi, uneori, instalării Gentoo Linux boot-ând din reţea. Pentru alte metode de instalare ce nu sunt cuprinse în acest document consultaţi Ghidul pentru Metode Alternative de instalare. De asemenea, vă oferim un document despre Sfaturi şi Trucuri despre Instalarea Gentoo pe care este recomandat să-l citiţi. În cazul în care credeţi că documentaţia curentă despre instalare este prea elaborată, puteţi alege utilizarea Ghidul Rapid de Instalare disponibil pe pagina noastră de Resurse de Documentaţie dacă arhitectura dvs. dispune de un astfel de document.

De asemenea aveţi mai multe posibilităţi: puteţi compila întregul sistem de la bază sau instala pachetele precompilate care permit o instalare foarte rapida. Şi desigur puteţi utiliza metoda de instalare intermediară unde nu este necesară compilarea întregului sistem ci doar a unei părţi din sistemul de bază care vine semi-precompilat.

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. Precompilat sau compilăm tot?

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 acea este important instalarea unei versiuni snapshot a Portage în locul sincronizării structurii Portage cu ultima disponibilă dacă doriţi utilizarea metodei de instalare GRP.

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, i686, pentium3, pentium4, athlon-xp) Notă: pachtele GRP pentru x86 şi i686 (spre exemplu packages-x86-2004.2.iso) sunt disponibile pe server-ele noastre mirror, în timp ce pentium3, pentium4, athlon-xp sunt disponibile prin bittorrent.
  • Arhitectura amd64 (amd64)
  • Arhitectura sparc (sparc32, sparc64)
  • Arhitectura ppc (G3, G4, G5)
  • Arhitectura alpha (alpha, alphaev5, alphaev56, alphaev6)
  • Arhitectura mips
  • Arhitectura hppa

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 Alegerea metodei de instalare optime .

2. Alegerea Mediului de Instalare Corect

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ă.

Arhitectura x86

  • Aveţi nevoie de cel puţin 1 Gb spaţiu disponibil pe hard disk
  • În cazul în care nu veţi utiliza pachete precompilate, aveţi nevoie de un minim 300 MOcteţi memorie (RAM + swap)
  • Aveţi nevoie de un procesor minim 486+ şi cel puţin 64 MB de memorie RAM.

2.b. Alegeţi

Introducere

Mai sunteţi curioşi în a încerca Gentoo Linux ? Dacă da, este timpul să ne alegem mediul de instalare. Mediile de instalare diferă unu de altul dar toate sunt asemanatoare odată sistemul instalat de pe aceste medii indiferent de arhitectură vom avea un sistem Gentoo complet funcţional.

Mediile de instalare ce vor fi descrise în continuare sunt:

  • LiveCD-ul Gentoo Minimal
  • LiveCD-ul Gentoo Universal

Toate aceste medii au avantaje şi dezavantaje pe care le vom prezenta pentru fiecare mediu de instalare în parte. Dar, înainte de a continua, vom explica cele trei etape de instalare, denumite stage.

Cele Trei Stage-uri

Gentoo Linux se poate instala în unul din trei arhive tar stage care sunt disponibile. Modul pe care îl veţi alege depinde de cât de mult se doreşte a fi compilat sistemul. Arhiva tar stage1 este utilizată în instalarea Gento Linux când se doreşte compilarea întregului sistem. Arhiva tar stage2 este utilizată pentru instalarea Gentoo şi compilarea parţială dintr-un stadiu "semi-compilat" a sistemului ce se doreste a fi instalat. Arhiva tar stage3 conţine sistemul de bază Gentoo Linux ce a fost compilat în prealabil şi se poate instala fără a fi compilat (exceptând kernel-ul şi anumite pachete). Dacă doriţi acest lucru, alegeţi arhiva tar stage3.

Acum, ce stage veţi alege?

Odată ce aţi ales instalarea din stage1 aveţi la dispoziţie toata flexibilitatea care este oferită de Gentoo de unde puteţi alege optimizările de care aveţi nevoie. Instalarea din stage1 este recomandată în special utilizatorilor experimentaţi, care au o bază solidă de cunoştinţe în Linux. De asemenea, este recomandat utilizatorilor ce vor sa cunoască cât mai bine funcţionalitatea internă a Gentoo Linux.

O instalare stage1 se poate efectua doar în cazul unei legături la internet funcţională.

Stage1 Pro şi Contra
+ Permite un control complet asupra optimizărilor ce pot fi aplicate înainte de instalarea sistemului.
+ Potrivit utilizatorilor experimentaţi
+ Vă permite să cunoaşteţi mai bine sistemul de funcţionare intern al Gentoo
- Durează mult timp până la finalizarea instalării
- Dacă nu aveţi de gând să aplicaţi anumite optimizări, poate fi o pierdere de timp
- Nu este posibilă instalarea fără conexiune la reţea

Instalarea din stage2 vă permite să omiteţi procesul bootstrap dacă sunteţi mulţumiţi de setările de optimizare alese de noi special pentru arhiva tar stage2.

Pentru stage2 instalarea necesită conexiune la Internet obligatorie.

Stage2 Pro şi Contra
+ Nu aveţi nevoie de bootstrap
+ Instalare mai rapidă decât din stage1
+ Aveţi încă posibilităţi pentru optimizarea sistemului
- Optimizările sunt mai limitate decât în cazul instalării din stage1
- Nu este cea mai rapidă metodă de instalare Gentoo
- Trebuie să acceptaţi optimizările alese de noi pentru bootstrap
- NU este potrivită pentru instalările fără reţea

Instalarea din stage3 este cea mai rapidă metodă de instalare Gentoo Linux la care întregul sistem este optimizat în prealabil de către echipa dezvoltatorilor Gentoo (optimizări care, sincer, sunt bune fiind alese cu grijă pentru a îmbunătăţi performanţa în acelaşi timp cu stabilitatea). stage3 necesită instalarea pachetelor precompilate şi nu mai este necesară şi obligatorie conexiune la internet.

Stage3 Pro şi Contra
+ Este cea mai rapidă metodă de a instala sistemul de bază Gentoo
+ Nu necesită conexiune la reţea
- Nu aveţi posibilitatea de a vă optimiza sistemul - este deja instalat
- Nu vă puteţi lăuda cu utilizarea stage1 sau stage2

Este bine de ştiut faptul că, dacă decideţi utilizarea unor setări de optimizare diferite după instalarea Gentoo, veţi putea să vă recompilaţi întregul sistem în concordanţă cu noile setări de optimizare.

Avem la dispoziţie următoarele surse pentru instalare:

LiveCD-urile Gentoo

LiveCD-urile Gentoo sunt boot-abile şi conţin mediu Gentoo complet funcţional. Acestea vă permit să boot-aţi de pe CD. În timpul procesului de boot-are, sistemul va încerca identificarea tuturor componentelor hardware şi instalarea driver-elor specifice. Mentenanţa acestora este efectuată de către dezvoltatorii Gentoo.

Toate LiveCD-urile vă permit să boot-aţi, să puteţi configura reţiaua, iniţializa partiţie şi începe instalarea Gentoo de pe Internet. Anumite LiveCD-uri conţin şi codul sursă pentru sistemul de bază, deci aveţi posibilitatea să instalaţi Gentoo Linux fară suport de reţea.

Ce conţin aceste LiveCD-uri?

LiveCD-ul Gentoo Minimal

Acesta este un mic, dar nu fără sens, LiveCD boot-abil ce are ca unic scop boot-area sistemului, pregătirea reţelei şi continuarea instalării Gentoo. Acest LiveCD nu conţine surse pentru instalare sau pachete precompilate şi nu veţi găsi nici fişierele stage (numai pe anumite LiceCD-uri se poate găsi stage1). De exemplu Minimal LiveCD pentru arhitectura x86 pe care o puteţi găsi în subdirectorul universal are denumirea install-x86-minimal-2004.2.iso.

LiveCD-ul Minimal Pro şi Contra
+ Uşor de descărcat din cauza dimensiunilor reduse
+ Potrivit pentru mai multe arhitecturi
+ Puteţi utiliza instalarea din stage1, stage2 sau stage3 luând de pe internet arhivele tar stage
- Nu conţine arhive stage, versiune snapshot pentru Portage, pachete necesare pentru instalarea GRP, de aceea nu există posibilitatea instalării fără conexiune la internet

LiveCD-ul Gentoo Universal

LiveCD-ul Gentoo Universal este boot-abil şi permite instalarea Gentoo Linux făra existenta conexiunii la internet. LiveCD-ul conţine stage1 şi doar câteva arhive tar stage3 (optimizate pentru subarhitecturi individuale). Spre exemplu, varianta x86 a CD-ului pe care o gasiti în subdirectorul universal cu denumirea install-x86-universal-2004.2.iso

Dacă priviţi mai atent în directorul releases/x86/2004.2, veţi observa Gentoo Package CD (în directorul packagecd/). Acest CD (ce nu este boot-abil) conţine doar pachete precompilate ce se pot instala după ce aţi finisat instalarea Gentoo Linux. Pentru instalarea Gentoo aveţi nevoie numai de Universal LiveCD, dar dacă v-aţi decis să aveţi în sistem aplicaţii cum sunt OpenOffice.org, Mozilla, KDE, GNOME etc. fără să le compilaţi, veţi avea nevoie şi de acest CD. Ca exemplu Packages CD pentru i686 (ca subarhitectură a x86) îl găsiţi sub denumirea packages-i686-2004.0.iso în subdirectorul corespunzător (i686).

Aveţi nevoie de Packages CD numai în cazul în care instalaţi Gentoo Linux din stage3 cu GRP.

LiveCD-ul Universal în combinaţie cu Packages CD Pro şi Contra
+ Packages CD este optimizat pentru subarhitectura dvs.
+ Packages CD include pachete precompilate ce facilitează o instalare mai rapidă pentru Gentoo Linux
+ Conţine toate pachetele necesare pentru o funcţionare completă a sistemului. Facilitează instalarea Gentoo linux fără suport pentru reţea.
- Foarte mult de descărcat

2.c. Descărcarea, Scrierea şi Boot-area LiveCD-urilor

Descărcarea şi Scrierea LiveCD-urilor

Aţi ales instalarea Gentoo utilizând un LiveCD. Vom începe prin a descărca şi a scrie LiveCD-ul ales. Am tratat anterior LiveCD-urile disponibile, dar de unde le putem descărca?

Puteţi descărca unul din LiveCD-urile disponibile (şi, dacă doriţi, Packages CD) de pe unul din site-urile mirror. LiveCD-urile se găsesc în directorul releases/x86/2004.2/livecd iar Packages CD se pot găsi în directorul releases/x86/2004.2/packagecd.

În director veţi găsi fişierele cu extensia ISO. Aceste fişire sunt imagini exacte ale CD-urilor originale şi care pot fi scrise pe CD-R.

În caz că vă întrebaţi dacă fişierul descărcat este corupt sau nu, îi puteţi verifica suma de control MD5 oferită de noi (cum ar fi install-x86-minimal-2004.2.iso.md5). Puteţi verifica suma de control MD5 utilizând utilitarul md5sum pentru Linux/Unix, sau md5sumpentru Windows.

O altă metodă de verificare a integritatii imaginii LiveCD-ului descărcat, este utilizatea GnuPG pentru verificarea semnăturii criptografice ce v-o oferim (fişierul ce are terminaţia .asc). Descărcaţi fişierul ce conţine semnătura şi obţineţi cheia publică.

Cod 3.1: Obţinerea cheii publice

$ gpg --keyserver pgp.mit.edu --recv-keys 17072058

Acum, verificaţi semnătura criptografică.

Cod 3.2: Verificarea semnăturii criptografice

$ gpg --verify <fişierul cu semnătura> <fişierul iso descărcat>

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 (înlocuiţi /dev/hdc cu calea către unitatea dvs. CD-RW) urmată de calea către imaginea ISO :)
  • 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.

Boot-area LiveCD-ului

Important: Consultaţi cu atenţie intreaga subsecţiune înainte de a continua, pentru că, probabil nu veţi mai avea această posibilitate înainte de a continua ulterior.

După ce aţi scris LiveCD-ul a venit timpul să boot-ăm. Scoateţi CD-ul (dacă este prezent) din unitatea CD-ROM, reporniţi PC-ul şi intraţi în BIOS. Această operaţie se poate efectua apăsând una din tastele DEL, F1 sau ESC, depinzând de producătorul BIOS-ului instalat. În meniul din BIOS schimbaţi ordinea boot-ării unitaţilor de disc, şi anume setaţi CD-ROM-ul ca primul disc de pe care să se înceapa citirea iniţializării sistemului de operare. În majoritatea cazurilor submeniul pentru schimbarea ordinii de boot se poate găsi în meniul "CMOS Setup" Daca nu activaţi opţiunea de boot de pe CD-ROM dupa iniţializare BIOS-ului PC-ul va încărca sistemul de operare de pe hard-disc ignorând CD-ROM-ul.

Introduceţi CD-ul în unitatea CD-ROM şi reporniţi PC-ul. După ce CD-ul a iniţiat procedura de boot va apărea imaginea logo a Gentoo Linux. Apăsând tasta Enter procesul de boot a CD-ului va continua cu opţiunile prestabilite pentru iniţializarea sistemului, sau puteţi boot-a LiveCD-ul cu opţiuni suplimentare prin specificarea unei imagini de kernel, urmată de opţiuni de boot şi apoi apăsarea Enter.

Specificarea Kernel-ului? LiveCD-ul vă oferă mai multe imagini de kernel. Kernel-ul implicit este gentoo. Alte imagini de kernel sunt smp ce activează suportul pentru sisteme multiprocesor şi -nofb ce dezactivează opţiunea framebuffer.

Este recomandată selectarea imaginii de kernel implicită, gentoo sau gentoo-nofb dacă se doreşte instalarea Gentoo Linux cu kernel din seria 2.4 sau, pentru instalarea cu kernel din seria 2.6, se recomandă utilizarea la boot-area LiveCD-ului kernel-ul smp sau smp-nofb. Acestea sunt recomandate pentru evitarea problemelor de incompatibilitate.

În continuare veţi regăsi o prezentare scurtă a imaginilor de kernel disponibile:

Kernel Descriere
gentoo Implicit Kernel 2.4 cu suport pentru framebuffer
smp Kernel 2.6 cu suport pentru sisteme multiprocesoar
gentoo-nofb La fel ca şi în cazul gentoo, dar fără suport pentru framebuffer
smp-nofb La fel ca şi în cazul smp, dar fără suport pentru framebuffer
memtest86 Va încărca utilitarul pentru testarea memoriei RAM de erori

Puteţi utiliza şi opţiuni de kernel. Ele reprezintă setări opţionale ce le puteţi (dez)activa în funcţie de necesităţi. Lista de optiuni prezentată mai jos va aparea la apăsarea tastei F2 în bootscreen.

Cod 3.3: Opţiuni suplimentare ce pot fi utilizate pentru kernel

- agpgart       încarcă agpgart (utilizaţi această opţiune daca aveţi probleme cu iniţializarea interfeţei grafice )
- doscsi        scanează componentele scsi (poate crea incompatibilităţi cu anumite plăci de reţea)
- nodetect      cauzează ca hwsetup/kudzu şi hotplug să nu se execute
- dofirewire    probează existenţa componentelor firewire în initrd (exemplu dispozitive cdrom firewire, etc)
- nousb         dizactivează autoîncarcarea modulului de kernel usb, dezactivează modulului hotplug
- nodhcp        nu permite executarea serviciului dhcp, dacă este detectat vreun dispozitiv de reţea
- doataraid     încarcă modulele ide raid din initrd
- dopcmcia      porneşte serviciul pcmcia
- noapm         dezactivează încărcarea modulului apm
- noraid        dezactivează încărcarea modulului evms
- nohotplug     dezactivează încărcarea serviciului hotplug
- ide=nodma     Forţează dezactivarea dma pentru anumite componente
- docache       Crează un cache virtual al intregului CD in memoria operativă şi vă permite înlocuirea
                CD-ului de instalare cu un alt CD ce va poate fi necesar pe timpul instalarii 
- dokeymap      activara opţiunea pentru tastaturi non-US de mapare a tastelor 
- noapic        dezactivează apic (util în special daca semnalaţi probleme cu nics,scsi,etc)
- hdx=stroke    (doar pentru smp/smp-nofb) Permite partiţionarea hard-disk-urilor largi chiar
                dacă BIOS-ul nu poate recunoaşte discuri de dimensiuni mari

Acum boot-aţi de pe CD, selectaţi un kernel (dacă nu sunteţi mulţumit de imaginea gentoo implicită) cu opţiunile dorite. În exemplul de mai jos, vă prezentam modalitatea de a boot-a imaginea de kernel gentoo cu dopcmcia ca parametri:

Cod 3.4: Boot-area LiveCD-ului

boot: gentoo dopcmcia

Apoi, veţi observa imaginea de boot şi bara de progres. Odata ce procesul de boot a fost finalizat veţi fi logat în mediul "Live" al Gentoo Linux ca "root", modul super user. Î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.

Dacă instalaţi Gentoo pe un sistem ce are tastatura diferită de standardul US keyboard, asiguraţi-vă că specificaţi ca parametru de boot al LiveCD-ului opţiunea dokeymap.

Acum, continuaţi cu Configurarea Suplimentară pentru Componentele Hardware .

Configurarea Suplimentară pentru Componentele Hardware

LiveCD-ul Gentoo, î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. Dar, sunt şi cazuri (LiveCD-urile SPARC nici măcar nu dispun de autodetecţie) 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 8139too (ce oferă suport pentru un anumit tip de plăci de reţea):

Cod 3.5: Încărcarea modulelor de kernel

# modprobe 8139too

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

Activarea DMA:                                       # hdparm -d 1 /dev/hda
Activarea DMA + Opţiuni sigure de creştere a performaţei:  # 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: (Enter your new password)
Re-enter password: (Re-enter your 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 -m -G users john
# passwd john
New password: (Enter john's password)
Re-enter password: (Re-enter john's 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 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/en/handbook/handbook-x86.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. Puteţi şi fără, dar......

Cine poate fără?

În funcţie de mediul de pe care aţi ales să instalaţi Gentoo puteţi continua sau nu fără reţea (şi acces Internet). Nu, nu ne jucăm cu mintea dumneavoastră =)

În general aveţi nevoie de a configura reţeaua (şi accesul la Internet). Totuşi, Gentoo vă permite şi instalarea fără o conexiune la Internet, acest lucru fiind posibil numai cu ajutorul LiveCD-urilor Gentoo Universal.

De ce am nevoie de reţea?

Instalând Gentoo de pe Internet veţi avea toate actualizările la zi. Veţi avea o instalarea bazată pe cel mai recent Portage (care este o colecţie de pachete furnizate împreună cu instrumentele necesare administrării lor). Acesta este de altfel motivul pentru care instalarea de pe Internet este preferată. Totuşi, unele persoane nu pot sau nu vor să instaleze Gentoo pe un sistem conectat la Internet.

Dacă sunteţi în această situaţie atunci sunteţi nevoiţi să folosoţi LiveCD-urile Gentoo Universal. Acest LiveCD include cod sursă, o versiune completă a Portage şi instrumentele necesare instalării unui sistem de bază Gentoo, şi chiar mai mult. Această metodă are însă preţul ei: nu veţi avea ultimele versiuni ale programelor instalate, deşi diferenţele vor fi minime.

Dacă vreţi să urmaţi instalarea fără a fi conectaţi la internet şi doriţi să folosiţi un CD Universal Genoo LiveCD, săriţi peste restul acestui capitol şi continuaţi cu Pregătirea Discurilor. Altfel, continuaţi cu secţiunile despre configurarea suportului de reţea ce urmează.

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 1.1: Definirea serverelor proxy

(Pentru traficul HTTP)
# export http_proxy="http://proxy.gentoo.org:8080"
(Pentru traficul FTP)
# export ftp_proxy="ftp://proxy.gentoo.org:8080"
(Pentru traficul RSYNC)
# 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 1.2: Adăugarea nume/parolă la variabilele ce definesc proxy

http://username:password@server

De exemplu, presupunem că pentru traficul HTTP proxy-ul definit anterior necesită autentificare cu numele "john" şi parola "f00b_r". Atunci, veţi folosi:

Cod 1.3: Proxy cu Autentificare

# export http_proxy="http://john:f00b_r@proxy.gentoo.org:8080"

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 LiveCD 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 

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.2: 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 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, LiveCD-ul (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, ip-urile 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

Dacă aveţi nevoie de PPTP, puteţi folosi scriptul pptpclient disponibil pe LiveCD. 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.11: 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 LiveCD, 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

(Ca exemplu, noi încărcăm modulul pcnet32 )
# 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
Unii administratori de reţea vă impun să folosiţi
pentru maşina dumneavoastră numele de host şi domeniu furnizate de serverul DHCP.
În acest caz, folosiţi
# 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ă: Nu toate LiveCD-urile au comanda iwconfig. Dacă cel folosit de dumneavoastră nu o are, puteţi încă 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 în loc de eth0.

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

(Aceasta setează numele reţelei wireless la "GentooNode")
# iwconfig eth0 essid GentooNode

(Aceasta setează cheia WEP în notaţie hexa)
# iwconfig eth0 key 1234123412341234abcd

(Acesta setează cheia WEP, ASCII - o prefixăm cu  "s:")
# 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

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 sistemele amd64, acestea sunt numite partiţii.

Partiţii

Partiţiile sunt împărţite în trei tipuri: primare, extinse şi logice.

O partiţie primară este o partiţie ce deţine informaţia stocată în zona MBR (master boot record). Cum o zona MBR este foarte mică (512 octeţi) doar patru partiţii primare pot fi definite (spre exemplu, /dev/hda1 până la /dev/hda4).

O partiţie extinsă este o partiţie primară specială (ceea ce înseamnă că partiţia extinsă poate fi una din cele patru partiţii primare posibile). O asemenea partiţie nu a existat la începuturi, dar, cum cele patru partiţii erau prea puţine, a fost inventată pentru a extinde schema de formatare fără să se piardă compatibilitatea cu cea anterioară.

O partiţie logică este o partiţie conţinută într-o partiţie extinsă. Definirea acestora nu se face în MBR, ci în interiorul partiţiei extinse.

Stocare Avansată

LiveCD-urile x86 oferă suport pentru EVMS şi LVM2. EVMS şi LVM2 măresc flexibilitatea oferită de setarea partiţiilor. Pe parcursul instrucţiunilor de instalare, ne vom concentra pe partiţii "obişnuite", dar este, totuşi, bine să ştiţi că sunt suportate şi EVMS şi LVM2.

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ţie Sistem de Fişiere Mărime Descriere
/dev/hda1 ext2 32M Partiţia pentru boot
/dev/hda2 (swap) 512M Partiţia pentru swap
/dev/hda3 ext3 Restul discului Partiţia pentru rădăcină

Dacă vă interesează cât de mare ar trebui să fie o partiţie, sau chiar câte partiţii aveţi nevoie, citiţi mai departe. Altfel, continuaţi cu Utilizarea fdisk 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.

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.

Ca un exemplu de partiţionare, vă vom arăta unul pentru un disc de 20GO, utilizat ca un laptop demonstrativ (conţine aplicaţii server pentru web, aplicaţii server pentru mail, gnome, ...):

Cod 2.1: Exemplu de utilizarea sistemului de fişiere

Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/hda5     ext3    509M  132M  351M  28% /
/dev/hda2     ext3    5.0G  3.0G  1.8G  63% /home
/dev/hda7     ext3    7.9G  6.2G  1.3G  83% /usr
/dev/hda8     ext3   1011M  483M  477M  51% /opt
/dev/hda9     ext3    2.0G  607M  1.3G  32% /var
/dev/hda1     ext2     51M   17M   31M  36% /boot
/dev/hda6     swap    516M   12M  504M   2% <not mounted>
(Spaţiu nepartiţionat pentru utilizarea ulterioară: 2 GO)

/usr este destul de plin (83% utilizat), dar odata ce toate aplicaţiile software sunt instalate /usr nu va tinde să mai crească prea mult. Oricum, Gentoo compilează toate programele în interiorul /var/tmp/portage, deci ar trebui să aveţi /var cu cel puţin 1 GO spaţiu liber dacă nu doriţi să compilaţi programe mari, cel puţin 3 GO spaţiu liber dacă compilarea KDE şi OpenOffice.org nu reprezintă prea mult pentru dvs.

4.c. Utilizarea fdisk pentru a vă partiţiona discul

Următoarele părţi explică modul de creare a exemplului de schemă de partiţionare descris anterior, adică:

Partiţie Descriere
/dev/hda1 Partiţia pentru boot
/dev/hda2 Partiţia pentru swap
/dev/hda3 Partiţia pentru rădăcină

Schimbaţi schema de de partiţionare în concordanţă cu propriile preferinţe.

Vizualizarea Schemei de Partiţionare Curentă

fdisk este un utilitar foarte popular şi puternic pentru a vă împărţi discul în partiţii. Porniţi fdisk pentru discul dvs. (în exemplul nostru, utilizăm /dev/hda):

Cod 3.1: Lansarea fdisk

# fdisk /dev/hda

Odată ce intrăm în fdisk, veţi fi întâmpinaţi cu un prompt ce va arăta aşa:

Cod 3.2: Promptul fdisk

Command (m for help): 

Tastaţi p pentru a afişa configuraţia curentă a partiţiilor discului dvs.:

Cod 3.3: Un exemplu de configuraţie de partiţii

Command (m for help): p

Disk /dev/hda: 240 heads, 63 sectors, 2184 cylinders
Units = cylinders of 15120 * 512 bytes

Device Boot    Start       End    Blocks   Id  System
/dev/hda1             1        14    105808+  83  Linux
/dev/hda2            15        49    264600   82  Linux swap
/dev/hda3            50        70    158760   83  Linux
/dev/hda4            71      2184  15981840    5  Extended
/dev/hda5            71       209   1050808+  83  Linux
/dev/hda6           210       348   1050808+  83  Linux
/dev/hda7           349       626   2101648+  83  Linux
/dev/hda8           627       904   2101648+  83  Linux
/dev/hda9           905      2184   9676768+  83  Linux

Command (m for help): 

Acest disc este configurat să găzduiască şapte sisteme de fişiere Linux (fiecare cu o partiţie corespondentă afişată ca "Linux") precum şi o partiţie swap (afişată ca "Linux swap").

Ştergerea tuturor Partiţiilor

Mai întâi vom şterge toate partiţiile existente de pe disc. Tastaţi d pentru a şterge o partiţie. Spre exemplu, pentru a şterge o partiţie existentă /dev/hda1:

Cod 3.4: Ştergerea unei partiţii

Command (m for help): d
Partition number (1-4): 1

Partiţia a fost programată pentru ştergere. Nu va mai fi afişată dacă tastaţi p, dat nu va fi ştearsă până când schimbările nu vor fi salvate. Dacă aţi efectuat o greşeală şi doriţi să anulaţi fără să salvaţi schimbările, tastaţi q imediat şi apoi enter şi partiţiile dvs. nu vor fi şterse.

Acum, presupunând că doriţi într-adevăr să ştergeţi toate partiţiile de pe sitsemul dvs., tastaţi în mod repetat p pentru a vi se afişa tabela de partiţii şi apoi tastaţi d şi numărul partiţiei pe care doriţi să o ştergeţi. În cele din urmă, veţi termina având o tabelă de partiţie ce nu va conţine nimic:

Cod 3.5: O tabelă de partiţii goală

Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes

Device Boot    Start       End    Blocks   Id  System

Command (m for help):

Acum că tabela de partiţii din memorie este goală, suntem gata de a crea partiţiile. Vom utiliza o schemă de partiţionare implicită, aşa cum am amintit anterior. Bineînţeles, nu urmaţi aceste instrucţiuni mot-a-mot dacă nu doriţi aceeaşi schemă de partiţionare!

Crearea the Partiţiei pentru Boot

Mai întâi trebuie creată o partiţie pentru boot mică. Tastaţi n pentru a crea o nouă partiţie, apoi p pentru a selecta-o ca partiţie primară, urmat de 1 pentru a selecta prima partiţie primară. Când vi se va cere primul cilindru, apăsaţi enter. Când vi se va cere ultimul cilindru, tastaţi +32M pentru a crea o partiţie de 32 Mocteţi ca mărime:

Cod 3.6: Crearea partiţiei pentru boot

Command (m for help): n
Command action
  e   extended
  p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-3876, default 1): (Apăsaţi Enter)
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-3876, default 3876): +32M

Acum, când tastaţi p, ar trebui să vi se afişeze:

Cod 3.7: Partiţia de boot creată

Command (m for help): p

Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes

Device Boot    Start       End    Blocks   Id  System
/dev/hda1          1        14    105808+  83  Linux

Trebuie să facem această partiţie capabilă de boot. Tastaţi a pentru a activa indicatorul de boot pentru această partiţie şi apoi selectaţi 1. Dacă apăsaţi p din nou, veţi observa că un caracter * este afişat pe coloana "Boot".

Crearea Partiţiei pentru Swap

Acum, trebuie creată partiţia pentru swap. Pentru acest lucru, tastaţi n pentru o nouă partiţie, apoi p pentru a-i specifica aplicaţiei fdisk că doriţi o partiţie primară. Apoi, tastaţi 2 pentru a crea-o ca a doua partiţie primară, /dev/hda2 în cazul nostru. Când vi se va cere primul cilindru, apăsaţi enter. Când vi se va cere ultimul cilindru, tastaţi +512M pentru a crea o partiţie de mărimea a 512 MO. După ce aţi specificat acest lucru, apăsaţi t pentru a seta tipul partiţiei, 2 pentru a selecta partiţia pe care tocmai aţi creat-o, şi apoi tastaţi 82 pentru a seta tipul partiţiei ca "Linux Swap". După terminarea acestor paşi, prin tastarea p ar trebui să vi se afişeze o tabelă de partiţii similară cu aceasta:

Cod 3.8: Afişarea partiţiilor după crearea partiţiei pentru swap

Command (m for help): p

Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes

Device Boot    Start       End    Blocks   Id  System
/dev/hda1 *        1        14    105808+  83  Linux
/dev/hda2         15        81    506520   82  Linux swap

Crearea Partiţiei Rădăcină

În cele din urmă, trebuie creată partiţia rădăcină. Pentru acest lucru, tastaţi n pentru a crea o nouă partiţie, apoi p pentru a îi specifica aplicaţiei fdisk că doriţi o partiţie primară. Apoi tastaţi 3 pentru a crea-o ca treia partiţie primară, /dev/hda3 în cazul nostru. Când vi se va cere primul cilindru, apăsaţi enter. Când vi se va cere ultimul cilindru, apăsaţi enter pentru a crea o partiţie ce va ocupa restul spaţiului rămas disponibil pe discul dvs. După terminarea acestor paşi, prin tastarea p ar trebui să vi se afişeze de tabelă de partiţii similară cu aceasta:

Cod 3.9: Afişarea partiţiilor după crearea partiţiei rădăcină

Command (m for help): p

Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes

Device Boot    Start       End    Blocks   Id  System
/dev/hda1 *        1        14    105808+  83  Linux
/dev/hda2         15        81    506520   82  Linux swap
/dev/hda3         82      3876  28690200   83  Linux

Salvarea Schemei de Partiţionare

Pentru a salva schema de partiţionare şi a ieşi din fdisk, tastaţi w.

Cod 3.10: Salvarea şi ieşirea din fdisk

Command (m for help): w

Acum că partiţiile dvs. sunt create, puteţi continua cu Crearea Sistemelor de Fişiere.

4.d. 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?

Kernel-ul Linux suportă diverse sisteme de fişiere. Vom explica ext2, ext3, ReiserFS, XFS şi JFS, deoarece sunt sistemel de fişiere utilizate cel mai des pe sistemele Linux.

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. 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.

JFS este sistemul de fişiere cu jurnalizare de înaltă performanţă al IBM. A devenit gata pentru producţie şi nu există prea multe înregistrări pentru a comenta pozitiv sau negativ asupra stabilităţii generale a acestuia în acest moment.

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 mke2fs
ext3 mke2fs -j
reiserfs mkreiserfs
xfs mkfs.xfs
jfs mkfs.jfs

Spre exemplu, pentru a avea partiţia de boot (/dev/hda1 în exemplul nostru) ca ext2 şi partiţia rădăcină (/dev/hda3 în exemplul nostru) ca ext3 (ca în exemplul nostru), ar trebui să utilizaţi:

Cod 4.1: Aplicarea unui sistem de fişiere pe o partiţie

# mke2fs /dev/hda1
# mke2fs -j /dev/hda3

Acum creaţi sistemele de fişiere pe partiţiile (sau volumele logice) nou create.

Activarea Partiţiei Swap

mkswap este comanda utilizată pentru a iniţializa partiţiile swap:

Cod 4.2: Crearea unei semnături Swap

# mkswap /dev/hda2

Pentru a activa partiţia swap, utilizaţi swapon:

Cod 4.3: Activarea partiţiei swap

# swapon /dev/hda2

Creaţi şi activaţi partiţia swap acum.

4.e. 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ţiile rădăcină şi de boot:

Cod 5.1: Mount-area partiţiilor

# mount /dev/hda3 /mnt/gentoo
# mkdir /mnt/gentoo/boot
# mount /dev/hda1 /mnt/gentoo/boot

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
Sun Apr 25 16:21:18 CEST 2004

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 25 Aprilie, 16:21 a anului 2004:

Cod 1.2: Setarea datei/orei

# date 042516212004

Alegerea Dumneavoastră

Următorul pas pe care trebuie să îl urmaţi este să instalaţi arhiva tar stage aleasă, pe sistemul dumneavoastră. Aveţi opţiunea de a descărca arhiva necesară de pe Internet sau, dacă aţi boot-at de pe unul dintre LiveCD-urile Gentoo Universal, copiaţi-o de pe CD. Dacă aveţi un LiveCD Universal şi arhiva tar stage pe care doriţi să o utilizaţi este pe CD, descărcarea acesteia de pe internet reprezintă o risipă de bandă, pentru că fişierele stage sunt identice.

5.b. Implicit: Folosirea un Stage 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 2.1: Intrăm în directorul în care am montat 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 links2, ar trebui să aveţi la dispoziţie lynx. În acest caz, înlocuiţi toate apariţiile links2 din restul instrucţiunilor cu lynx.

Selectaţi directorul releases/, urmat de cel al arhitecturii folosite (de exemplu x86/) şi al versiunii Gentoo dorite (2004.2/), 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 2.2: Navigarea cu links2 spre listele de mirror-uri

(Fără proxy)   # links2 http://www.gentoo.org/main/en/mirrors.xml
(Cu proxy)   # 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 2.3: Verificarea integrităţii arhivei

# md5sum -c stage1-x86-2004.2.tar.bz2.md5
stage1-x86-2004.2.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 2.4: Despachetarea arhivei stage

# tar -xvjpf stage?-*.tar.bz2

Asiguraţi-vă că folosiţi aceleaşi opţiuni (-xvjpf). Optiunea x înseamnă Extract, v vine de la Verbose (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.c. Alternativ: Folosind o arhivă Stage de pe LiveCD

Dezarhivare Fişier Tarball 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 3.1: AFişarea tuturor fişierelor 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 3.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 montat sistemul Gentoo (de obicei în /mnt/gentoo):

Cod 3.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)! În următorul exemplu, vom extrage fişierul stage stage3-<subarch>-2004.2.tar.bz2. Asiguraţi-vă că schimbaţi numele fişierului cu cel ales de dumneavoastră.

Cod 3.4: Dezarhivarea fişierului stage

# tar -xvjpf /mnt/cdrom/stages/stage3-<subarch>-2004.2.tar.bz2

Acum, că Stage-ul este instalat, continuăm cu Instalarea Portage.

5.d. Instalarea Portage

Cu Reţea sau Fără?

Dacă nu aveţi o conexiune funcţională, va trebui să instalaţi un versiune snapshot de Portage de pe unul din suporturile LiveCD oferite. Aceasta presupune, implicit, că instalaţi dintr-o arhivă tar stage3 (deoarece este singura etapă ce suportă instalările fără suport de reţea). Dacă doriţi să folosiţi pachete precompilate ulterior, pentru a grăbi instalarea, trebuie să utilizaţi o versiune snapshot pentru portage de pe LiveCD. Alţi utilizatori vor descărca o structură Portage actualizată total, folosind emerge, ulterior în acest capitol.

Continuăm cu partea adecvată

Instalarea unei versiuni Snapshot pentru Portage si a Codului Sursă de pe LiveCD

Pe suporturile LiveCD este disponibilă o versiune Snapshot pentru Portgage. Din moment ce citiţi asta, putem să presupunem că folosiţi un asemenea LiveCD. Pentru a instala această versiune Snapshot, uitaţi-vă în /mnt/cdrom/snapshots/ pentru a vedea ce versiuni 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-20040710.tar.bz2. Asiguraţi-vă ca înlocuiţi numele cu cel al versiunii snapshot a dumneavoastră.

Cod 4.2: Extragerea unei versiuni Snapshot a Portage

# tar -xvjf /mnt/cdrom/snapshots/portage-20040710.tar.bz2 -C /mnt/gentoo/usr

Trebuie, de asemenea, să copiaţi tot codul sursă de pe CD:

Cod 6.14: Copierea codului sursă

# mkdir /mnt/gentoo/usr/portage/distfiles
# cp /mnt/cdrom/distfiles/* /mnt/gentoo/usr/portage/distfiles/

Acum că versiunea Snapshot a Portage este instalată, continuaţi cu secţiunea despre Configurarea opţiunilor de compilare.

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.

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.

Variabila CHOST defineşte ce arhitectură va fi folosită de gcc pentru a compila programele. Posibilităţile sunt:

Arhitectură Subarhitectură Setări CHOST
x86 i386 i386-pc-linux-gnu
x86 i486 i486-pc-linux-gnu
x86 i586 i586-pc-linux-gnu
x86 i686 and above (incl. athlon) i686-pc-linux-gnu
alpha alpha-unknown-linux-gnu
ppc powerpc-unknown-linux-gnu
ppc64 powerpc64-unknown-linux-gnu
sparc sparc-unknown-linux-gnu
hppa (generic) hppa-unknown-linux-gnu
hppa pa7000 hppa1.1-unknown-linux-gnu
hppa pa8000 and above hppa2.0-unknown-linux-gnu
mips mips-unknown-linux-gnu
amd64 x86_64-pc-linux-gnu

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

# Utilizatorii AMD64 ce doresc să utilizeze un sistem nativ pe 64 biţi nu ar trebui să utilizeze athlon-xp
-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"   # Utilizatorii AMD64 nu trebuie să folosească athlon-xp
CXXFLAGS="${CFLAGS}"                  # Folosiţi aceleaşi setări pentru ambele variabile

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 Instalarea Sistemului de Bază al Gentoo.

6. Instalarea Sistemului de Bază al Gentoo

6.a. Utilizarea mediului Chroot

Opţional: Alegerea Mirror-urilor

Dacă aţi boot-at de pe LiveCD-ul Gentoo, puteţi folosi utilitarul mirrorselect pentru a actualiza /etc/make.conf, astfel încât să fie folosite cele mai rapide mirror-uri, atât pentru Portage, cât si pentru codul sursă (bineînţeles, în cazul în care aveţi o legatură la internet funcţională):

Atenţie: O eroare din mirrorselect ar putea să adauge text nedorit după definiţia GENTOO_MIRRORS. Vă rugăm să deschideţi /mnt/gentoo/etc/make.conf şi să ştergeţi acest text de la sfărşitul definiţiei GENTOO_MIRRORS, dacă este cazul.

Cod 1.1: Alegerea mirror-urilor

# mirrorselect -a -s4 -o | grep 'GENTOO_MIRRORS=' >> /mnt/gentoo/etc/make.conf

Dacă, dintr-un anumit motiv, mirrorselect returnează eroare, nu vă îngrijoraţi. Acest pas este, în totalitate, opţional, valoarile implicite fiind suficiente.

Precizarea Informaţiilor despre DNS

A rămas un singur lucru de făcut, înainte să putem intra noul mediu şi anume trebuie să copiem informaţiile despre DNS în /etc/resolv.conf. Trebuie să facem asta, pentru a fi siguri că reţeaua funcţionează, chiar şi după ce intrăm în noul mediu. /etc/resolv.conf conţine serverele DNS pentru reţeaua noastră.

Cod 1.2: Copierea informaţiilor despre DNS

(Opţiunea "-L" ne asigură că nu copiem un link simbolic)
# cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf

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.3: Mount-area /proc

# mount -t proc none /mnt/gentoo/proc

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.4: 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 :-)

Opţional: Actualizarea Structurii Portage

Dacă nu aţi instalat o imagine a structurii Portage pe parcursul capitolului trecut, trebuie să descărcaţi o imagine recenta a acestuia de pe Internet. emerge --sync face exact acest lucru pentru dumneavoastră. Ceilalţi utilizatori pot omite acest pas si să continue cu Configurarea variabilei USE.

Cod 1.5: Actualizarea structurii Portage

# emerge sync

Portage utilizează protocolul RSYNC pentru actualizarea structurii Portage. În cazul în care comanda anterioară eşuează din cauze legate de firewall, utilizaţi emerge-webrsync ce vă descarcă şi instalează o versiune shapshot de Portage utilizând protocolul obişnuit HTTP.

Cod 1.6: Actualizarea structurii Portage cu emerge-webrsync

# emerge-webrsync

Dacă sunteţi anunţat că o versiune mai nouă a Portage este disponibilă şi că ar trebui să o actualizaţi, puteţi, fară grijă, să ignoraţi acest mesaj. Portage va fi actualizat pentru dumneavoastră, mai târziu, pe parcursul instalării.

Configurarea variabilei 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.

Setările USE implicite, se află în /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 1.7: Vizualizarea indicatorilor USE existenţi

# less /usr/portage/profiles/use.desc
(Puteţi derula utilizând tastele săgeţi şi să ieşiţi prin apăsarea 'q')

Drept exemplu, vă prezentăm setările unui sistem bazat pe KDE, cu suport DVD, ALSA si CD-Recording.

Cod 1.8: Deschidem /etc/make.conf

# nano -w /etc/make.conf

Cod 1.9: Setările USE

USE="-gtk -gnome qt kde dvd alsa cdr"

Probabil că veţi utiliza una sau poate două locaizări pe sistemul dvs. Până acum, după compilarea glibc un set complet de localizări este creat. Începând de acum, activaţi indicatorul USE userlocales şi specificaţi doar localizările necesare în /etc/locales.build.

Cod 1.10: Activaţi indicatorul USE userlocales special pentru glibc

# mkdir /etc/portage
# echo "sys-libs/glibc userlocales" >> /etc/portage/package.use

Acum specificaţi ce localizări doriţi să utilizaţi:

Cod 3.18: nano -w /etc/locales.build

en_US/ISO-8859-1
en_US.UTF-8/UTF-8
de_DE/ISO-8859-1
de_DE@euro/ISO-8859-15

Opţional: Folosirea Compilării Distribuite

Dacă doriţi să folosiţi o colecţie de modalităţi, pentru a vă compila sistemul, aţi putea arunca o privire asupra Ghid DistCC. Prin folosirea distcc puteţi beneficia de puterea de procesare a mai multor sisteme care să vă ajute la instalare.

6.b. Diferenţele între Stage1, Stage2 şi Stage3

Acum luaţi loc şi gândiţi-vă la paşii precedenţi. V-am cerut să selectaţi unul dintre stage1, stage2 sau stage3 şi v-am avertizat că alegerea facută are mare importanţă pentru paşii ce vor urma. Ei bine, acesta este primul loc in care alegerea făcută defineşte pasii ce vor urma.

6.c. Parcurgerea de la Stage1 la Stage2

Introducere în Bootstrapping

Aşadar, vreţi să compilaţi totul de la zero? Bine, atunci :-)

La acest pas, vom efectua operaţia de bootstrap sistemului dumneavoastă Gentoo. Acest proces durează mult timp, dar rezultatul este un sistem complet optimizat pentru nevoile caracteristice maşinii dumneavoastră.

Operaţia de Bootstrapping înseamnă a construi GNU C Library, GNU C Compiler Collection şi multe alte programe cheie ale sistemului.

Înainte de a începe acţiunea bootstrap asupra sistemului, vă prezentăm o listă de opţiuni pe care s-ar putea sau nu, să le vreţi. Dacă vreţi să le citiţi, continuaţi cu Procesul Bootstrap al Sistemului.

Opţional: Descărcarea Surselor, mai întâi

Dacă nu aţi copiat, până acum, sursele, atunci scriptul de bootstrap va descărca toate fişierele necesare. Va face asta, fără a vă anunţa că nu va merge decât dacă aveţi o conexiune de reţea activă :-) Dacă vreţi să descărcaţi sursele mai întâi şi să continuaţi procesul bootstrap al sistemului ulterior (de exemplu pentru că nu vreţi să aveţi o conexiune deschisă în timpul compilării), atunci folosiţi opţiunea -f a scriptului bootstrap, care va descărca (fetch - asocierea cu litera f) toate sursele pentru dumneavoastră.

Cod 3.1: Descărcarea surselor necesare

# cd /usr/portage
# scripts/bootstrap.sh -f

Procesul Bootstrap al Sistemului

Bine atunci, luaţi tastatura şi scrieţi următoarele comenzi pentru a începe procesul bootstrap. Apoi mergeţi şi distraţi-vă cu altceva, pentru că acest proces va dura ceva timp până se va sfârşi.

Cod 3.2: Procesul Bootstrap al Sistemului

# cd /usr/portage
# scripts/bootstrap.sh

Acum vom continua cu următoarea etapă, Parcurgerea de la Stage2 la Stage3

6.d. Parcurgerea de la Stage2 la Stage3

Introducere

Dacă citiţi această secţiune, înseamna că aţi implementat sistemul (ori pentru că l-aţi implementat în prealabil, ori că folosiţi stage2). Atunci este timpul să construim toate pachetele sistemului.

Toate pachele sistemului? Nu, nu chiar. În această etapă, veţi construi acele pachete ale căror alternativă nu există. Unele pachete de sistem au mai multe alternative (ca sistemele pentru log-uri) şi cum Gentoo se bazează pe alternative, nu vrem să vă impunem unul.

Opţional: Vizualizarea a ceea ce se va întâmpla

Dacă vreţi să ştiţi ce pachete vor fi instalate, executaţi emerge --pretend. Această comandă va afişa o lista cu ceea ce va fi construit. Pentru că această listă este destul de mare, ar trebui să folositi un sistem de paginare ca less sau more pentru a naviga în sus sau în jos prin listă.

Cod 4.1: Vizualizarea a ceea ce 'emerge system' va face

# emerge --pretend system | less

Opţional: Descărcarea surselor

Dacă doriţi ca emerge să descarce sursele înainte să continuaţi (de exemplu pentru că nu vreţi ca şi conexiunea să fie lăsată deschisă pe parcursul construitii pachetelor), puteţi folosi opţiunea --fetchonly a comenzii emerge, care va descărca sursele pentru dumneavoastră.

Cod 4.2: Descărcarea surselor în sistem

# emerge --fetchonly system

Construirea sistemului

Pentru a începe construirea sistemului, executaţi emerge system. Apoi mergeţi şi găsiţi-vă de lucru, pentru că această etapa durează foarte mult până la sfârşit.

Cod 4.3: Construirea Sistemului

# emerge system

Puteţi, deocamdată, să ignoraţi orice avertisment în legătură cu fişierele de configurare actualizate (şi execuţia etc-update). Când sistemul dumneavoastră Gentoo este instalat în totalitate şi boot-at, citiţi documentaţia noastră despre Configurarea Protecţiei Fişierelor.

Când procesul de construire a sistemului a luat sfârşit, continuaţi cu Configurarea Kernel-ului.

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
(Presupunănd că doriţi să utilizaţi GMT)
# ln -sf /usr/share/zoneinfo/GMT /etc/localtime

2.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 sistemele bazate pe arhitectura x86 vă oferim, alături de alte surse de kernel, vanilla-sources (sursele de kernel implicite dezvoltate de programatorii de kernel linux), gentoo-sources (sursele de kernel 2.4 ce conţin patch-uri pentru îmbunătăţirea performanţei), gentoo-dev-sources (sursele de kernel v2.6 ce conţin pacth-uri pentru îmbunătăţirea performanţei), development-sources (sursele de kernel vanilla 2.6), ...

Dacă efectuaţi o instalare fără reţea, alegerea surselor de kernel va fi limitată la cele oferite pe CD. Pentru versiunea 2004.2, acestea sunt:

  • gentoo-sources
  • vanilla-sources
  • gentoo-dev-sources
  • development-sources

Alegeţi sursele de kernel şi instalaţi-le utilizând emerge.

Cod 2.1: Instalarea unor surse de kernel

# emerge gentoo-sources

Când vă veţi uita în /usr/src ar trebui să vedeţi un symlink numit linux, ce indică spre sursa kernel-ului dvs.:

Cod 2.2: Vizualizare symlink sursă kernel

# ls -l /usr/src/linux
lrwxrwxrwx    1 root     root           12 Oct 13 11:04 /usr/src/linux -> linux-2.4.26-gentoo-r6

Dacă acesta nu este cazul dvs. (ex: symlink-ul indică spre o altă sursă kernel) modificaţi symlink-ul înainte de a continua:

Cod 2.3: Modificarea symlink-ului sursei kernel-ului

# rm /usr/src/linux
# cd /usr/src
# ln -s linux-2.4.26-gentoo-r6 linux

Acum este timpul să configurăm şi să compilăm sursa kernel. Toate arhitecturile pot folosi genkernel pentru asta, care vă va construi un kernel generic aşa cum este folosit pe LiveCD. Vom explica configurarea manuală, totuşi, fiind cea mai bună cale de a vă optimiza sistemul.

Dacă doriţi să vă configuraţi manual kernel-ul, continuaţi acum cu Implicit: Configurarea Manuală. Dacă doriţi să utilizaţi genkernel, ar trebui să citiţi 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 vizualizarea conţinutului /proc/pci (sau prin folosirea lspci, dacă există). De asemenea, puteţi rula lspci pentru a vizualiza modulele kernel-ului folosit de LiveCD (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

Code maturity level options --->
  [*] Prompt for development and/or incomplete code/drivers

Asiguraţi-vă compilarea kernel-ului dvs. cu familia de procesoare corectă:

Cod 3.3: Selectarea familiei de procesoare corectă

Processor type and features --->
  (Schimbaţi în concordanţă cu sistemul dvs.)
  (Athlon/Duron/K7) Processor family

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, proc file system, /dev file system + Automatically mount at boot:

Cod 3.4: Selectarea sistemelor de fişiere necesare

(În cazul unui kernel 2.4.x)
File systems --->
  [*] Virtual memory file system support (former shm fs)
  [*] /proc file system support
  [*] /dev file system support (EXPERIMENTAL)
  [*]   Automatically mount at boot
  [ ] /dev/pts file system for Unix98 PTYs

(În cazul unui kernel 2.6.x)
File systems --->
  Pseudo Filesystems --->
    [*] /proc file system support
    [*] /dev file system support (OBSOLETE)
    [*]   Automatically mount at boot
    [*] Virtual memory file system support (former shm fs)

(Selectaţi una sau mai multe dintre opţiunile următoare, după necesităţile sistemului)
  <*> Reiserfs support
  <*> Ext3 journalling file system support
  <*> JFS filesystem support
  <*> Second extended fs support
  <*> XFS filesystem support

Dacă BIOS-ul dvs. nu poate manipula harddisk-uri mari, şi aţi utilizat elemente de contact pentru ca dispozitivul să raporteze o mărime limitată, trebuie să activaţi următoarea opţiune pentru a avea acces la întregul harddisk:

Cod 3.5: Selectarea suportului pentru redimensionare automată a geometriei

(Doar în cazul versiunii 2.4.x de kernel)
ATA/IDE/MFM/RLL support --->
  IDE, ATA and ATAPI Block devices --->
    <*>   Include IDE/ATA-2 DISK support
    [ ]     Use multi-mode by default
    [*]     Auto-Geometry Resizing 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.6: Selectarea driverelor PPPoE necesare

(În cazul unui kernel 2.4.x)
Network device support --->
  <*> PPP (point-to-point protocol) support
  <*>   PPP support for async serial ports
  <*>   PPP support for sync tty ports

(În cazul unui kernel 2.6.x)
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 sa folosească modul PPPoE.

Dacă o doriţi, nu uitaţi să includeţi suport in kernel pentru placa de reţea.

Dacă deţineţi un procesor Intel ce suportă HyperThreading (tm), sau aveţi un sistem multiprocesor, ar trebui să activaţi "Symmetric multi-processing support":

Cod 3.18: Activarea suportului SMP

Processor type and features  --->
  [*] Symmetric multi-processing support

Dacă utilizaţi Dispozitive de Intrare pe portul USB (cum ar fi tastatura sau mouse-ul), nu uitaţi să le activaţi şi pe acestea:

Cod 4.14: Activarea suportului USB pentru dispozitive de intrare

USB Support --->
  <*>   USB Human Interface Device (full HID) support

Utilizatorii de laptop ce doresc suport PCMCIA, nu ar trebui să utilizeze driverele PCMCIA dacă doresc să utilizeze un kernel 2.4. Cele mai recente drivere sunt disponibile prin intermediul pachetului pcmcia-cs ce va fi instalat mai târziu. Totuşi, utilizatorii versiunii 2.6 de kernel, ar trebui să selecteze driverele PCMCIA din kernel.

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 rulaţi make dep && make bzImage modules modules_install:

Cod 3.9: Compilarea kernel-ului

(Pentru kernel 2.4)
# make dep && make bzImage modules modules_install

(Pentru kernel 2.6)
# make && make modules_install

Când compilarea s-a terminat, copiaţi imaginea de kernel în directorul /boot. Începând de-aici, vom presupune că versiunea de kernel pe care o instalaţi este versiunea 2.4.26 a surselor gentoo-sources. Utilizaţi ce nume consideraţi potrivit pentru alegerea efectuată şi notaţi-l pentru că veţi avea nevoie de el ulterior când veţi configura aplicaţia bootloader.

Cod 3.10: Instalarea kernel-ului

# cp arch/i386/boot/bzImage /boot/kernel-2.4.26-gentoo-r6
# cp System.map /boot/System.map-2.4.26-gentoo-r6

Este, de asemenea, recomandat să vă copiaţi fişierul de configurare a kernel-ului în /boot, pentru orice eventualitate :)

Cod 6.14: Back-up pentru fişierul de configurare al kernel-ului

# cp .config /boot/config-2.4.26-gentoo-r6

Acum, continuaţi cu Instalarea de Module Separate de Kernel.

7.d. 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 LiveCD-ului. 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 LiveCD-ul. 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 4.1: Instalarea genkernel

# emerge genkernel

Acum, compilaţi sursa kernel-ului rulând genkernel 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).

Cod 4.2: Running genkernel

# genkernel 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 boot-loader-ul. 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 LiveCD) înainte ca "adevăratul" sistem să pornească.

Cod 4.3: 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 LiveCD-ul -- să instalăm hotplug. În timp ce initrd autodetectează componentele hardware necesare procesului de boot, hotplug detectează tot ceea ce rămâne. Pentru a instala şi a activa hotplug, scrieţi:

Cod 4.4: Instalarea şi activarea hotplug

# emerge hotplug
# rc-update add hotplug default

7.e. Instalarea de Module Separate de Kernel

Instalarea Modulelor Adiţionale

Dacă este cazul, va trebui să instalaţi pachetele pentru orice componentă hardware prezentă în sistemul dvs. Urmează o listă cu pachetele legate de kernel pe care le-aţi putea instala:

Pachet Scop Commandă
nvidia-kernel Grafică NVIDIA accelerată pentru xorg-x11 emerge nvidia-kernel
nforce-audio Sunet On-board prezent pe plăcile NVIDIA NForce(2) emerge nforce-audio
e100 Plăci de reţea Intel e100 Fast Ethernet emerge e100
e1000 Plăci de reţea Intel e1000 Gigabit Ethernet emerge e1000
emu10k1 Suport pentru Creative Sound Blaster Live!/Audigy (doar pentru versiunile 2.4 de kernel) emerge emu10k1
ati-drivers Grafică ATI Radeon 8500+/FireGL accelerată pentru xorg-x11 emerge ati-drivers
ati-drivers-extra Utilitare grafice ATI emerge ati-drivers-extra

Notaţi, totuşi, unele din aceste pachete pot avea multe dependenţe. Pentru a verifica ce pachete vor fi instalate alături de instalarea acestor pachete, utilizaţi emerge --pretend. Spre exemplu, pentru pachetul emu10k1:

Cod 5.1: Vizualizarea întregii liste de pachete

# emerge --pretend emu10k1

Dacă nu doriţi pachetele care se doresc instalate, utilizaţi emerge --pretend --verbose pentru a analiza ce indicatori USE sunt verificaţi în momentul deciderii dependenţelor:

Cod 5.2: Vizualizarea utilizării indicatorilor USE

# emerge --pretend --verbose emu10k1
...
[ebuild  N    ] media-sound/aumix-2.8  +gpm +nls +gtk +gnome +alsa -gtk2

În exemplul anterior, puteţi observa că una din dependenţele pachetului emu10k1 (aumix) utilizează gtk şi gnome ca indicatori USE, determinând ca gtk (ce depinde de xorg-x11) să fie compilat cu acesta.

Dacă nu doriţi toate acestea să fie compilate, deselectaţi toţi indicatorii USE, spre exemplu:

Cod 5.3: Instalarea emu10k1 cu toţi indicatorii USE deselectaţi

# USE="-gpm -nls -gtk -gnome -alsa" emerge --pretend emu10k1

Dacă sunteţi mulţumit de rezultat, înlăturaţi parametrul --pretend pentru a porni instalarea emu10k1.

Configurarea Modulelor

Va trebui să enumeraţi toate modulele, care vreţi să fie încărcate automat, în /etc/modules.autoload.d/kernel-2.4 (sau 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 5.4: 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.4 sau kernel-2.6 şi scrieţi numele modulului în el.

Cod 5.5: Editarea /etc/modules.autoload.d/kernel-2.4

(Example for 2.4 kernels)
# nano -w /etc/modules.autoload.d/kernel-2.4

Cod 5.6: /etc/modules.autoload.d/kernel-2.4 sau kernel-2.6

3c59x

Acum executaţi modules-update pentru a actualiza modificările făcute în fişierul /etc/modules.conf.

Cod 5.7: Rularea modules-update

# modules-update

Continuaţi instalarea cu Configurarea Sistemului.

8. Configurarea Sistemului

4.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    noauto,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

Dacă aveţi nevoie de usbfs, adăugaţi următoarea linie in /etc/fstab:

Cod 1.7: Adăugarea unui sistem de fişiere usbfs pentru /etc/fstab

none        /proc/bus/usb   usbfs         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

(Pentru DHCP)
iface_eth0="dhcp"
# Unii administratori de reţea cer utilizarea setărilor
# hostname şi domainname distribuite de server-ul DHCP.
# În acel caz, adăugaţi ceea ce urmează pentru a fi utilizat de către dhcpcd.
# Aceasta va suprascrie definiţiile proprii pentru hostname şi domainname.
dhcpcd_eth0="-HD"
# Dacă intenţionaţi să utilizaţi NTP pentru a menţine ceasul maşinii sincronizat, utilizaţi
# opţiunea -N pentru a preveni ca dhcpcd să vă suprascrie fişierul /etc/ntp.conf
dhcpcd_eth0="-N"

(Pentru IP static)
iface_eth0="192.168.0.2 broadcast 192.168.0.255 netmask 255.255.255.0"
gateway="eth0/192.168.0.1"

(Pentru rp-pppoe)
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.homenetwork:

Cod 2.12: exemplu /etc/hosts pentru calculatoare singure în reţea, sau care se bazează complet pe serverul DNS

127.0.0.1     tux.homenetwork tux localhost

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). USE="-X" este necesar pentru a nu instala xorg-x11 în acest moment:

Cod 2.13: Instalarea pcmcia-cs

# USE="-X" 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

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

9.a. System Logger

Când am menţionat ce este stage3 am speificat că acesta conţine tot sistemul de instrumente necesar pentru care nu putem asigura o alegere în locul utilizatorilor noştri. Tot atunci am spus că vom instala celelalte instrumente mai tărziu. Adică acum. :)

Primul instrument pentru care trebuie să te decizi, trebuie să asigure facilităţi de logare pentru sistemul tau. 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 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ă vă hotărâţi, alegeţi metalog deoarece este foarte solid şi are o configuraţie implicită foarte bună.

Atenţie: Arhivele tar stage3 din versiunea 2004.2, din cauza unei erori, conţine sistemul de logare sysklogd. Va trebui să-l dezinstalaţi pe acesta înaintea instalării unuia nou.

Cod 1.1: Installing a system logger

(Mai întâi dezinstalaţi sistemul sysklogd dacă folosiţi o arhiva tar stage3)
# emerge unmerge sysklogd
(De asemenea, va trebui să ştergeţi script-ul de iniţializare sysklogd)
# rm /etc/init.d/sysklogd

(Acum, instalaţi sistemul de logare ales)
# emerge metalog
# rc-update add metalog 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).

Gentoo oferă trei posibili cron daemons: dcron, fcron şi vixie-cron. Instalarea unuia dintre ei este identică cu instalarea sistemului de logare. Totuşi, dcron şi fcron cer o configurare specială, numită crontab /etc/crontab. Dacă nu ştiţi ce să alegeţi folosiţi vixie-cron.

Noi vă oferim 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
(Numai dacă ai ales dcron sau fcron) # crontab /etc/crontab

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.

Notă: Dacă nu instalaţi Gentoo, utilizând profile cascadate, slocate va fi prezent deja în sistemul dvs. Profilele cascadate nu sunt utilizate implicit, deci, daca nu înţelegeţi terminologia puteţi presupune că nu utilizaţi profile cascadate.

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:

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 Bootloader-ului.

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!

Notă: Dacă nu instalaţi Gentoo utilizând profile cascadate, dhcpcd va fi deja instalat în sistem. Profilele cascadate nu sunt utilizate implicit, deci, daca nu înţelegeţi terminologia puteţi presupune că nu utilizaţi profile cascadate.

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 Bootloader-ului.

10. Configurarea Bootloader-ului

5.a. Alegerea

Introducere

Acum, că kernel-ul este configurat şi compilat şi fişierele de configurare 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. Pentru arhitectura x86, Gentoo Linux oferă GRUB şi LILO. Dar, înainte de a instala unul dintre aceste aplicaţii bootloader, vă vom informa cum să configuraţi framebuffer-ul (presupunând că doriţi acest lucru, bineînţeles). Cu framebuffer puteţi rula linia de comandă Linux beneficiind de unele caracteristici (limitate) grafice (cum ar fi utilizarea imaginii bootsplash pe care Gentoo o oferă).

Opţional: Framebuffer

Dacă v-aţi configurat kernel-ul cu suport pentru framebuffer (sau aţi utilizat configuraţia implicită din genkernel), trebuie să adăugaţi opţiunea vga sau video în fişerul de configurare al aplicaţiei bootloader dacă doriţi framebuffer. Prima opţiune este pentru versiunile 2.4 de kernel în timp ce al ultimul este pentru versiunile 2.6 de kernel. Următorul tabel afişează valorile disponibile ale variabilei vga pe care le puteţi utiliza. În exemplele de fişiere de configurare vom utiliza 800x600 @ 16bpp pentru versiunile 2.4 de kernel, deci 788.

Pentru opţiunea vga:

640x480 800x600 1024x768 1280x1024
8 bpp 769 771 773 775
16 bpp 785 788 791 794
32 bpp 786 789 792 795

Pentru opţiunea video este utilizată o sintaxă simplificată. În cele mai multe cazuri este suficientă utilizarea video=vesafb.

Mai multe informaţii pot fi găsite în /usr/src/linux/Documentation/fb/vesafb.txt.

Amintiţi-vă (sau notaţi) valoarea aleasă; veţi avea nevoie de ea ulterior.

Acum, continuaţi cu instalarea GRUB sau LILO.

10.b. Implicit: Utilizarea GRUB

Înţelegerea terminologiei implementată în GRUB

Cea mai critcă parte în procesul de înţelegere a aplicaţiei GRUB este familiarizarea cu modul cum acesta se referă la harddisk-uri şi partiţii. Partiţia dvs. de Linux /dev/hda1 este referită în GRUB ca (hd0,0). Atenţie la parantezele din jurul hd0,0 - sunt necesare.

Drive-urile de harddisk sunt numerotate de la zero în loc de "a" şi partiţiile incep de la zero în loc de unu. Atenţie, din nou, cu faptul că doar drive-urile de harddisk-uri sunt numerotate, nu şi dispozitivele non-atapi cum ar fi dispozitivele cdrom şi cele de înregistrat cd-uri. De asemenea, aceeaşi referire există şi pentru drive-urile scsi. (Normal, ele sunt numerotate până la numere mai mari decât drive-urile ide, exceptând cazul când bios-ul este configurat să boot-eze de pe dispozitivele scsi.)

Presupunând că aveţi un hard-disk pe /dev/hda, un cdrom pe /dev/hdb, un cdwriter pe /dev/hdc, un al doilea hard-disk pe /dev/hdd şi nici un hard-disk SCSI, atunci /dev/hdd7 devine pentru GRUB (hd1,6). Ar putea părea înşelător şi chiar este, dar aşa cum vom vedea, GRUB-ul oferă un mecanism de completare cu tab la îndemâna celor care au multe hard-disk-uri şi partiţii şi din acastă cauză s-au pierdut în schema de numerotare a GRUB-ului.

Obişnuindu-ne cu ideea, este timpul să începem instalarea GRUB-ului.

Instalarea GRUB

Pentru a instala GRUB-ul, trebuie mai întâi sa daţi comanda emerge.

Cod 2.1: Instalarea GRUB

# emerge grub

Deşi GRUB este acum instalat, tot mai trebuie să îi scriem un fişier de configurare şi să-l instalăm în zona MBR pentru ca GRUB să boot-eze automat în noul kernel creat. Creaţi /boot/grub/grub.conf cu nano (sau, dacă este cazul, cu alt editor):

Cod 2.2: Crearea /boot/grub/grub.conf

# nano -w /boot/grub/grub.conf

Acum vom scrie un fişier grub.conf. Mai jos, veţi regăsi două fişiere grub.conf pentru exemplul de partiţionare utilizat în acest ghid, cu imaginea de kernel kernel-2.4.26-gentoo-r6. Doar primul fişier grub.conf a fost comentat intensiv. Aveţi grijă să utilizaţi imaginea dvs. de kernel şi, dacă este cazul, imaginea dvs. initrd.

  • Primul fişier grub.conf este pentru persoanele care nu au utilizat genkernel pentru a-şi construi kernel-ul
  • Al doilea fişier grub.conf este pentru persoanele care au utilizat genkernel pentru a-şi construi kernel-ul

Cod 2.3: grub.conf pentru utilizatorii care nu au folosit genkernel

# Care intrare să boot-exe implicit. 0 este prima, 1 este a doua, etc.
default 0
# Câte secunde să aştepte înainte de a încărca intrarea implicită.
timeout 30
# O imagine splash drăguţă pentru a colora situaţia :)
# Comentaţi dacă nu aveţi o placă grafică instalată
splashimage=(hd0,0)/grub/splash.xpm.gz

title=Gentoo Linux 2.4.26-r6
# Partiţia unde se află imaginea de kernel (sau sistemul de operare)
root (hd0,0)
kernel /kernel-2.4.26-gentoo-r6 root=/dev/hda3

# Următoarele patru linii sunt numai dacă utilizaţi dualboot cu un sistem Windows.
# În acest caz, Windows se află pe /dev/hda6.
title=Windows XP
rootnoverify (hd0,5)
makeactive
chainloader +1

Cod 2.4: grub.conf pentru utilizatorii genkernel

default 0
timeout 30
splashimage=(hd0,0)/grub/splash.xpm.gz

title=Gentoo Linux 2.4.26-r6
root (hd0,0)
kernel /kernel-2.4.26-gentoo-r6 root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/hda3
initrd /initrd-2.4.26-gentoo-r6

# Doar în cazul în care utilizaţi dual-boot
title=Windows XP
root (hd0,5)
makeactive
chainloader +1

Notă: Dacă utilizaţi o schemă de partiţionare şi/sau imagine de kernel diferită, modificaţi în consecinţă. Oricum, asiguraţi-vă că orice precedă un device GRUB (cum ar fi (hd0,0)) este relativ la mount point nu la rădăcină. Cu alte cuvinte, (hd0,0)/grub/splash.xpm.gz este în realitate /boot/grub/splash.xpm.gz deoarece (hd0,0) este /boot.

Dacă doriţi să introduceţi opţiuni adiţionale pentru kernel, adăugaţi-le la sfârşitul comenzii kernel. Deja avem o opţiune (root=/dev/hda3 sau real_root=/dev/hda3), dar puteţi introduce şi altele, de asemenea. Ca un exemplu, vom utiliza parametrul vga pentru framebuffer, ca mai sus:

Cod 2.5: Adăugarea parametrului vga ca opţiune de kernel

title=Gentoo Linux 2.4.26-r6
  root (hd0,0)
  kernel /kernel-2.4.26-gentoo-r6 root=/dev/hda3 vga=788

Dacă utilizaţi o versiune de kernel 2.6.7 sau mai nouă şi aţi modificat contactele pe hard-disk pentru că BIOS-ul dvs. nu poate manipula discuri mari, va trebui să adăugaţi opţiunea hdx=stroke.

Utilizatorii genkernel ar trebui să ştie că kernel-urile lor utilizează aceleaşi opţiuni folosite pentru LiveCD. Spre exemplu, dacă aveţi dispozitive SCSI, ar trebui să adăugaţi doscsi ca opţiune de kernel.

Acum salvaţi fişierul grub.conf şi ieşiţi. Tot mai trebuie să instalăm GRUB în zona MBR (Master Boot Record) pentru ca acesta să fie încărcat automat la pornirea sistemului.

Dezvoltatorii GRUB ne recomandă să utilizăm grub-install. Totuşi, dacă dintr-un motiv grub-install nu funcţionează corect, tot mai aveţi soluţia să instalaţi GRUB manual.

Continuaţi cu Implicit: Setarea GRUB Utilizând grub-install sau Alternativ: Setarea GRUB Utilizând Instrucţiuni Manuale.

Implicit: Setarea GRUB utilizând grub-install

Pentru a instala GRUB trebuie să rulaţi comanda grub-install. Totuşi, grub-install nu va funcţiona ca la carte pentru că ne aflăm într-un mediu chroot. Trebuie să actualizăm /etc/mtab (fişierul ce conţine informaţia despre toate sistemele de fişiere mount-ate) mai întâi: din fericire, există o soluţie simplă pentru a reliaza acest pas - trebuie doar să copiaţi /proc/mounts ca /etc/mtab:

Cod 2.6: Actualizarea /etc/mtab

# cp /proc/mounts /etc/mtab

Acum, puteţi instala grub, utilizând grub-install:

Cod 2.7: Rularea grub-install

# grub-install --root-directory=/boot /dev/hda

Dacă aveţi mai multe întrebări cu privire la GRUB, vă rugăm să consultaţi documentul despre Întrebări Frecvente despre GRUB sau Manualul GRUB.

Continuaţi cu Repornirea Sistemului.

Alternativ: Setarea GRUB Utilizând Instrucţiuni Manuale

Pentru a începe configurarea GRUB, tastaţi grub. Vi se va afişa grub>, linia de comandă a grub. Acum, trebuie să tastaţi comenzile potrivite pentru a instala GRUB pe disc.

Cod 2.8: Rularea GRUB shell

# grub

Notă: Dacă sistemul dvs. nu are dispozitive floppy, adăugaţi opţiunea --no-floppy comenzii de mai sus pentru a preveni grub să probeze dispozitivele floppy (neexistente).

În configuraţia exemplu, vrem să instalăm GRUB pentru a îl determina să citească informaţia de pe partiţia de boot /dev/hda1 şi să instaleze înregistrarea de boot GRUB în zona MBR (Master Boot Record) a discului, pentru ca primul lucru afişat în momentul pornirii sistemului să fie promptul GRUB. Bineînţeles, dacă nu aţi urmat configuraţia exemplu din timpul instalării, schimbaţi comenzile în concordanţă.

Mecanismul de completare prin tab a aplicaţiei GRUB poate fi utilizat pentru a-l instala. Spre exemplu, dacă tastaţi "root (" urmat de un TAB, vi se va afişa o listă de dispozitive (cum ar fi hd0). Dacă tastaţi "root (hd0," urmat de un TAB, vi se va afişa o listă cu partiţiile disponibile din care să alegeţi (cum ar fi hd0,0).

Prin utilizarea completării cu tab, setarea GRUB nu ar trebui să fie aşa de complicată. Acum, haideţi, configuraţi GRUB, da? :-)

Cod 2.9: Instalarea GRUB în zona MBR

grub> root (hd0,0)          (Specificaţi unde se află partiţia dvs. /boot)
grub> setup (hd0)           (Instalaţi GRUB în zona MBR)
grub> quit                  (Ieşiţi din GRUB shell)

Notă: Dacă doriţi să instalaţi GRUB într-o anumită zonă în loc de MBR, va trebui să modificaţi comanda setup pentru a indica partiţia corespunzătoare. Spre exemplu, dacă doriţi să instalaţi GRUB în /dev/hda3, atunci comanda devine setup (hd0,2). Totuşi, puţini utilizatori doresc acest lucru.

Dacă aveţi mai multe întrebări în legătura cu GRUB, vă rugăm să consultaţi Întrebări Frecvente despre GRUB (FAQ) sau Manualul GRUB.

Continuaţi cu Repornirea Sistemului.

10.c. Alternativ: Utilizarea LILO

Instalarea LILO

LILO, (LInuxLOader) este cu adevărat cel mai încercat dintre bootloader-ele de Linux. Totuşi îi lipsesc câteva caracteristici pe care GRUB-ul le are (acesta este şi motivul pentru care GRUB-ul câştigă popularitate). Motivul pentru care LILO este în continuare folosit, este acela că pe anumite sisteme GRUB-ul nu funcţionează, iar LILO funcţionează. Desigur, mai este folosit şi pentru ca unii cunosc LILO şi vor să-l folosească în continuare. În ambele cazuri Gentoo este compatibil cu amândouă şi s-ar părea că aţi hotărât să foloseşti LILO.

Instalarea LILO este foarte uşoară; numai utilizaţi emerge.

Cod 3.1: Instalarea LILO

# emerge --usepkg lilo

Configurarea LILO

Ca să configuraţi LILO trebuie să creaţi /etc/lilo.conf. Porniţi editorului dvs. preferat (în acest handbook, folosim nano) şi creaţi fişierul.

Cod 3.2: Crearea /etc/lilo.conf

# nano -w /etc/lilo.conf

Cu câteva secţiuni în urmă v-am cerut să vă amintiţi numele kernel-image creat. În următorul exemplu lilo.conf am presupus că numele imaginii este kernel-2.4.26-gentoo-r6. De asemenea folosim schema de partiţionare din acest exemplu. Sunt două părţi separate:

  • Pentru cei care nu au folosit genkernel la compilarea kernel
  • Pentru cei care au folosit genkernel la compilarea kernel

Aveţi grijă să utilizaţi imaginea dvs. de kernel şi, dacă este cazul, imaginea dvs. initrd.

Cod 3.3: Exemplu /etc/lilo.conf

boot=/dev/hda             # Instalare LILO în MBR
prompt                    # Acordaţi utilizatorului şansa de a selecta altă secţiune
delay=50                  # Se aşteaptă cinci (5) secunde înainte de boot-area secţiunii default
default=gentoo            # După ce a trecut timpul se boot-eaza secţiunea "gentoo"
# Doar dacă folosiţi framebuffer. Altfel ştergeţi următoarea linie:
vga=788                   # Setare framebuffer. Adaptaţi la propriile cerinţe

# Pentru utilizatori non-genkernel
image=/boot/kernel-2.4.26-gentoo-r6
  label=gentoo            # Numele dat acestei secţiuni
  read-only               # încarcă un root doar cu permisiuni de citire (read-only). Nu modificaţi!
  root=/dev/hda3          # Locaţia sistemului de fişiere root

# Pentru utilizatorii genkernel
image=/boot/kernel-2.4.26-gentoo-r6
  label=gentoo
  read-only
  root=/dev/ram0
  append="init=/linuxrc ramdisk=8192 real_root=/dev/hda3"
  initrd=/boot/initrd-2.4.26-gentoo-r6

# Următoarele două linii sunt doar dacă doriţi un dual-boot cu un sistem Windows.
# În acest caz, Windows-ul este găzduit în /dev/hda6.
other=/dev/hda6
  label=windows

Notă: Dacă folosiţi o schemă de partiţionare şi/sau imagine kernel diferită, adaptaţi în consecinţă.

Dacă doriţi să adăugaţi opţiuni în plus pentru kernel, adăugaţi append la secţiune. De exemplu, vom adăuga opţiunea vga=788 pentru a activa framebuffer:

Cod 3.4: Folosirea append pentru a adăugarea opţiunilor pentru kernel

image=/boot/kernel-2.4.26-gentoo-r6
  label=gentoo
  read-only
  root=/dev/hda3
  append="vga=788"

Dacă utilizaţi o versiune de kernel 2.6.7 sau mai nouă şi aţi modificat contactele pe hard-disk pentru că BIOS-ul dvs. nu poate manipula discuri mari, va trebui să adăugaţi opţiunea hdx=stroke.

Utilizatorii genkernel trebuie să ştie că kernel-urile lor folosesc aceleaşi opţiuni la boot ca cele folosite pentru LiveCD. De exemplu, pentru un SCSI trebuie să adaugi doscsi ca opţiune kernel.

Acum salvaţi fişierul şi ieşiţi. Ca să terminaţi, trebuie să rulaţi /sbin/lilo pentru ca LILO să poată aplica /etc/lilo.conf sistemului dvs. (spre ex. să se instaleze pe hard-disk). Reţineţi faptul că va trebui să rulaţi din nou /sbin/lilo de câte ori instalaţi un nou kernel sau efectuaţi schimbări meniului!

Cod 3.5: Finalizarea instalării LILO

# /sbin/lilo

Acum, continuaţi cu Repornirea Sistemului.

10.d. Repornirea Sistemului

Ieşiţi din mediul chroot şi demount-aţi toate partiţiile. Apoi, tastaţi comanda magică pe care aţi aşteptat-o: reboot.

Cod 4.1: Demount-area tuturor partiţiilor şi repornirea

# exit
cdimage ~# cd
cdimage ~# umount /mnt/gentoo/boot /mnt/gentoo/proc /mnt/gentoo
cdimage ~# reboot

Bineînţeles, nu uitaţi să îndepărtaţi CD-ul boot-abil, altfel sistemul va boot-a din nou de pe CD în locul noului dvs. sistem Gentoo.

Odată repornit sistemul în instalarea dvs. Gentoo, terminaţi cu Finalizarea Instalării Gentoo.

11. Finalizarea Instalării Gentoo

11.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 acces la device-urile audio
cdrom pentru a putea acces device-urile cdrom
floppy pentru a putea acces device-urile floppy
games pentru a putea rula jocuri
usb pentru a putea accesa device-uri 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: (Parola dvs. pentru root)

# useradd -m -G users,wheel,audio,tty -s /bin/bash john
# passwd john
Password: (Introduceţi parola pentru john)
Re-enter password: (Reintroduceţi parola pentru verificare)

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: (Tastaţi parola de root)

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

(Introduceţi Gentoo Packages CD în CD-ROM)
# 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

(Dacă exista un director /mnt/cdrom/packages:)
# export PKGDIR="/mnt/cdrom/packages"

(Altfel:)
# export PKGDIR="/mnt/cdrom"

Acum copiaţi pachetele precompilate în /usr/portage/packages. Asiguraţi-vă că folosiţi aceeaşi comandă pentru copiere!

Acum, instalaţi pachetele dorite. CD-ul cu pachete conţine câteva binare precompilate, spre exemplu KDE:

Cod 2.9: 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! Contiunuă 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.

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 :)

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, actualiztă 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

Ş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.7: Ş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:

Cod 3.8: Actualizarea sistemului

# emerge --update 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.9: Actualizarea întregului sistem

# emerge --update --deep world

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.10: Efectuarea unei actualizări complete

# emerge --update --deep --newuse world

Pachetele Terminale

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, incuzâ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.11: Î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.12: 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 ultilitare 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 in diferite categorii in 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 disponbile doar pentru puţine arhitecturi. Fie aplicaţia nu rulează pe alte arhitecturi, ori mai trebuie testată, sau dezvoltatorul ce a comis aplicaţia in 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     ] gnome-base/bonobo-activation (from pkg gnome-base/libbonobo-2.4.0)

Cod 4.2: Avertisment Portage în legătură cu pachetele blocate (fără --pretend)

!!! Error: the gnome-base/bonobo-activation 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 libbonobo sau să ştergeţi, mai întâi, bonobo-activation.

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 functionează, 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 ehipei 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 pentr 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-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 si, 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, daca 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ă instalaleze 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. Un scurt extras (foarte incomplet):

Cod 1.1: Un scurt extras din descrierile indicatorilor USE disponibili

gtk     - Adaugă suport pentru x11-libs/gtk+ (The GIMP Toolkit)
gtk2    - Foloseşte gtk+-2.0.0 peste gtk+-1.2 în cazul în care programul le suportă pe amândouă.
gtkhtml - Adaugă suport pentru gnome-extra/gtkhtml
guile   - Adaugă suport pentru dev-util/guile (interpretor pentru Scheme)
icc     - Utilizează Compilatorul C++ Intel dacă pachetul suportă.
icc-pgo - Activează generarea de date sau foloseşte cu icc.
imap    - Adaugă suport pentru IMAP

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şierul /etc/make.profile/make.defaults. Să aruncăm o privire asupra acestei setări implicite:

Cod 2.1: variabila USE din /etc/make.profile/make.defaults pe un sistem x86

USE="x86 oss apm arts avi berkdb crypt cups encode foomaticdb gdbm gif gpm
     gtk gtk2 imlib jpeg kde gnome libg++ libwww mad mikmod motif mpeg ncurses
     nls oggvorbis opengl pam pdflib png python qt quicktime readline sdl
     slang 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 /etc/make.profile/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 novoie, 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 indiviadual 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

Moştenirea indicatorilo USE

Unele pachete nu depind doar de indicatorii USE, dar furnizează unii indicatori USE. Când instalaţi un asemenea pachet, inidicatorul USE furnizat este adăugat setării dvs. USE. Pentru a vizualiza o listă cu pachetele care furnizează indicatori USE, verificaţi /etc/make.profile/use.defaults:

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. Precedenţa pentru setarea USE este, ordonată după prioritate (primul are cea mai mică prioritate):

  1. Setarea USE implictă declarată în /etc/make.profile/make.defaults
  2. Setarea USE moştenită dacă un pachet din /etc/make.profile/use.defaults este instalat
  3. Setarea USE definită de utilizator în /etc/make.conf
  4. Setarea USE definită de utilizator în /etc/portage/package.use
  5. 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  N    ] net-www/mozilla-1.5-r1 +java +crypt -ipv6 -gtk2 +ssl +ldap 
+gnome -debug +mozcalendar -mozaccess -mozxmlterm -moznoirc -moznomail
-moznocompose -moznoxft 

emerge nu este singurul utilitar pentru această acţiune. De fapt, avem un utilitar dedicat informaţiilor despre pachete numit etcat ce se află în pachetul gentoolkit. Mai întâi instalaţi gentoolkit:

Cod 3.2: Instalarea gentoolkit

# emerge gentoolkit

Acum, rulaţi etcat cu argumentul uses pentru a vizualiza indicatorii USE ai unui pachet anume. Spre exemplu, pentru pachetul gnumeric:

Cod 3.3: Folosirea etcat pentru a vizualiza indicatorii USE utilizaţi

# etcat uses gnumeric
[ Colour Code : set unset ]
[ 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 ]
 - - libgda  : Adds GNU Data Access (CORBA wrapper) support for gnumeric
 - - gnomedb : 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. Î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 implcit 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 multe. Î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:

Cod 3.3: Vizualizarea statisticilor ccache

# ccache -s

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:

Cod 3.4: Editarea /etc/env.d/00basic

PATH="/usr/local/bin:/opt/bin:/usr/lib/ccache/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.

More extended support for creating prebuilt package sets can be obtained with catalyst. For more information on catalyst please read the Catalyst Reference Manual and Catalyst Howto.

Mai mult suport pentru crearea de pachete precompilate poate fi obtinut cu catalyst. Pentru mai multe informaţii despre catalyst, citiţi Manualul de Referinţă Catalyst şi Catalyst Howto.

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, inainte 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

7.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 sustemului 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 tranferată 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 2.9: 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ă conctivitatea reţelei şi single este utilizat când se repară sistemul.

Utilizarea Script-urilor de Iniţializare

Scrip-urile pe care procesul rc le porneşte sunt denumite scrip-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 3.11: 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 (in 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 unel 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() {
  (Informaţia despre dependenţe)
}

start() {
  (Comenzi necesare pentru a porni serviciul)
}

stop() {
  (Comenzi necesare pentru a opri serviciul)
}

restart() {
  (Comenzi necesare pentru a reporni serviciul)
}

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.

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    # Wait 3 seconds before starting again
  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ă ponească 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

# ls /etc/runlevels/default
acpid  domainname  local  net.eth0  netmount  postfix  syslog-ng  vixie-cron
# rc-update add acpid offline
# rc-update add domainname offline
# rc-update add local offline
# rc-update add syslog-ng offline
# rc-update add vixie-cron offline

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" in loc să definiti un al doilea nivel "default".

5. Variabile de Mediu

6.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. Aceast concept este o greşeală: 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. De aceea multe fişiere din /etc/env.d încep cu un număr.

Cod 4.14: Ordinea actualizării utilizată de env-update

         00basic        99kde-env       99local
     +-------------+----------------+-------------+
PATH="/bin:/usr/bin:/usr/kde/3.2/bin:/usr/local/bin"

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

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 la variabila PATH, dar nu doriţi ca toţi user-ii sistemului să o aibă deifnită î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

1.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 o configuraţie implicită în profilul utilizat de dvs.: /etc/make.profile/make.defaults. 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 /etc/make.profile/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 implcite 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.

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 odata cu modificarea PORTAGE_TMPDIR. Aceasta se întâmplă ca urmare a manipulării de către Portage a următoarelor variabile: BUILD_PREFIX.

Directorul pentur 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 veriabile 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şierelui 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 Portecţiei Fişierelor este disponbilă prin intermediul emerge:

Cod 3.2: Mai multe informaţii despre Configurarea Portecţ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 p 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 categriile 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ă incerce 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 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 impicită "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 in loc. Pentru a îi specifica sistemului Portage să utilizeze ramura de test, adăugaţi un ~ in faţa numelui arhitecturii dvs.

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

app-office/gnumeric

Acelaşi lucru poate fi obţinut dacă adăugaţi cuvântul cheie la sfârşitul liniei, spre exemplu pentru arhitectura x86:

Cod 2.2: 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.3: Utilizarea unei anumite versiuni pentru gnumeric

=app-office/gnumeric-1.2.13 

3.c. Utilizarea Pachetelor Mascate

Fişierul package.unmask

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 nu 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 development-sources-2.6.8.1, adăugaţi linia următoare în package.mask:

Cod 3.2: Exemplu /etc/portage/package.mask

>sys-kernel/development-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ă stocarea 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 vo 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ă, si 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:      Iesiţ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

3.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 doriti 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 /usr/portage/packages/All. Link-uri simbolice ce indică spre aceste pachete sunt stocate în /usr/portage/packages/<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.

Implicit, rsync va verifica conţinutul fişierului /etc/portage/rsync_excludes (dacă există) ce conţine categoriile sau pachetele pe care nu doriţi ca rsync să le actualizeze.

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.

1.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.

1.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 mententanţa aplicaţiilor manual, făra 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 development-sources-2.6.8.1 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/development-sources-2.6.8.1

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 sistmul 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

(Pentru un pachet binar compatibil cu Portage)
# ebuild cale/catre/ebuild package

(Pentru un pachet RPM)
# 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    (Portage însuşi)
$ man emerge     (Comanda emerge)
$ man ebuild     (Comanda ebuild)
$ man 5 ebuild   (Sintaxa fişierului ebuild)

Veţi găsi, de asemenea, informaţii în legătură cu dezvoltarea în Manualul Dezvoltatorilor.

Imprimare

Actualizat la 9 Noiembrie 2004

Această traducere nu mai este întreţinută

Sumar: Acesta este Manualul Gentoo, un efort de a centraliza informaţiile Gentoo/Linux.

Sven Vermeulen
Autor

Daniel Robbins
Autor

Chris Houser
Autor

Jerry Alexandratos
Autor

Seemant Kulleen
Dezvoltator Gentoo x86

Tavis Ormandy
Dezvoltator Gentoo Alpha

Jason Huebel
Dezvoltator Gentoo x86

Guy Martin
Dezvoltator Gentoo HPPA

Pieter Van den Abeele
Dezvoltator Gentoo PPC

Joe Kallar
Dezvoltator Gentoo SPARC

John P. Davis
Editor

Pierre-Henri Jondot
Editor

Eric Stockbridge
Editor

Rajiv Manglani
Editor

Jungmin Seo
Editor

Stoyan Zhekov
Editor

Jared Hudson
Editor

Colin Morey
Editor

Jorge Paulo
Editor

Carl Anderson
Editor

Jon Portnoy
Editor

Zack Gilburd
Editor

Jack Morgan
Editor

Benny Chuang
Editor

Erwin
Editor

Joshua Kinard
Editor

Tobias Scherbaum
Editor

Grant Goodyear
Corector

Gerald J. Normandin Jr.
Corector

Donnie Berkholz
Corector

Ken Nowack
Corector

Lars Weiler
Contribuitor

Ion Mudreac
Translator

Alin Dobre
Translator

Teddy Drăguţă
Translator

Talos Teodor
Translator

Dragoş Toma
Translator

Muntean Alex
Translator

George Nistorică
Translator

Emil Sîrbu
Translator

Donate to support our development efforts.

Copyright 2001-2013 Gentoo Foundation, Inc. Questions, Comments? Contact us.