Gentoo Logo

Pastaba : Šis dokumentas negalioja ir nebėra daugiau palaikomas.

„Gentoo Linux“ SPARC vadovas

Turinys:

  • „Gentoo“ diegimas
    Šioje dalyje jūs išmoksite kaip įdiegti „Gentoo“ jūsų sistemoje.
    1. Apie „Gentoo Linux“ diegimą
      Šis skyrius supažindina jus su diegimo būdu, aprašytu šiame vadove.
    2. Teisingų diegimo priemonių pasirinkimas
      Jūs galite įdiegti „Gentoo“ daugybe būdų. Šiame skyriuje aiškinama, kaip įdiegti „Gentoo“, naudojant minimalų diegimo CD, nors diegimas naudojant universalų diegimo CD taip pat yra galimas.
    3. Jūsų tinklo konfigūravimas
      Kad galėtumėte parsisiųsti naujausius išeities tekstus, jūs turėsite suderinti tinklą.
    4. Diskų paruošimas
      Norėdami įdiegti „Gentoo“, privalote sukurti reikalingus skirsnius. Šiame skyriuje aprašoma, kaip suskaidyti standųjį diską tolesniam naudojimui.
    5. „Gentoo“ diegimo rinkmenų diegimas
      „Gentoo“ diegimas veikia naudojant stage3 tar archyvą. Šiame skyriuje aprašomas stage3 tar archyvo išpakavimas ir „Portage“ konfigūravimas.
    6. „Gentoo“ pagrindinės sistemos diegimas
      Po stage3 diegimo ir konfigūravimo, galutinis rezultatas yra tas, kad jūs savo žinioje turite bazinę „Gentoo“ sistemą. Šiame skyriuje paaiškinama, kaip pažengti iki tokios būsenos.
    7. Branduolio konfigūravimas
      „Linux“ branduolys yra kiekvieno „Linux“ platinamojo paketo pagrindas. Šiame skyriuje aiškinama, kaip sukonfigūruoti jūsų branduolį.
    8. Sistemos konfigūravimas
      Jūs turite paredaguoti keletą svarbių konfigūracinių rinkmenų. Šiame skyriuje gausite šių rinkmenų apžvalgą ir paaiškinimą kaip tęsti.
    9. Būtinų sistemos įrankių diegimas
      Šiame skyriuje mes padėsime jums pasirinkti ir įsidiegti kai kuriuos svarbius įrankius.
    10. Įkrovos tvarkyklės konfigūravimas
      „Linux“ įkėlimui SPARC architektūra naudoja SILO įkrovos tvarkyklę. Šiame skyriuje mes pravesime jus per šios įkrovos tvarkyklės konfigūravimo jūsų reikmėms procesą.
    11. „Gentoo“ diegimo užbaigimas
      Viskas beveik jau padaryta. Mes tik sukursime vieną (ar daugiau) vartotojų jūsų sistemai.
    12. Kur eiti nuo čia?
      Dabar jūs turite savo „Gentoo“ sistemą, bet kas toliau?
  • Darbas su „Gentoo“
    Išmokite, kaip dirbti su „Gentoo“: programinės įrangos diegimas, kintamųjų keitimas, „Portage“ elgsenos keitimas ir pan.
    1. „Portage“ įvadas
      Šiame skyriuje aiškinami „paprasti“ žingsniai, kuriuos vartotojas būtinai turėtų žinoti, kad galėtų prižiūrėti savo sistemos programinę įrangą.
    2. USE vėliavėlės
      USE vėliavėlės yra labai reikšmingas „Gentoo“ aspektas. Iš šio skyriaus jūs išmoksite dirbti su USE vėliavėlėm ir suprasite kaip USE vėliavėlės sąveikauja su jūsų sistema.
    3. „Portage“ funkcijos
      Atraskite tokias „Portage“ funkcijas, kaip paskirstyto kompiliavimo palaikymas, ccache ir daugiau.
    4. Pirminio paleidimo scenarijai
      „Gentoo“ naudoja specialius pirminio paleidimo scenarijus, kurie, nepaisant kitų savybių, leidžia priklausomybių nutarimus ir virtualius pirminio paleidimo scenarijus. Šiame skyriuje aiškinami visi šie aspektai ir aiškinama, kaip elgtis su šiais scenarijais.
    5. Aplinkos kintamieji
      Naudodami „Gentoo“, jūs galite lengvai tvarkyti aplinkos kintamuosius savo sistemai. Šiame skyriuje aiškinama, kaip tai daryti, taip pat aprašomi ir dažniausiai naudojami kintamieji.
  • Darbas su „Portage“
    Šioje dalyje pateikiamas detalus „Portage“, „Gentoo“ programinės įrangos valdymo įrankio, aprašymas.
    1. Rinkmenos ir katalogai
      Jeigu norite detaliai žinoti „Portage“, jūs turite žinoti, kur ji saugo savo rinkmenas ir duomenis.
    2. Konfigūravimas per kintamuosius
      „Portage“ yra pilnai konfigūruojama per įvairius kintamuosiu, kuriuos jūs galite nustatyti konfigūracinėje rinkmenoje arba kaip aplinkos kintamąjį.
    3. Programinės įrangos atšakų maišymas
      „Gentoo“ pateikia programinę įrangą, atskirtą į keletą atšakų, priklausomai nuo stabilumo ir architektūrų palaikymo. „Programinės įrangos atšakų maišymas“ informuoja jus, kaip šios atšakos gali būti konfigūruojamos, ir kaip jūs galite individualiai nepaisyti šio atskyrimo.
    4. Papildomi „Portage“ įrankiai
      „Portage“ pateikiama su keletu papildomų įrankių, kurie gali padaryti jūsų „Gentoo“ patyrimą dar geresniu. Skaitykite toliau, kad sužinotumėte, kaip naudotis dispatch-conf ir kitais įrankiais.
    5. Nukrypimas nuo oficialaus medžio
      „Nukrypimas nuo oficialaus medžio“ pateikia jums keletą patarimų ir gudrybių kaip naudotis jūsų nuosavu „Portage“ medžiu, kaip sinchronizuoti tik tas kategorijas, kurių jūs norite, įsikelti paketus ir daugiau.
  • „Gentoo“ tinklo konfigūravimas
    Lengvai suprantamas „Gentoo“ tinklo konfigūravimo vadovas.
    1. Pradžia
    2. Papildoma konfigūracija
    3. Modulinis tinklas
    4. Belaidis tinklas
    5. Funkcionalumo pridėjimas
    6. Tinklo valdymas

A. „Gentoo“ diegimas

1. Apie „Gentoo Linux“ diegimą

1.a. Įžanga

Sveiki!

Visų pirma, sveiki atvykę į „Gentoo“. Jūs įžengsite į pasirinkimų ir galimybių pasaulį. „Gentoo“ viskas yra pasirenkama. Kai diegiate „Gentoo“, galite rinktis kelis kartus -- jūs patys galite pasirinkti, kiek jūs norite kompiliuoti, kaip norite diegti „Gentoo“, kokio sistemos žurnalizavimo įrankio jūs norite ir pan.

„Gentoo“ yra greitas, modernus „Linux“ platinamasis paketas neapkrautu ir lanksčiu dizainu. „Gentoo“ yra sukurta laisvos programinės įrangos pagrindu ir neslepia nuo vartotojų, kas yra po dangčiu. „Portage“, paketų priežiūros sistema, kurią naudoja „Gentoo“, yra parašyta „Python“ programavimo kalba, kas reiškia, kad jūs galite lengvai žiūrėti ir keisti pirminį tekstą. „Gentoo“ paketų priežiūros sistema naudoja pirminį tekstą (nors yra ir iš anksto sukompiliuotų paketų palaikymas), ir „Gentoo“ konfigūravimas vyksta naudojant įprastas tekstines rinkmenas. Kitaip tariant, atvirumas visur.

Labai svarbu, kad jūs suprastumėte, kad pasirinkimai ir yra tai, kas padeda „Gentoo“ gyvuoti. Mes stengiamės nepiršti jums nieko, ko jūs nemėgstate. Jeigu jūs jaučiate, kad mes tai darome, prašome apie tai pranešti.

Kaip sudarytas diegimas?

„Gentoo“ diegimas gali būti pavaizduotas kaip 10 veiksmų procedūra, atitinkanti 2 - 11 skyrius. Kiekvienas veiksmas pasibaigia tam tikroje būsenoje:

  • Po 1-ojo veiksmo jūs esate veikiančioje aplinkoje, parengtoje „Gentoo“ diegimui;
  • Po 2-ojo veiksmo jūsų interneto sujungimas yra paruoštas „Gentoo“ diegimui;
  • Po 3-ojo veiksmo jūsų standieji diskai yra parengti jūsų „Gentoo“ diegimui;
  • Po 4-ojo veiksmo jūsų diegimo aplinka yra parengta, ir jūs esate pasirengę pakeisti šakninį katalogą į naujosios aplinkos;
  • Po 5-ojo veiksmo yra įdiegti pagrindiniai paketai, kurie yra vienodi visuose „Gentoo“ diegimuose;
  • Po 6-ojo veiksmo jūs esate sukompiliavę savo „Linux“ branduolį;
  • Po 7-ojo veiksmo jūs esate parašę daugumą savo „Gentoo“ sistemos konfigūracinių rinkmenų;
  • Po 8-ojo veiksmo būtiniausi sistemos įrankiai (kuriuos jūs galite pasirinkti iš dailaus sąrašo) yra idiegti;
  • Po 9-ojo veiksmo jūsų pasirinkta įkrovos tvarkyklė yra įdiegta ir sukonfigūruota, ir jūs esate prisijungę į savo naująjį „Gentoo“;
  • Po 10-ojo veiksmo jūsų „Gentoo Linux“ aplinka yra parengta tyrinėjimui.

Kai jums pateikiamas koks nors pasirinkimas, mes stengiamės pateikti argumentus „už“ ir „prieš“. Mes tuomet pratęsime su numatytuoju pasirinkimu, antraštėje pažymėtu „Numatyta: “. Kitos galimybės pažymėtos „Alternatyva: “. Nemanykite, kad numatyta yra tai, ką mes rekomenduojame. Tai yra, mūsų nuomone, tai, ką naudos daugelis naudotojų.

Kartais jūs galite pasirinkti ir pasirinktiną veiksmą. Tokie veiksmai pažymėti „Pasirinktina: " ir nėra provalomi „Gentoo“ diegimui. Tačiau, kai kurie pasirinktini veiksmai yra priklausomi nuo ankstesnio jūsų pasirinkimo. Mes jus informuosime, kai taip nutiks ir kai jūs padarysite pasirinkimą, ir prieš pasirinktino veiksmo aprašymą.

Kokie yra mano pasirinkimai?

Jūs galite įdiegti „Gentoo“ daugybe skirtingų būdų. Galite parsisiųsti ir įsidiegti iš vieno iš mūsų diegimo kompaktinių diskų, iš esamo „Linux“ platinamojo paketo, iš pakraunamo CD (tokio, kaip Knoppix), iš įkeltos iš interneto aplinkos, iš išvadavimo lanksčiojo diskelio ir pan.

Šis dokumentas apima diegimą, naudojant „Gentoo“ diegimo CD arba, tam tikrais atvejais, įkeltį iš interneto. Šiame diegime manoma, kad jūs norite įdiegti naujausias esamas kiekvieno paketo versijas. Jei norite atlikti diegimą be interneto sujungimo, turėtumėte skaityti „Gentoo“ 2008.0 vadovus, kuriuose yra nurodymai aplinkai be interneto prisijungimo.

Taip pat reikėtų pastebėti, kad jei jūs planuojate naudoti GRP („Gentoo Reference Platform“ -- rinkinį iš anksto sukompiliuotų paketų, skirtų tiesioginiam naudojimui iškart po Gentoo įdiegimo), jūs privalote sekti „Gentoo“ 2008.0 vadovų nurodymais.

Jei reikia pagalbos kituose diegimo metoduose, prašome skaityti mūsų „Alternatyvaus diegimo vadovą“. Mes taip pat pateikiame „Gentoo“ diegimo patarimų ir gudrybių dokumentą, kurį taip pat būtų pravartu pasiskaityti. Jei jūs jaučiate, kad esami diegimo nurodymai yra per daug detalūs, galite laisvai naudotis mūsų „Greitojo diegimo vadovu“ iš mūsų dokumentacijos išteklių, jei toks dokumentas yra turimas jūsų architektūrai.

Jūs taip pat turite keletą galimybių: galite kompiliuoti visiškai visą savo sistemą arba naudoti iš anksto sukompiliuotą aplinką ir turėti savo „Gentoo“ aplinką paruoštą ir veikiančią per kelias akimirkas. Ir, žinoma, jūs turite tarpinį sprendimą, kuomet jūs nekompiliuojate visko, o pradedate nuo pusiau parengtos sistemos.

Sunkumai?

Jeigu radote problemą diegime (arba diegimo dokumentacijoje), prašome aplankyti mūsų riktų sekimo sistemą ir patikrinti, ar riktas yra žinomas. Jei ne, prašome sukurti jam pranešimą apie riktą, kad mes galėtume juo pasirūpinti. Nebijokite plėtotojų, kurie yra paskirti jūsų riktams -- paprastai jie žmonių nevalgo.

Taip pat reikėtų pastebėti, nors dokumentas, kurį jūs skaitote, yra specifinis kiekvienai architektūrai, jame taip pat bus nurodymų ir kitoms architektūroms. Tai yra dėl to, kad didelės „Gentoo“ vadovo dalys naudoja išeities tekstą, kuris bendras visoms architektūroms (norint išvengti perdėtų pastangų ir plėtojimo išteklių bado). Mes pasistengsime išlaikyti tai iki minimumo, kad išvengtumėme painiavos.

Jei jūs nesate tikri, ar problema yra dėl nadotojo kaltės (kai kurias klaidas jūs padarėte nepaisant atidaus dokumentacijos skaitymo), ar tai yra programinės įrangos problema (kai kurias klaidas mes padarėme nepaisant atidaus diegimo/dokumentacijos bandymo), jūs galite laisvai prisijungti prie #gentoo IRC kanalo irc.freenode.net tinkle. Žinoma, esate mielai laukiami ir kitais atvejais taip pat :)

Jei turite klausimą apie Gentoo, patikrinkite mūsų dažniausiai užduodamus klausimus, pasiekiamus iš „Gentoo“ dokumentacijos. Jūs taip pat galite pažiūrėti DUK mūsų forumuose. Jei negalite rasti atsakymo, tada paklauskite mūsų #gentoo IRC kanale, irc.freenode.net tinkle. Taip, kai kurie iš mūsų yra keistuoliai, kurie būna IRC :-)

2. Teisingų diegimo priemonių pasirinkimas

3. Jūsų tinklo konfigūravimas

3.a. Automatinis tinklo aptikimas

Gal jis jau veikia?

Jei jūsų kompiuteris yra prijungtas prie Ethernet tinklo, kuriame dirba DHCP tarnybinė stotis, tai labai tikėtina, kad jūsų kompiuterio tinklo nuostatos jau yra suderintos automatiškai. Jei tinklas jau veikia, tai jūs galite naudotis daugeliu diegimo CD disko komandų, kurioms reikalingas tinklo ryšys. Tai būtų ssh, scp, ping, irssi, wget ir links, ir kitos programos.

Jei tinklo nuostatos jau yra suderintos, tai komanda /sbin/ifconfig ekrane turėtų parodyti ne tik lo bet ir papildomų tinklo sąsajų, tokių, kaip eth0, sąrašą bei jų parametrus:

Kodo sąrašas 1.1: /sbin/ifconfig komandos rezultatas, suderinus tinklo nuostatas

# /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

Papildomai: nurodykite tarpinės tarnybinės stoties nuostatas

Jei interneto paslauga jums teikiama per tarpinę tarnybinę stotį (proxy), tai diegimo metu jums gali tekti nurodyti tarpinės tarnybinės stoties nuostatas. Tai nėra sudėtinga, jums tereikia nustatyti sistemos kintamąjį, kuriame būtų saugoma tarpinės tarnybinės stoties informacija.

Daugeliu atvejų pakanka tiesiog aprašyti kintamąjį, naudojant tarnybinės stoties adresą. Tarkime tūsų tarpinės tarnybinės stoties adresas yra proxy.gentoo.org, o darbinė jungtis 8080.

Kodo sąrašas 1.2: Tarpinių tarnybinių stočių aprašymas

(Jei stotis filtruoja HTTP duomenų srautą)
# export http_proxy="http://proxy.gentoo.org:8080"
(Jei stotis filtruoja FTP duomenų srautą)
# export ftp_proxy="ftp://proxy.gentoo.org:8080"
(Jei stotis filtruoja RSYNC duomenų srautą)
# export RSYNC_PROXY="proxy.gentoo.org:8080"

Jei tarnybinei stočiai būtina nurodyti vartoto vardą ir slaptažodį, tai kintamąjį būtina aprašyti tokiu būdu:

Kodo sąrašas 1.3: Vartotojo vardo ir slapražodžio nurodymas tarpinės tarnybinės stoties kintamajam

http://vartotojas:slaptazodis@proxy.gentoo.org:8080

Tinklo nuostatų patikrinimas

Norėdami patikrinti ar veikia tinklo ryšys - pabandykite pasinaudoti komanda ping. Jei ši programa gali susisiekti su jūsų interneto paslaugų tiekėjo DNS tarnybine stotimi (nurodyta /etc/resolv.conf rinkmenoje) ir kokia nors jums žinoma interneto svetaine, tai jūsų kompiuterio tinklo nuostatos yra teisingos ir jis gali jungtis prie Interneto.

Kodo sąrašas 1.4: Tolesnis tinklo ryšio patikrinimas

# ping -c 3 www.gentoo.org

Jei jau galite naudotis interneto ryšiu, tai galite praleisti tolesnį skyrių ir pereiti prie skyriaus Diskinių kaupiklių paruošimas. Jei tinklas neveikia - skaitykite toliau.

3.b. Automatinis tinklo konfigūravimas

Jei tinklas savaime nepradėjo veikti, tai galite pasitelkti kai kuriuose diegimo diskuose pateikiamus tinklo derinimo įrankius: net-setup (bevieliams arba įprastiems tinklams), adsl-setup (ADSL paslaugų vartotojams) arba pptp (PPTP paslaugų vartotojams - turimas x86, amd64, alpha, ppc ir ppc64 architektūroms).

Jei jūsų turimame diegimo diske nėra nei vieno iš šių įrankių ar tinklo ryšio vis dar nepavyko suderinti atverskite skyrių Rankinis tinklo derinimas.

Numatyta: pasitelkti net-setup

Paprasčiausias būdas suderinti tinklo ryšį, jei jis nebuvo suderintas automatiškai - sužadinti net-setup pusprogramį:

Kodo sąrašas 2.1: Pusprogramio net-setup sužadinimas

# net-setup eth0

Sužadintas net-setup pusprogramis pateiks jums keletą klausimų apie jūsų tinklo ryšius. Pusprogramiui baigus darbą jūs turėtumėte turėti veikiantį tinklo ryšį. Norėdami tuo įsitikinti - pakartokite anksčiau aprašytus tinklo bandymus. Jei testų rezultatai bus teigiami - sveikiname! Jūsų kompiuteris yra parengtas „Gentoo“ diegimui. Galite praleisti likusį skyriaus dalį ir pereiti prie skyriaus Diskinių kaupiklių paruošimas.

Jei jūsų tinklo ryšys vis dar neveikia, tęskite, skaitydami skyrių Rankinis tinklo derinimas.

Alternatyva: naudoti PPP

Numačius, kad prisijungimui prie interneto gali reikėti PPPoE paslaugos, į diegimo CD diskus (visoms sistemoms) buvo įtrauktas ppp ryšio paketas. Norėdami suderinti ryšį sužadinkite pppoe-setup scenarijų. Pastarasis paprašys nurodyti „Ethernet“ tinklo sąjają, kuri yra prijungta prie ADSL modemo, jūsų naudotojo vardą bei slaptažodį, DNS tarnybinių stočių IP adresus ir pasiteiraus ar norite aktyvuoti bazinę interneto užkardą ar ne.

Kodo sąrašas 2.2: ppp naudojimas

# pppoe-setup
# pppoe-start

Jei ryšys neveikia - atidžiai patikrinkite ir įsitikinkite, kad teisingai įvedėte vartotojo vardą ir slaptažodį. Šią informaciją rastite /etc/ppp/pap-secrets arba /etc/ppp/chap-secrets rinkmenose. Taip pat įsitikinkite, kad nurodėte teisingą tinklo sąsają. Jei jūsų tinklo sąsajos įranginys neegzistuoja - įkraukite reikiamus tinklo įrangos modulius. Tokiu atveju atverkite skyrių Rankinis tinklo derinimas, kuriame aiškinama, kaip įkrauti reikiamus tinklo posistemio modulius.

Jei ryšys veikia gerai, tęskite atvėrę skyrių Diskinių kaupiklių paruošimas.

Alternatyva: Naudoti PPTP

Jei jums reikia PPTP ryšio - jūs galite pasitelkti pptpclient programą, kurią rasite diegimo CD diske. Tačiau prieš sužadindami programą, įsitikinkite, kad jūsų kompiuterio konfigūracija yra teisinga. Pataisykite /etc/ppp/pap-secrets arba /etc/ppp/chap-secrets ir įrašykite į juos teisingą vartotojo vardo bei slaptažodžio derinį:

Kodo sąrašas 2.3: Rinkmenos /etc/ppp/chap-secrets redagavimas

# nano -w /etc/ppp/chap-secrets

Vėliau, jei reikia, pataisykite rinkmeną /etc/ppp/options.pptp:

Kodo sąrašas 2.4: Rinkmenos /etc/ppp/options.pptp redagavimas

# nano -w /etc/ppp/options.pptp

Pabaigę derinimą tiesiog sužadinkite pptp (kartu nurodydami parametrus, kurių negalima nustatyti rinkmenoje options.pptp) tam, kad prisijungtumėte prie tarnybinės stoties:

Kodo sąrašas 2.5: Prisijungimas prie dial-in tarnybinės stoties

# pptp <server ip>

Toliau atverskite skyrių Diskinių kaupiklių paruošimas.

3.c. Rankinis tinklo derinimas

Reikiamų tinklo modulių įkrovimas.

Įkraunant kompiuterį iš diegimo CD disko, automatiškai yra bandoma aptikti visą kompiuterio įrangą ir įkrauti jai reikiamus branduolio modulius. Dažniausiai tai pavyksta, tačiau ne visuomet. Tokiu atveju jums trūkstamus branduolio modulius teks įkrauti patiems.

Jei net-setup ar pppoe-setup pusprogramiams nepavyko suderinti tinklo ryšio, tai labai tikėtina, kad šios programos paprasčiausiai nesugebėjo aptikti tinklo sąsajos. Tokiu atveju tinklo plokštės branduolio modulius teks įkrauti patiems.

Norėdami sužinoti kokie tinklo posistemio branduolio moduliai pateikiami diegimo CD diske pasitelkite komandą ls:

Kodo sąrašas 3.1: Pateikiamų modulių sąrašo gavimas

# ls /lib/modules/`uname -r`/kernel/drivers/net

Jei surandate tvarkyklę, tinkankčią jūsų tinklo prokštei, pasitelkite modprobe programą, kuri įkraus reikiamą branduolio modulį:

Kodo sąrašas 3.2: Branduolio modulio įkrovimas modprobe programa

(Kaip pavyzdį įkrausime pcnet32 branduolio modulį)
# modprobe pcnet32

Norėdami patikrinti, ar jūsų tinklo plokštė jau yra atpažinta, pasitelkite ifconfig komandą. Atpažinta tinklo plokštė turėtų būti parodyta maždaug taip:

Kodo sąrašas 3.3: Sėkmingas tinklo plokštės atpažinimas

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

Tačiau, jei ekrane matote tokią klaidą, tinklo plokštės atpažinti nepavyko:

Kodo sąrašas 3.4: Nesėkmingas tinklo plokštės atpažinimas

# ifconfig eth0
eth0: error fetching interface information: Device not found

Jei kompiuteryje yra keletas tinklo plokščių, jos bus vadinamos eth0, eth1 ir t.t. Įsitikinkite, kad tinklo plokštė, kuria norėsite naudotis tikrai veikia ir nepamirškite naudoti būtent jos pavadinimą. Pavyzdžiuose laikysime, kad planuojama naudoti pirmąją, t.y. eth0 tinklo plokštę.

Tarę, kad jums pavyko atpažinti savo kompiuterio tinklo plokštę, jūs galite pakartoti nuostatų derinimą, pasitelkdami net-setup ar pppoe-setup (pastarosios programos dabar jau turėtų veikti). Na, o užsispyrusiems toliau aiškinsime, kaip suderinti tinklo sąsajas rankiniu būdu.

Pasirinkite vieną iš tolimesnių skyrių, atitinkantį jūsų tinklo tipą:

Naudoti DHCP

DHCP (Dynamic Host Configuration Protocol) technologija leidžia automatiškai gauti visą tinklo informaciją (IP adresą, tinklo kaukę, transliacijos, kelvedžio, vardų tarnybinės stoties adresus ir t.t.). Ši sistema veikia tik tuomet, kai jūsų tinkle veikia DHCP tarnybinė stotis ar jūsų interneto paslaugų teikėjas pateikia DHCP paslaugą. Norėdami, kad tinklo plokštės būtų autoamatiškai suderintos, pasitelkite dhcpcd:

Kodo sąrašas 3.5: Naudoti dhcpcd

# dhcpcd eth0
Dalis tinklo administratorių reikalauja, kad jūs
naudotumėte kompiuterio vardą (hostname) ir domeno vardą
(domainname), pateikiamą DHCP tarnybinės stoties.
Tokiu atveju naudokite:
# dhcpcd -HD eth0

Jei suderinti pavyko (pabandykite sužadinti ping komandą, nurodydami kokią nors interneto tarnybinę stotį, pavyzdžiuiGoogle), tai tinklas yra suderintas, todėl galite praleisti likusią skyriaus dalį ir tęsti diegimą atvėrę skyrių Diskinių kaupiklių paruošimas.

Bevielio ryšio tinklo suderinimas

Pastaba: Bevielio tinklo derinimo programa iwconfig yra įtraukta tik į x86, amd64 ir ppc diegimo CD diskus. Norėdami, galite suderinti bevielio ryšio tinklą ir kitose sistemose. Derinimo instrukcijas rasite linux-wlan-ng projekto dokumentuose.

Jei jūs naudojate įprastą bevielio tinklo plokštę (802.11), tai jums greičiausiai prireiks pirmiausia suderinti bevielio ryšio nuostatas, iki jūs galėsite derinti kitas. Norėdami pamatyti esamas bevielio ryšio tinklo plokštės nuostatas pasitelkite iwconfig. Sužadinę iwconfig jūs galite pamatyti maždaug tokį vaizdą:

Kodo sąrašas 3.6: Esami bevielio ryšio tinklo sąsajos parametrai

# 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

Pastaba: Kai kurios bevielio ryšio tinklo plokštės gali vadintis ne eth0, o wlan0 ar ra0. Sužadinę iwconfig programą be jokių parametrų pamatysite jūsų bevielio ryšio sąsajos pavadinimą.

Daugeliui vartotojų tėra tik du parametrai, kuriuos gali prireikti pakeisti. Tai ESSID (dar žinomas, kaip bevielio tinklo vardas) arba WEP raktas. Jei paminėti ESSID ir prieigos taško (Access point) adresas priklauso jūsų prieigos stotelei ir jūs nenaudojate WEP, tai jūsų bevielis tinklo ryšys jau veikia. Jei jums reikia pakeisti ESSID ar pridėti WEP kodavimo raktą, jūs galite pasitelkti šias komandas:

Pastaba: Jeigu jūsų bevielis tinklas veikia su WPA ar WPA2, jums reikės naudoti wpa_supplicant. Daugiau informacijos apie bevielio tinklo konfigūravimą „Gentoo Linux“ galite rasti „Gentoo“ vadovo skyriuje „Bevielis tinklas“.

Kodo sąrašas 3.7: ESSID ir/arba WEP raktų įrašymas

(Ši komanda tinklo vardą pakeičia į "GentooNode")
# iwconfig eth0 essid GentooNode

(Ši komanda nustato šešioliktainį (hex) WEP raktą)
# iwconfig eth0 key 1234123412341234abcd

(Ši komanda nustato ASCII raktą - jį pradėkite eilute "s:")
# iwconfig eth0 key s:some-password

Norėdami pamatyti bevielio tinklo nuostatas pakartotinai sužadinkite iwconfig programą. Suderinę bevielio tinklo ryšį galite pereiti prie IP lygio tinklo nuostatų derinimo, kurios aprašomos tolimesniame skyriuje, (Tinklo terminologijos aiškinimas) arba pasitelkite seniau paminėtą net-setup įrankį.

Tinklo terminologijos aiškinimas

Pastaba: Jei jūs žinote savo kompiuterio IP adresą, transliavimo adresą, tinklo kaukę ir vardų tarnybinės stoties adresus, tai galite praleisti šį poskyrį ir pereiti prie skyriaus Naudoti ifconfig ir route.

Jei anksčiau paminėtais būdais nepavyko suderinti tinklo ryšio - jums teks suderinti jūsų tinklo ryši patiems. Tai nėra sunku, tačiau pirmiausia jums reikės susipažinti su kompiuterinių tinklų terminologija. Šių žinių jums prireiks, kad galėtumėte sėkmingai suderinti savo tinklo ryšį. Perskaitę šį poskyrį jūs žinosite kas yra kelvedis (gateway), kam reikalinga tinklo kaukė (netmask), kaip suformuojamas transliavimo (broadcast) adresas ir kam reikalinga vardų tarnybinė stotis (nameserver).

Tinkle kiekvienas kompiuteris atpažįstamas pagal jo IP adresą (Internetinio Protokolo adresą). Šis adresas, tai 4 skaičių nuo 0 iki 255 kombinacija. Na, bent jau taip ji pateikiama žmonėms. Kompiuteriuose šis adresas sudarytas iš 32 bitų (vienetų ir nulių). Štai pavyzdys:

Kodo sąrašas 3.8: IP adreso pavyzdys

IP Adresas (skaičiai):   192.168.0.2
IP Adresas (bitai):      11000000 10101000 00000000 00000010
                        -------- -------- -------- --------
                           192      168       0        2

Toks IP adresas yra unikalus kiekvienam kompiuteriui, visame tam kompiuteriui prieinamame tinkle. Tai reiškia, kad kiekvienas kompiuteris, prie kurio jūs galite prisijungti turi turėti unikalų IP adresą. Tam, kad atskirti kompiuterius tinklo viduryje ir išorėje - IP adresas yra padalintas į dvi dalis: tinklo ir kompiuterio.

Adresas suskaidomas pasitelkus tinklo kaukę, kuri sudaryta iš vienetų ir nulių sekos. Ta IP adreso dalis, kurią atitinka tinklo kaukės vienetai yra tinklo dalis, o likusi kompiuterio. Kaip ir IP adresas - tinklo kaukė, taip pat gali būti užrašyta skaičių kombinacija.

Kodo sąrašas 3.9: Tinklo/kompiuterio adreso atskyrimo pavyzdys

IP adresas:      192      168      0         2
              11000000 10101000 00000000 00000010
Tinklo kaukė: 11111111 11111111 11111111 00000000
                 255      255     255        0
             +--------------------------+--------+
                   Tinklas              Kompiuteris

Kitaip tariant 192.168.0.14 adresas taip pat priklauso šiam tinklui, tačiau 192.168.1.2 jau yra kito tinklo adresas.

Transliavimo adresas tai IP adresas, kurio tinklo dalis atitinka jūsų tinklo adresą, o kompiuterio dalis užpildyta vienetais. Kiekvienas jūsų tinklo įrenginys laukia duomenų, ateinančių šiam adresui. Tai iš tiesų yra viešios transliacijos adresas.

Kodo sąrašas 3.10: Transliacijos adresas

IP adresas:         192      168      0         2
                 11000000 10101000 00000000 00000010
Transliacijos:   11000000 10101000 00000000 11111111
                    192      168      0        255
                +--------------------------+--------+
                     Tinklas              Kompiuteris

Tam, kad galėtumėte naršyti internete - jums reikia žinoti koks kompiuteris dalina interneto ryšį. Šis tinklo įrenginys vadinamas kelvedžiu. Jis niekuo nesiskiria nuo kitų tinklo įrenginių ir jam suteikiamas įprastas IP adresas (pavyzdžiui 192.168.0.1).

Kaip jau minėjome kiekvienas tinklo kompiuteris turi turtėti savo IP adresą. Tam, kad kompiuterį galėtumėte pasiekti lengviau įsimenamu vardu, o ne IP adresu jums reikalinga paslauga, kuri pagal nurodytą vardą (pavyzdžiui dev.gentoo.org) pateikia jį atitinkantį IP adresą (pavyzdžiui 64.5.62.82). Tokia paslauga vadinama vardų paslauga ir norėdami ja pasinaudoti - turite nurodyti reikiamas vardų tarnybines stotis /etc/rosolv.conf rinkmenoje.

Kartais tinklo kelvedis taip pat veikia ir kaip vardų tarnybinė stotis, priešingu atveju jūs turėsite nurodyti vardų tarnybines stotis, kurias pateikia jūsų interneto paslaugų teikėjas.

Apibendrinant, norėdami tęsti tinklo derinimą - jūs turite žinoti šią informaciją:

Tinklo komponentas Pavyzdys
Jūsų IP adresas 192.168.0.2
Tinklo kaukė 255.255.255.0
Transliavimo adresas 192.168.0.255
Kelvedis 192.168.0.1
Vardų tarnybinė(s) stotis(ys) 195.130.130.5, 195.130.130.133

Naudoti ifconfig ir route

Tinklo suderinimas susideda iš trijų etapų. Pirmiausia, pasitelkus ifconfig, kompiuteriui suteikiamas IP adresas. Po to nustatomas duomenų kelias iki kelvedžio route pagalba. Galiausiai derinimas pabaigiamas į /etc/resolv.conf rinkmeną įrašant jūsų vardų tarnybinių stočių IP adresus.

Norint tinklo plokštei priskirti IP adresą, jums reikės nurodyti IP adresą, tinklo kaukę ir transliacijos adresą. Tai žinodami sužadinkite žemiau pateikiamą komandą pakeisdami ${IP_ADDR} jūsų IP adresu, ${BROADCAST} jūsų transliacijos adresu ir ${NETMASK} jūsų tinklo kauke:

Kodo sąrašas 3.11: Naudoti ifconfig

# ifconfig eth0 ${IP_ADDR} broadcast ${BROADCAST} netmask ${NETMASK} up

Dabar suderinkite duomenų maršrutą naudodami route. Pakeiskite ${GATEWAY} jūsų tinklo kelvedžio IP adresu:

Kodo sąrašas 3.12: Naudoti route

# route add default gw ${GATEWAY}

Atverkite /etc/resolv.conf jūsų mėgiama tekstų rengykle (pavyzdyje naudosime nano):

Kodo sąrašas 3.13: Rinkmenos /etc/resolv.conf sukūrimas

# nano -w /etc/resolv.conf

Rinkmenoje įrašykite jūsų vardų tarnybinę stotį ar stotis, pasinaudodami pavyzdžiu, kaip šablonu. Pildydami rinkmenos turinį pakeiskite ${NAMESERVER1} ir ${NAMESERVER2} jūsų naudojamų vardų tarnybinių stočių adresais:

Kodo sąrašas 3.14: /etc/resolv.conf šablonas

nameserver ${NAMESERVER1}
nameserver ${NAMESERVER2}

Viskas. Belieka patikrinti tinklo ryšį, sužadinus ping komandą ir nurodžius kokią nors interneto tarnybinę stotį (pavyzdžiui Google). Jei komanda sulaukia atsako - sveikiname, jūs galite diegti „Gentoo“. Tęskite, atvėrę skyrių Diskinių kaupiklių paruošimas.

4. Diskų paruošimas

5. „Gentoo“ diegimo rinkmenų diegimas

5.a. Stage tar archyvo diegimas

Datos/Laiko nustatymas

Prieš pradedant, reikia patikrinti kompiuterio datos/laiko nuostatas ir jas atnaujinti. Blogai nustatytas laikrodis gali sukelti keistų problemų ateityje!

Datos/laiko patikrinimui, paleiskite date:

Kodo sąrašas 1.1: Datos/laiko tikrinimas

# date
Fri Mar 29 16:21:18 UTC 2005

Jeigu data/laikas atvaizduoti blogai, pakeiskite juos naudodamiesi date MMDDhhmmYYYY sintakse (Mėnuo, Diena, h - valanda, minutė ir Y - metai). Dabar turėtumėte naudoti UTC laiką. Savo laiko juostą galėsite nurodyti vėliau. Pavyzdžiui, nustatome datą į kovo mėnesio 29 dienos, 16:21 2005 metais:

Kodo sąrašas 1.2: UTC datos/laiko nustatymas

# date 032916212005

Apsisprendimas

Tolimesnis žingsnis yra stage3 tar archyvo įdiegimas į sistemą. Jūs galite parsisiųsti archyvą iš interneto arba, jeigu naudojatės vienu iš „Gentoo“ universaliųjų CD arba LiveDVD, galite nukopijuoti archyvą iš pačio disko. Jeigu jūs turite „Gentoo“ universalų CD ar LiveDVD, ir norimas stage tar archyvas yra jame, siųstis stage tar archyvą iš interneto būtų tik laiko/srauto švaistymas, kadangi šie stage tar archyvai yra vienodi. Dažniausiai komanda uname -m gali būti panaudota apsisprendimui, kurią stage rinkmeną siųstis.

Minimalūs CD ir LiveCD neturi jokio stage3 archyvo, tačiau LiveDVD - turi.

5.b. Numatyta: Stage iš interneto naudojimas

Stage tar archyvo siuntimas

Nueikite į „Gentoo“ įrengimo tašką, kuris yra įrengtas jūsų rinkmenų išdėstymo sistemoje (greičiausiai tai bus /mnt/gentoo):

Kodo sąrašas 2.1: Ėjimas į „Gentoo“ įrengimo tašką

# cd /mnt/gentoo

Priklausomai nuo jūsų įdiegimo laikmenos, jūs turit keletą įrankių su kuriais galite atsisiųsti stage tar archyvą. Jeigu turite links, tada galite tuoj pat naršyti „Gentoo“ atvaizdų sąrašą ir pasirinkti atvaizdą arčiausiai jūsų.

Jeigu jūs neturite links, tada jūs turėtumėte turėti lynx. Jeigu jūs turite išėjimą į internetą pro įgaliotąjį serverį, eksportuokite kintamuosius http_proxy ir ftp_proxy:

Kodo sąrašas 2.2: Įgaliotojo serverio informacijos nustatymas lynx programai

# export http_proxy="http://proxy.server.com:port"
# export ftp_proxy="http://proxy.server.com:port"

Mes dabar manysime, kad jūs turite links.

Pasirinkite releases/sparc/2008.0/sparc64/ katalogą. Ten jūs turėtumėte matyti visas esamas stage rinkmenas savo architektūrai (jos gali būti įkeltos direktorijose, pavadintose atskirų poarchitektūrių pavadinimais). Pasirinkite vieną archyva ir paspauskite D, kad parsisiųstumėte. Kai siuntimas baigsis, paspauskite Q, kad išeitumėte iš naršyklės.

Kodo sąrašas 2.3: Naršymas po atvaizdų sąrašą naršykle links

# links http://www.gentoo.org/main/en/mirrors.xml

(Jeigu jums reikia links nurodyti įgaliotąjį serverį:)
# links -http-proxy proxy.server.com:8080 http://www.gentoo.org/main/en/mirrors.xml

Įsitikinkite, kad jūs atsisiuntėte stage3 tar archyvą - diegimai, naudojant stage1 arba stage2 tar archyvus, yra nebepalaikomi.

Jeigu norite patikrinti, ar nėra pažeistas parsisiųstas arhyvas, naudokite md5sum ir palyginkite išvedinį su MD5 kodu, pateikiamu kartu su archyvu jūsų pasirinktame atvaizde.

Kodo sąrašas 2.4: Stage tar archyvo tikrinimas

# md5sum -c stage3-sparc64-2008.0.tar.bz2.DIGESTS
stage3-sparc64-2008.0.tar.bz2: OK

Stage tar archyvo išpakavimas

Dabar išpakuokite parsisiųstą archyvą į jūsų sistemą. Naudosime tar įrankį, kadangi tai pats papraščiausiai būdas:

Kodo sąrašas 2.5: Stage išpakavimas

# tar xvjpf stage3-*.tar.bz2

Įsitikinkite, kad naudojate tas pačias parinktis (xvjpf). Parinktis x reiškia extract (išskleisti), v reiškia verbose (detaliai), kad matytumėte, kas vyksta išskleidimo metu (nebūtina), parinktis j - bzip2 archyvo išpakavimas, p - rezervuoti prieigos teises ir paskutinysis f nurodo, kad mes norime išskleisti archyvą, o ne standartinį įvedinį.

Dabar, kai stage įdiegtas, teskite diegimą su skyriumi „Portage“ diegimas

5.c. Alternatyva: Stage iš universalaus CD naudojimas

Stage tar archyvo išskleidimas

Stage tar archyvai kompaktiniame diske yra /mnt/cdrom/stages kataloge. Norėdami pamatyti visus galimus stage archyvus naudokite ls komandą:

Kodo sąrašas 3.1: Visų turimų stage tar archyvų sąrašas

# ls /mnt/cdrom/stages

Jeigu sistema praneša apie klaidą, galbūt jums gali prireikti primontuoti CD-ROM įrenginį:

Kodo sąrašas 3.2: CD-ROM įrenginio primontavimas

# ls /mnt/cdrom/stages
ls: /mnt/cdrom/stages: No such file or directory
# mount /dev/cdroms/cdrom0 /mnt/cdrom
# ls /mnt/cdrom/stages

Dabar eikite į „Gentoo“ įrengimo tašką (dažniausiai tai būna /mnt/gentoo):

Kodo sąrašas 3.3: Esamo katalogo pakeitimas į /mnt/gentoo

# cd /mnt/gentoo

Dabar išskleisime jūsų pasirinktą stage tar archyvą. Tai padarysime naudodamiesi tar. Įsitikinkite, kad naudojate tas pačias parinktis (xvjpf). Parinktis v yra nebūtina ir netgi nepalaikoma kaikuriose tar versijose. Kitame pavyzdyje išskleisime stage tar archyvą stage3-<subarch>-2008.0.tar.bz2. Nepamirškite pakeisti stage tar archyvo pavadinimo į jūsiškį.

Kodo sąrašas 3.4: Stage tar archyvo išskleidimas

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

Dabar, kai stage tar archyvas yra įdiegtas, teskite diegimą ties „Portage“ diegimu.

5.d. „Portage“ diegimas

„Portage“ momentinės kopijos išpakavimas

Dabar jūs turite įdiegti „Portate“ momentinę kopiją, rinkmenų kolekciją, kuri informuoja „Portage“, kokią programinę įrangą jūs galite įdiegti, kokie yra esami profiliai ir t.t.

Atsisiųskite ir įsidiekite „Portage“ momentinę kopiją

Eikite į įrengimo tašką, kur jūs prijungėte jūsų rinkmenų išdėstymo sistemą (tikriausiai /mnt/gentoo):

Kodo sąrašas 4.1: Patekimas į „Gentoo“ prijungimo tašką

# cd /mnt/gentoo

Paleiskite links (arba lynx) ir eikite į mūsų „Gentoo“ atvaizdų sąrašą. Pasirinkite atvaizdą, artimiausią jums, ir atverkite snapshots/ katalogą. Iš ten atsisiųskite naujausią „Portage“ momentinę kopiją (portage-latest.tar.bz2), ją pažymėdami ir paspausdami D.

Kodo sąrašas 4.2: Naršymas po „Gentoo“ atvaizdų sąrašą

# links http://www.gentoo.org/main/en/mirrors.xml

Dabar užverkite savo naršyklę paspausdami Q. Dabar turėsite „Portage“ momentinę kopiją, patalpintą /mnt/gentoo.

Jei norite patikrinti atsisiųstos momentinės kopijos vientisumą, naudodami md5sum palyginkite išvedinį su MD5 kontroline suma, pateikta atvaizde.

Kodo sąrašas 4.3: „Portage“ momentinės kopijos vientisumo tikrinimas

# md5sum -c portage-latest.tar.bz2.md5sum
portage-latest.tar.bz2: OK

Toliau išskleisime „Portage“ momentinę kopiją į jūsų rinkmenų išdėstymo sistemą. Įsitikinkite, kad jūs naudojate tiksliai tokią pačią komandą; paskutinioji parinktis yra didžioji C, ne c.

Kodo sąrašas 4.4: „Portage“ momentinės kopijos išskleidimas

# tar xvjf /mnt/gentoo/portage-latest.tar.bz2 -C /mnt/gentoo/usr

5.e. Kompiliavimo parinkčių konfigūravimas

Įžanga

Kad optimizuotumėte „Gentoo“, galite nustatyti keletą kintamųjų, kurie įtakoja „Portage“ elgseną. Visi tie kintamieji gali būti nustatyti kaip aplinkos kintamieji (naudojant export), bet tai nėra pastovu. Nustatymų išlaikymui Portage jums pateikia /etc/make.conf, Portage konfigūracinę rinkmeną. Šią rinkmeną mes dabar ir redaguosime.

Pastaba: Komentuotą visų įmanomų kintamųjų sąrašą galite rasti /mnt/gentoo/etc/make.conf.example. Sėkmingam „Gentoo“ įdiegimui turėsite nustatyti tik žemiau paminėtus kintamuosius.

Paleiskite savo megiamą redaktorių (šiame vadove mes naudojame nano), taigi mes galėsime keisti optimizavimo kintamuosius, kuriuos mes aptarsime toliau.

Kodo sąrašas 5.1: /etc/make.conf atvėrimas

# nano -w /mnt/gentoo/etc/make.conf

Kaip jūs tikriausiai pastebėjote, make.conf.example rinkmena yra sudaryta bendru būdu: komentuotos eilutės prasideda „#“, kitos eilutės apibrėžia kintamuosius naudojant sintaksę KINTAMASIS="turinys". Rinkmena make.conf naudoja tokią pačia sintaksę. Kelietas tų kintamųjų aptariami toliau.

CHOST

CHOST kintamasis paskelbia informaciją apie kompiuterį jūsų sistemai. Šis kintamasis turėtų jau būti nustatytas teisingos vertės. Neredaguokite jo, kadangi tai gali sulaužyti jūsų sistemą. Jeigu kintamasis CHOST jums neatrodo teisingas, galbūt jūs naudojate netinkamą stage3 tar archyvą.

CFLAGS ir CXXFLAGS

Kintamieji CFLAGS ir CXXFLAGS apibrėžia optimizavimo vėliavėles atitinkamai gcc C ir C++ kompiliatoriams. Nors mes paparastai nustatome juos čia, maksimalų našumą jūs gausite, tik jeigu jūs optimizuosite šias vėliavėles atskirai kiekvienai programai. Taip yra todėl, kad kiekviena programa yra skirtinga.

make.conf jūs turėtumėte nustatyti optimizavimo vėliavėles, kurios, jūsų manymu, padarys jūsų sistemą bendrai labiausiai optimizuotą. Nenustatinėkite eksperimentinių nuostatų šiame kintamajame; nuo per daug optimizavimo programos gali blogai veikti (nulūžti arba, kas netgi blogiau, blogai veikti).

Mes neaiškinsime visų įmanomų optimizavimo parinkčių. Jeigu jūs norite žinoti jas visas, skaitykite GNU internetinį(-ius) žinyną(-us) arba gcc informacinį puslapį (info gcc -- veikia tik veikiančioje „Linux“ sistemoje). Pačioje make.conf.example rinkmenoje yra daugybė pavyzdžių ir informacijos; nepamirškite paskaityti ir jos.

Pirmoji nuostata yra -march= arba -mcpu= veliavėlė, kuri nurodo architektūros pavadinimą. Galimos parinktys yra apibūdintos (kaip komentarai) rinkmenoje make.conf.example.

Antroji yra -O vėliavėlė (tai yra didžioji O, ne nulis), kuri nurodo gcc optimizavimo klasės veliavėlę. Galimos klasės yra s (dydžio optimizavimui), 0 (nulis - jokių optimizacijų), 1, 2 arba 3 - daugiau greičio optimizavimo vėliavėlių (kiekvienoje klasėje yra tos pačios vėliavėlės ir keli priedai papildomai). -O2 yra rekomenduojama.

Kita populiari optimizavimo vėliavėlė yra -pipe (naudoti kanalus vietoje laikinųjų rinkmenų komunikacijai tarp skirtingų kompiliavimo etapų). Ji neturi jokio poveikio sugeneruotam kodui.

-fomit-frame-pointer (kuris nelaiko kadro rodyklės registre funkcijoms, kurioms to nereikia) naudojimas gali turėti rimtų atgarsių programos derinime (debugging).

Kai apibrėžiate CFLAGS ir CXXFLAGS, jūs turėtumėte derinti kelias optimizavimo vėliavėles. Numatytosios reikšmės, esančios stage3 archyve, kurį jūs išpakavot, turėtų būti pakankamai geros. Šis pavyzdys tėra tik pavyzdys:

Kodo sąrašas 5.2: Apibrėžiame CFLAGS ir CXXFLAGS kintamuosius

CFLAGS="-O2 -mcpu=ultrasparc -pipe"
# Naudokite vienodus nustatymus abiems kintamiesiems
CXXFLAGS="${CFLAGS}"

MAKEOPTS

MAKEOPTS kintamuoju jūs nustatote, kiek lygiagrečių kompiliavimų turėtų būti diegiant programą. Geras pasirinkimas yra jūsų centrinių procesorių (CPU) skaičius plius vienas, tačiau šis nurodymas nėra visada tikslus.

Kodo sąrašas 5.3: MAKEOPTS reguliariai, vieno centrinio procesoriaus, sistemai

MAKEOPTS="-j2"

Pasiruošt, dėmesio, marš!

Atnaujinkite nuostatas jūsų /mnt/gentoo/etc/make.conf rinkmenoje ir išsaugokite (nano naudotojai turėtų paspausti Ctrl-X). Dabar jūs pasiruošę tęsti ties skyriumi „Gentoo“ pagrindinės sistemos diegimas.

6. „Gentoo“ pagrindinės sistemos diegimas

6.a. Chrooting

Pasirinktinai: Pasirenkame Veidrodžius

Norėdami greitai parsisiųsti išeities kodą, rekomenduojame pirmiausia pasirinkti greičiausią parsisiuntimo veidrodį. Portage bazė pasižiūrės į rinkmenoje make.conf esantį kintamąjį GENTOO_MIRRORS ir nuskaitys jo reikšmę, t.y. nuskaitys veidrodinio šaltinio adresą. Taip pat jūs galite panaršyti mūsų veidrodinių šaltinių sąrašą ir paieškoti veidrodžio (veidrodžių), kurie yra arčiausiai jūsų (tie, kurie dažniausiai minimi yra greičiausi). Bet mes siūlome jums patogų įrankį, pavadintą mirrorselect, kuris leidžia jums patogia programos sąsaja pasirinkti norimą veidrodį.

Kodo sąrašas 1.1: GENTOO_MIRRORS kintamojo parinkimui naudojame mirrorselect

# mirrorselect -i -o >> /mnt/gentoo/etc/make.conf

Perspėjimas: Nesirinkite IPv6 veidrodžių. Mūsų baziniai variantai šiuo metu nepalaiko IPv6 protokolo.

Kitas svarbus nustatymas yra rinkmenoje make.conf SYNC kintamasis. Šis kintamasis laiko rsync serverio adresą, kurį jūs naudojate kai atnaujinate Portage medį (ebuild rinkmenas, skriptus, kurie laiko visą reikalingą informaciją, reikalingą Portage bazei norint parsisiųsti ir įdiegti programinę įrangą). Jūs galite pats nustatyti SYNC kintamojo reikšmę arba pasinaudoti mirrorselect įrankiu:

Kodo sąrašas 1.2: Pasirenkame rsync serverio veidrodį naudodami mirrorselect

# mirrorselect -i -r -o >> /mnt/gentoo/etc/make.conf

Po to kai paleistie mirrorselect, rekomenduojame patikrinti reikšmes rinkmenoje /mnt/gentoo/etc/make.conf!

Kopijuojame DNS Informaciją

Vieną dalyką, kurį reikia būtinai padaryti prieš pereinant į naują aplinką, yra DNS informacijos nukopijavimas į rinkmeną /etc/resolv.conf. Jūs turite tai padaryti, jei norite būti tikras, kad galėsite naudotis tinklu po to, kai pereisite į naują aplinką. Rinkmena /etc/resolv.conf laiko vardinių serverių (nameserver) adresus jūsų tinklui.

Kodo sąrašas 1.3: Kopijuojame DNS informaciją

("-L" pasirinktis užtikrina, kad mes nenukopijuosime simbolinės
nuorodos)
# cp -L /etc/resolv.conf /mnt/gentoo/etc/

Prijungiame /proc ir /dev rinkmenų išdėstymo sistemas

Prijungiame /proc rinkmenų išdėstymo sistemą prie /mnt/gentoo/proc, kad leistume diegimui naudoti branduolio teikiamą informaciją naujai aplinkai. Tada prijungiame /dev rinkmenų sistemą.

Kodo sąrašas 1.4: Prijungiame /proc ir /dev

# mount -t proc none /mnt/gentoo/proc
# mount -o bind /dev /mnt/gentoo/dev

Įeiname į naująją Aplinką

Jau visi skaidiniai yra inicializuoti ir pagrindinė aplinka įdiegta, todėl dabar laikas įeiti į naująją aplinką, kurią atskyrėme (chrooting) nuo senosios. Tai reiškia, kad mes pakeisime esamą diegimo aplinką (Diegimo CD arba kitų diegimo laikmenų) į jūsų įdiegtą sistemą (tiksliau pavadinus, dalinai įdiegtą sistemą).

Šis izoliavimas yra daromas trimis žingsniais. Pirmiausia, mes pakeisime šakninį katalogą iš / (iš diegimo laikmenos) į /mnt/gentoo katalogą (esančią jūsų skaidiniuose), naudodami chroot komandą. Tada mes sukursime naująją aplinką naudodami env-update komandą, kuri savaime sukurs aplinkos kintamuosius. Galiausiai, užkrausime visus kintamuosius į atmintį, naudodami komandą source.

Kodo sąrašas 1.5: Sukuriame naująją aplinką

# chroot /mnt/gentoo /bin/bash
# env-update
>> Regenerating /etc/ld.so.cache...
# source /etc/profile
# export PS1="(chroot) $PS1"

Sveikiname! Pagaliau Jūs esate savo Gentoo Linux sistemoje. Aišku tai dar toli nuo pabaigos, vien jau dėl to, kad liko dar keletas skyrių perskaityti :-)

6.b. Nustatinėjame Portage bazę

Atnaujiname Portage medį

Dabar jūs turėtumėte atnaujinti naujausia versija savo Portage medį. Komanda emerge --sync tai atlieka už jus.

Kodo sąrašas 2.1: Atnaujiname Portage medį

# emerge --sync
(Jeigu jūs naudojate lėtą terminalą su framebuffers arba serijinius
terminalus, jūs galite naudoti parametrą --quiet, paspartindami
procesą:)
# emerge --sync --quiet

Jeigu jūs esate už ugniasienės, kuri blokuoja rsync srautą, jūs galite naudoti emerge-webrsync komandą, kuri parsiųs ir instaliuos portage bazės vaizdą už jus.

Jeigu jūs būsite įspėti, kad nauja Portage versija jau yra ir kad jūs galite ją įdiegti, tai dabar ir padarykite, pasinaudoję emerge --oneshot portage.

Pasirenkame teisingą profilį

Pirmiausia trumpas aprašymas.

Profilio pasirinkimas yra kertinis akmuo Gentoo sistemoje. Ne vien dėl to, kad nurodome numatytąsias reikšmes CHOST, CFLAGS ir kitus svarbius kintamuosius, tai svarbu ir todėl, kad nustatysime tam tikrą paketų naudojimo versiją. O visa tai yra sukurta Gentoo kūrėjų.

Anksčiau profiliai naudotojų nebuvo liečiami. Taciau gali būti tam tikrų situacijų, kai jūs galite nuspręsti, kad profilio pakeitimas yra reikalingas.

Jūs galite pažiūrėti, kokį profilį dabar naudojate, įvykdydami tokią komandą:

Kodo sąrašas 2.2: Patikriname sistemos profilį

# ls -FGg /etc/make.profile
lrwxrwxrwx  1 48 Apr  8 18:51 /etc/make.profile -> ../usr/portage/profiles/default/linux/sparc/2008.0

Numatytasis profilis jums pateiks „Linux“ 2.6 branduoliu besiremiančia sistemą. Tai yra rekomenduojamas numatytasis profilis, bet jūs turite ir kito profilio pasirinkimo galimybę.

Taip pat kai kurioms architektūroms yra desktop ir server poprofiliai. Pažiūrėkite 2008.0/ profilyje, kad nustatytumėte, ar jūsų architektūrai jie yra. Galite pažiūrėti desktop profilio make.defaults, kad nustatytumėte, ar jis jums tinka.

Po profilių savo architektūrai /usr/portage/profiles/ peržiūros, galite naudoti kitokį, jei norite:

Kodo sąrašas 2.3: Profilių keitimas

# ln -snf /usr/portage/profiles/<profile name> /etc/make.profile

Pastaba: Poprofilis developer skirtas būtent „Gentoo Linux“ plėtojimo užduotims. Jis nėra skirtas padėti nustatyti bendras plėtojimo aplinkas.

Konfigūruojame USE kintamajį

USE yra vienas iš galingiausių Gentoo sistemos teikiamų vartotojams kintamųjų. Daugelis programų gali būti sukompiliuotos su arba be tam tikrų palaikymų, priedų. Pavyzdžiui, keletas programų gali būti sukompiliuotos su gtk palaikymu arba su qt palaikymu. Kitos programos gali būti sukompiliuotos su arba be SSL palaikymu. Kai kurios programos gali būti sukompiliuotus su grafinio buferio palaikymu (svgalib) vietoj X11 palaikymo (X-serverio).

Daugelis distribucijų kompiliuoja savo paketus su kiek įmanoma daugiau palaikymų, priedų, taip padidindami programos dydį ir krovimosi laiką, jau nekalbant apie nežmoniškus kiekius priklausomybių. Su Gentoo sistema Jūs galite nustatyti su kokiais palaikymas paketai bus sukompiliuoti. Šioje vietoje svarbiausias vaidmuo atitenka USE kintamajam.

USE kintamajame jūs nustatysite raktažodžius, kurie yra surišti su kompiliavimo pasirinktimis. Pavyzdžiui, ssl bus sukompiliuotas su ssl palaikymu programose, kurios palaiko tai. -X pašalins X-serverio palaikymą (atkreipkite dėmesį į minusą prieš raktažodį, tai rodo, kad palaikymas nebus kompiliuojamas). gnome gtk -kde -qt3 -qt4 sukompiliuos programas su gnome (ir gtk) palaikymu ir be kde (ir qt) palaikymo, kas padarys jūsų sistemą orientuotą į GNOME.

Numatytieji USE nustatymai yra laikomi rinkmenoje make.defaults jūsų profilyje. Jūs rasite rinkmenas make.defaults kataloge, kurį nurodo /etc/make.profile rinkmena. Numatytasis USE nustatymai yra rinkmenoje make.defaults. Ką jūs padėsite į /etc/make.conf, tai yra atskirai paskaičiuojama nuo numatytųjų nustatymų. Jeigu jūs pridedate kažkokį nustatymą į USE, tada jis yra įtraukiams į numatytųjų sarašą. Jeigu pašalinate ką nors iš USE (padėdami minusą prieš raktažodį), tai bus pašalinta ir iš numatytųjų sąrašo (jeigu jis apskritai ten buvo įtrauktas). Niekada nepridėkite nieko patys į rinkmeną /etc/make.profile; Tai bus perrašyta, kai jūs atnaujinsite Portage bazę!

Pilną USE aprašymą galima rasti antroje Gentoo Handbook dalyje, USE vėliavėlės. Pilnas USE vėliavėlių aprašymą galima rasti pačioje sistemoje rinkmenoje /usr/portage/profiles/use.desc.

Kodo sąrašas 2.4: Peržiūrime galima USE vėliavėlias

# less /usr/portage/profiles/use.desc
(Vaikščiojimui galite naudoti rodyklių klavišus, o norėdami išeiti
spauskite 'q')

Kaip pavyzdį parodysime USE nustatymus KDE-tipo sistemai su DVD, ALSA ir CD įrašymo palaikymais:

Kodo sąrašas 2.5: Atidarome /etc/make.conf

# nano -w /etc/make.conf

Kodo sąrašas 2.6: USE nustatymai

USE="-gtk -gnome qt3 qt4 kde dvd alsa cdr"

Pasirinktinai: glibc lokalės

Jūs greičiausiai naudosite vieną arba dvi lokales savo sistemoje. Lokales, kurių jums reikės, galite nurodyti rinkmenoje /etc/locale.gen.

Kodo sąrašas 2.7: Atidarykite /etc/locale.gen

# nano -w /etc/locale.gen

Žemiau pateiktos lokalės yra pavyzdžiai kaip gauti anglų (Jungtinių Amerikos Valstijų) ir vokiečių (Vokietijos) kalbų palaikymą su įvairiais simbolių formatais (tokiais kaip UTF-8)

Kodo sąrašas 2.8: Nurodyme savo lokales

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

Kitas žingsnis - locale-gen paleidimas. Jis sugeneruos visas lokales, kurias jūs nurodėte /etc/locale.gen rinkmenoje.

Dabar pereikime prie skyriaus Konfigūruojame branduolį.

7. Branduolio konfigūravimas

8. Sistemos konfigūravimas

8.a. Rinkmenų išdėstymo sistemos informacija

Kas yra fstab?

„Linux“ sistemoje visi skirsniai (partitions) turi būti aprašyti /etc/fstab rinkmenoje. Šioje rinkmenoje yra tų skirsnių jungties vietos (kur jie yra matomi rinkmenų išdėstymo sistemos struktūroje), kaip jie turi būti prijungti ir su kokiomis specialiomis parinktimis (prijungiamas automatiškai ar ne, naudotojai gali juos prijungti ar ne ir t.t.).

Kuriame /etc/fstab

/etc/fstab naudoja specialią sintaksę. Kiekviena eilutė sudaryta iš šešių laukelių, kurie yra atskirti tarpais, tabuliacija arba maišytai. Kiekvienas laukas turi savo reikšmę:

  • Pirmas laukas aprašo skirsnį (kelią iki įrenginio rinkmenos)
  • Kitas laukas nurodo prijungimo tašką, kur skaidinys bus prijungtas
  • Trečias laukas nurodo, kokią rinkmenų išdėstymo sistemą naudoja skaidinys
  • Ketvirtas laukas nurodo, kokios prijungimo parinktys naudojamos programos mount prijungiant skaidinį. Kadangi kiekviena rinkmenų išdėstymo sistema turi nuosavas skaidinio prijungimo parinktis, raginame paskaityti mount žinyno puslapį (man mount), jei norite detalesnės informacijos. Prijungimo parinktys yra skiriamos kableliais.
  • Penktas laukas yra naudojamas dump programos, kad apibrėžtų ar skirstinys naudos dump funkciją ar ne. Paprastai jūs galite palikti šiame lauke 0 (nulį).
  • Šeštas laukas yra naudojamas nusakyti programai fsck, kokia tvarka turėtų būti tikrinama rinkmenų išdėstymo sistema, jei sistema buvo netinkamai išjungta. Pagrindinė (root) rinkmenų išdėstymo sistema turi turėti reikšmę 1, o kitos turėtų turėti reikšmę 2 (arba 0, jeigu rinkmenų išdėstymo sistemos tikrinti nereikia).

Svarbu: Pradinė /etc/fstab rinkmena, pateikiama „Gentoo“ sistemos, nėra taisyklinga fstab rinkmena. Jūs turite sukurti nuosavą /etc/fstab:

Kodo sąrašas 1.1: Atidarykite /etc/fstab

# nano -w /etc/fstab

Pridėkite taisykles, atitinkančias jūsų skirsnių struktūrą ir papildykite taisyklėmis savo CD-ROM įrenginiams ir, žinoma, kitiems skirsniams ar diskams, jei tokių yra.

Dabar naudokitės šiuo pavyzdžiu, kad sukurtumėte savąją /etc/fstab rinkmeną.

Kodo sąrašas 1.2: Pilnas /etc/fstab pavyzdys

/dev/sda1   /               ext3        noatime              0 1
/dev/sda2   none            swap        sw                   0 0
/dev/sda4   /usr            ext3        noatime              0 2
/dev/sda5   /var            ext3        noatime              0 2
/dev/sda6   /home           ext3        noatime              0 2

# Privalote pridėti openprom taisykles
openprom    /proc/openprom  openpromfs  defaults             0 0

/dev/cdrom  /mnt/cdrom   auto    noauto,user          0 0

auto parinktis leidžia mount komandai spėti, kokią yra rinkmenų išdėstymo sistema (rekomenduojama naudoti keičiamoms laikmenoms, kadangi jos gali būti sukurtos su viena iš daugelio rinkmenų išdėstymo sistemų). user parinktis leidžia paprastiems vartotojams (neturintiems root teisių) prijungti kompaktinius diskus.

Našumo pagerinimui daugelis naudotojų turėtų pridėti noatime jungties parametrą, kuris pagreitina sistemą, kadangi nėra registruojami prieigos laikai (vis vien dažniausiai jų ir nereikia).

Dar kartą patikrinkite savo /etc/fstab, išsaugokite ir uždarykite.

8.b. Tinklo informacija

Kompiuterio vardas, srities vardas ir t.t.

Vienas iš pasirinkimų, tenkantis naudotojui, tas, kad jis turi sugalvoti savo Asmeniniam Kompiuteriui vardą. Tai atrodo visai nesuku padaryti, bet daugybė naudotojų susiduria su sunkumais parenkant tinkamą vardą savo AK. Tam, kad reikalai judėtų greičiau, primename, kad bet koks vardas galės būti pakeistas vėliau. Jei nieko kito nesugalvojate, galite paprasčiausiai pavadinti tux vardu, o simbolinį adresų srities pavadinimą (domain) homenetwork vardu.

Kodo sąrašas 2.1: Kompiuterio vardo nustatymas

# nano -w /etc/conf.d/hostname

(HOSTNAME kintamuoju nustatykite savo kompiuterio vardą)
HOSTNAME="tux"

Toliau, jeigu jums reikia simbolinio adresų srities pavadinimo (domainname), nustatykite jį rinkmenoje /etc/conf.d/net. Srities jums reikia tik tuomet, jeigu jūsų interneto tiekėjas ar tinklo administratorius taip sako arba jeigu jūs turite DNS, o ne DHCP serverį. Jei jūsų tinklas nustatytas DHCP, dėl DNS ar srities pavadinimų neturėtumėte jaudintis.

Kodo sąrašas 2.2: Nustatome simbolinį adresų srities pavadinimą

# nano -w /etc/conf.d/net

(dns_domain kintamuoju nustatykite srities pavadinimą)
dns_domain_lo="homenetwork"

Pastaba: Jei pasirinkote nenustatinėti srities pavadinimo (domainname), galite atsikratyti „This is kompiuterio_vardas.(none)“ žinučių savo prisijungimo lange paredaguodami /etc/issue. Paprasčiausiai ištrinkite simbolių seką .\O iš tos rinkmenos.

Jeigu jūs turite NIS adresą (jeigu nežinote kas tai yra, tai greičiausiai tokio ir neturite), jums taip pat reikia jį apibrėžti:

Kodo sąrašas 2.3: Nustatome NIS srities pavadinimą

# nano -w /etc/conf.d/net

(nis_domain kintamuoju nustatykite NIS srities pavadinimą)
nis_domain_lo="my-nisdomain"

Pastaba: Išsamiau apie DNS ir NIS konfigūravimą galite paskaityti pavyzdžiuose /etc/conf.d/net.example rinkmenoje. Savo DNS/NIS nuostatų valdymui palengvinti galite įsidiegti openresolv.

Nustatinėjame jūsų tinklą

Prieš sušukdami „Ei, mes jau turime veikiantį tinklą“, turėtumėte prisiminti, kad tinklas, kurį jūs paleidote „Gentoo“ diegimo pradžioje yra skirtas tik diegimui. O dabar mes nustatysime tinklą jūsų „Gentoo“ sistemai.

Pastaba: Daugiau detalesnės informacijos apie tinklą, įskaitant sudėtingesnius dalykus, tokius kaip bonding, bridging, 802.1Q VLAN ar bevielis tinklas, galite rasti skyriuje „Gentoo“ tinklo paruošimas“.

Visa tinklo informacija yra rinkmenoje /etc/conf.d/net. Čia naudojama konkreti sintaksė, o ne intuityvi, jeigu nežinote kaip nustatyti tinklą rankiniu būdu. Tačiau nebijokite, mes viską paaiškinsime. Pilnas pavyzdys su komentarais ir daugeliu kitų konfiguracijų yra rinkmenoje /etc/conf.d/net.example.

DHCP naudojamas kaip kaip pradinis nustatymas. Kad DHCP veiktų, turite įdiegti DHCP kliento programą. Tai aprašyta skyriuje „Būtinų sistemos įrankių diegimas“. Nepamirškite įdiegti DHCP kliento programos.

Jeigu jums reikia nustatyti savo tinklo prisijungimą dėl specifinių DHCP parinkčių ar dėl to, kad jūs nenaudojate DHCP apskritai, tada atidarykite /etc/conf.d/net savo mėgstamu redaktoriumi (šiame pavyzdyje naudojamas nano):

Kodo sąrašas 2.4: Atidarome /etc/conf.d/net rinkmeną

# nano -w /etc/conf.d/net

Toliau jūs matysite tokią rinkmeną (komentarus čia pateikiame išverstus):

Kodo sąrašas 2.5: Numatytas /etc/conf.d/net

# Šis pradinis nustatymas automatiškai naudos DHCP betkokiems net.*
# scenarijams kataloge /etc/init.d. Norėdami sukurti ir nustatyti tinklą
# pilnai, prašome peržiūrėti /etc/conf.d/net.example ir išsaugoti
# nustatymus /etc/conf.d/net (šioje rinkmenoje :]!)

Įveskite savo IP adresą, tinklo kaukę (netmask) ir tinklo sietuvą (gateway). Jums reikia nustatyti abu config_eth0 ir routes_eth0:

Kodo sąrašas 2.6: Rankiniu būdu nustatome IP informaciją eth0 tinklo plokštei

config_eth0=( "192.168.0.2 netmask 255.255.255.0 brd 192.168.0.255" )
routes_eth0=( "default via 192.168.0.1" )

Norėdami naudoti DHCP ir pridėti specifines DHCP nuostatos, apibrėžkite config_eth0 ir dhcp_eth0:

Kodo sąrašas 2.7: Automatiškas IP adreso gavimas eth0 plokštei

config_eth0=( "dhcp" )
dhcp_eth0="nodns nontp nonis"

Prašome perskaityti /etc/conf.d/net.example norėdami sužinoti visas galimas parinktis.

Jeigu jūs turite keletą tinklo plokščių, pakartokite aukščiau paminėtus punktus nuostatoms config_eth1, config_eth2, ir t.t.

Dabar išsaugokite konfiguraciją ir uždarykite rinkmeną.

Automatiškas tinklo paleidimas krovimosi metu

Tam, kad aktyvuotumėte tinklo sąsajas krovimosi metu, jums reikia įdėti jas į numatytąjį krovimosi lygį (runlevel).

Kodo sąrašas 2.8: net.eth0 pridėjimas į numatytą paleidžiamąjį lygį

# rc-update add net.eth0 default

Jeigu jūs turite kelias tinklo kortas, jums reikia sukurti atitinkamus paleidimo scenarijus net.eth1, net.eth2 ir t.t. Tam galite naudoti ln komandą:

Kodo sąrašas 2.9: Papildomų paleidimo scenarijų sukūrimas

# cd /etc/init.d
# ln -s net.lo net.eth1
# rc-update add net.eth1 default

Užrašykite tinklo informaciją

Jums reikia pranešti „Linux“ sistemai apie savo tinklą. Tai yra aprašoma rinkmenoje /etc/hosts ir padeda nukreipti kompiuterių vardus į IP adresus kompiuterių, kurie neatsiliepia pagal jūsų vardų serverį. Jūs turite apibrėžti savo sistemą. Taip pag galite apibrėžti kitas savo tinklo sistemas, jeigu nenorite diegti nuosavos vidinės DNS sistemos.

Kodo sąrašas 2.10: Atidarome /etc/hosts

# nano -w /etc/hosts

Kodo sąrašas 2.11: Užpildome tinklo informaciją

(Apibrėžiame einamąją sistemą)
127.0.0.1     tux.homenetwork tux localhost

(Apibrėžiame papildomas tinklo sistemas, jos privalo turėti
statinį IP adresą, kad galėtų būti apibrėžtos šiuo būdu.)
192.168.0.5   jenny.homenetwork jenny
192.168.0.6   benny.homenetwork benny

Išsaugokite ir išeikite iš redaktoriaus.

8.c. Sisteminė informacija

Pagrindinio (root) naudotojo slaptažodis

Pirmiausia nustatysime pagrindiniam (root) naudotojui slaptažodį parašydami komandą:

Kodo sąrašas 3.1: Nustatome pagrindiniam (root) naudotojui slaptažodį

# passwd

Sisteminė informacija

„Gentoo“ naudoja /etc/rc.conf rinkmeną bendriems sistemos nustatymams. Atsidarykite rinkmeną /etc/rc.conf ir mėgaukitės visais komentarais joje :)

Kodo sąrašas 3.2: Atidarome /etc/rc.conf

# nano -w /etc/rc.conf

Kai užbaigsite nustatinėti /etc/rc.conf, išsaugokite ir išeikite iš jo.

Kaip matote, rinkmenoje yra nemažai komentarų, padedančių atlikti būtinus nustatymus. Jūs galite sukonfigūruoti savo sistemą, kad ji naudotų unicode, taip pat nustatyti pagrindinį redaktorių ar darbo aplinkos valdytoją (tokius kaip gdm ar kdm).

„Gentoo“ naudoja rinkmeną /etc/conf.d/keymaps klaviatūros nustatymams saugoti. Paredaguokite jį, kad parinktumėte klaviatūrai teisingus nustatymus.

Kodo sąrašas 3.3: Atidarome /etc/conf.d/keymaps

# nano -w /etc/conf.d/keymaps

Atkreipkite dėmesį į KEYMAP kintamąjį. Jeigu pasirinksite neteisingą KEYMAP, jūs gausite keistus rezultatus, kai spausdinsite su klaviatūra.

Kai baigsite konfigūruoti /etc/conf.d/keymaps, išsaugokite ir uždarykite.

„Gentoo“ naudoja /etc/conf.d/clock rinkmeną laikrodžio parinktims nustatyti. Redaguokite ją pagal savo poreikius.

Kodo sąrašas 3.4: Atidarome /etc/conf.d/clock

# nano -w /etc/conf.d/clock

Jeigu jūsų kompiuterio laikrodis naudoja UTC laiką, jums reikia įrašyti CLOCK="local" į rinkmeną. Kitu atveju jūs pastebėsite, kad jūsų laikrodis netikslus.

Jūs turėtumėte nustatyti laiko zoną, kurią anksčiau nukopijavote į /etc/localtime, kad vėlesni sys-libs/timezone-data paketo naujinimai galėtų atnaujinti /etc/localtime automatiškai. Pavyzdžiui, jeigu naudojote GMT laiko zoną, turėtumėte pridėti TIMEZONE="GMT"

Kai baigsite nustatinėti /etc/conf.d/clock, išsaugokite ir uždarykite rinkmeną.

Tęskite ties skyriumi „Būtinų sistemos įrankių diegimas“.

9. Būtinų sistemos įrankių diegimas

9.a. Sistemos žurnalizavimo įrankis

Kai kurių įrankių nėra stage3 tar archyve, nes keli paketai teikia vienodą funkcionalumą. Dabar visiškai priklauso nuo jūsų, kuriuos pasirinksite įdiegti.

Pirmasis įrankis, dėl kurio turite apsispręsti, turi teikti žurnalizavimo galimybes jūsų sistemai. „Unix“ ir „Linux“ turi puikias žurnalizavimo istorijos galimybes -- jei norite, galite žurnalizuoti viską, kas vyksta jūsų sitemoje į žurnalų rinkmenas. Tai vykdoma sistemos žurnalizavimo įrankio pagalba.

„Gentoo“ siūlo keletą sistemos žurnalizavimo įrankių. Tai yra sysklogd, kuris yra tradicinis sistemos žurnalizavimo tarnybų rinkinys, syslog-ng, pažangus sistemos žurnalizavimo įrankis, ir metalog, kuris yra labai konfigūruotinas sistemos žurnalilzavimo įrankis. Kiti gali būti prieinami per „Portage“ - mūsų esamų paketų skaičius didėja kasdien.

Jei planuojate naudoti sysklogd ar syslog-ng, po to turbūt norėsite įsidiegti logrotate, kadangi tie sistemos žurnalizavimo įrankiai neteikia jokių žurnalų rinkmenų kaitaliojimo įrankių.

Kad įdiegtumėte pasirkinktą sistemos žurnalizavimo įrankį, įdiekite jį komandos emerge pagalba, ir pridėkite jį į numatytąjį įkrovos lygį, pasinaudodami rc-update. Kitame pavyzdyje parodomas syslog-ng įdiegimas. Žinoma, pakeiskite savo sistemos žurnalizavimo įrankiu.

Kodo sąrašas 1.1: Sistemos žurnalizavimo įrankio diegimas

# emerge syslog-ng
# rc-update add syslog-ng default

9.b. Nebūtina: Cron tarnyba

Kita yra cron tarnyba. Nors ji yra nebūtina ir nėra privaloma jūsų sistemai, yra išmintinga ją įdiegti. Tačiau kas yra cron tarnyba? Cron tarnyba vykdo suplanuotas komandas. Ji yra labai paranki, jei jūs turite reguliariai vykdyti kokią nors komandą (pavyzdžiui kasdien, kas savaitę ar kas mėnesį).

Gentoo siūlo tris galimas cron tarnybas: dcron, fcron ir vixie-cron. Bet kurio iš jų diegimas yra panašus į sistemos žurnalizavimo įrankio. Tačiau, dcron ir fcron reikalauja papildomos konfigūracijos komados, t.y. crontab /etc/crontab. Jei jūs nežinote ką pasirinkti, naudokite vixie-cron.

Diegimui be tinklo sujungimo mes teikiame tik vixie-cron. Jeigu jūs norite kitos cron tarnybos, galite palaukti ir įdiegti ją vėliau.

Kodo sąrašas 2.1: Cron tarnybos diegimas

# emerge vixie-cron
# rc-update add vixie-cron default
(Tik jei pasirinkote dcron arba fcron) # crontab /etc/crontab

9.c. Nebūtina: Rinkmenų indeksavimas

Jeigu norite indeksuoti savo sistemos rinkmenas, kad galėtumėte greitai jas rasti, naudodamiesi locate įrankiu, turite įdiegti sys-apps/slocate.

Kodo sąrašas 3.1: Slocate diegimas

# emerge slocate

9.d. Rinkmenų išdėstymo sistemos įrankiai

Priklausomai nuo to, kokią rinkmenų išdėstymo sistemą naudojate, turite įdiegti reikiamas rinkmenų išdėstymo sistemos paslaugų programas (rinkmenų išdėstymo sistemos vientisumo tikrinimui, papildomų rinkmenų išdėstymo sistemų kūrimui ir t.t.). Turėkite omenyje, jog įrankiai, skirti ex2/ext3 rinkmenų išdėstymo sistemų valdymui (e2fsprogs) jau įdiegti kaip sistemos dalis.

Šioje lentelėje yra įrankių, kuriuos jums reikia įdiegti, jei naudojate tam tikrą rinkmenų išdėstymo sistemą, sąrašas:

Rinkmenų išdėstymo sistema Įrankis Diegimo komanda
XFS xfsprogs emerge xfsprogs
ReiserFS reiserfsprogs emerge reiserfsprogs
JFS jfsutils emerge jfsutils

Jei jūs esate EVMS naudotojas, jūs taip pat galite įdiegti evms:

Kodo sąrašas 4.1: EVMS įrankių diegimas

# USE="-gtk" emerge evms

USE="-gtk" užkirs kelią priklausomybių įdiegimui. Jeigu jūs norėsite aktyvuoti grafinius evms įrankius, vėliau jūs galėsite evms perkompiluoti.

9.e. Tinklo įrankiai

Jei jums nereikia jokių papildomų įrankių tinklui (tokių kaip ppp ar dhcp klientas), tęskite su skyriumi Įkrovos tvarkyklės konfigūravimas.

Nebūtina: DHCP kliento diegimas

Jei jums reikia, kad „Gentoo“ IP adresą jūsų tinklo sąsajai gautų automatiškai, savo sistemoje turite įdiegti dhcpcd (ar bet kurią kitą DHCP kliento programą -- esamų DHCP kliento programų sąrašą žiūrėkite skyriuje „Modulinis tinklas“). Jiegu to nepadarysite dabar, po „Gentoo“ įdiegimo jūs galite nebeprisijungti prie interneto!

Kodo sąrašas 5.1: dhcpcd diegimas

# emerge dhcpcd

Nebūtina: PPPoE kliento diegimas

Jei jums reikia ppp, kad prisijungtumėte prie tinklo, turite jį įdiegti.

Kodo sąrašas 5.2: ppp diegimas

# emerge ppp

Dabar tęskite su skyriumi Įkrovos tvarkyklės konfigūravimas.

10. Įkrovos tvarkyklės konfigūravimas

11. „Gentoo“ diegimo užbaigimas

11.a. Naudotojų administravimas

Naudotojo kasdieniniam darbui kūrimas

Darbas pagrindiniu (root) naudotoju „Unix/Linux“ sistemoje yra nesaugus ir turi būt vengiamas. Todėl yra primygtinai patariama sukurti naudotoją kasdieniniam naudojimui.

Grupės, kurioms priklauso vartotojas, nusako, kokius veiksmus jis gali atlikti. Šioje lentelėje pateikta keletas svarbių grupių, kurias jūs galbūt norėsite naudoti.

Grupė Aprašymas
audio leidžia naudotis garso įrenginiais
cdrom leidžia tiesiogiai pasiekti optinius įrenginius
floppy leidžia tiesiogiai pasiekti lanksčiųjų diskelių įrenginius
games leidžia žaisti žaidimus
portage leidžia vykdyti emerge --pretend paprastam vartotojui
usb leidžia naudotis USB įrenginiais
plugdev leidžia prijungti ir naudotis prijungiamaisiais įrenginiais, tokiais kaip kameros ir USB atmintinės
video leidžia pasiekti vaizdo įrašymo įrenginius ir naudoti aparatinį vaizdo spartinimą
wheel leidžia naudotis su

Pavyzdžiui, norėdami sukurti naudotoją jonas, kuris yra grupių wheel, users ir audio narys, iš pradžių prisijunkite kaip pagrindinis (root) naudotojas (tik root gali kurti naudotojus) ir įvykdykite useradd:

Kodo sąrašas 1.1: Naudotojo kasdieniniam darbui sukūrimas

Login: root
Password: (Jūsų root slaptažodis)

# useradd -m -G users,wheel,audio -s /bin/bash jonas
# passwd jonas
Password: (Įveskite jono slaptažodį)
Re-enter password: (Patvirtinkite jono slaptažodį)

Prireikus atlikti užduotį root teisėmis, naudotojas gali naudoti su - tam, kad laikinai gautų root privilegijas. Kitas būdas yra naudoti sudo paketą, kuris, deramai sukonfigūruotas, yra labai saugus.

11.b. Disko valymas

Tar archyvų šalinimas

Dabar, kai pabaigėte „Gentoo“ diegimą ir perkrovėte kompiuterį, jei viskas vyko sklandžiai, galite pašalinti atsiųstus stage3 tar archyvus ir „Portage“ atvaizdą iš savo standžiojo disko. Atminkite, kad jie buvo atsiųsti į jūsų / katalogą.

Kodo sąrašas 2.1: Šaliname stage3 tar archyvą

# rm /stage3-*.tar.bz2*

Kodo sąrašas 2.2: Šaliname „Portage“ atvaizdą

# rm /portage-latest.tar.bz2*

12. Kur eiti nuo čia?

12.a. Dokumentacija

Sveikiname! Dabar jūs jau turite veikiančią „Gentoo“ sistemą. Bet kur eiti toliau? Kokie yra jūsų pasirinkimai? Ką išsiaiškinti pirmiausia? Gentoo suteikia daugybę galimybių, ir daug dokumentuotų (ir mažiau dokumentuot1ų) ypatybių.

Jūs neabejotinai turėtumėte žvilgtelėti į kitą „Gentoo“ vadovo dalį „Darbas su „Gentoo“, kuri paaiškins, kaip išlaikyti atnaujintą savo programinę įrangą, kaip įdiegti daugiau programinės įrangos, kokios yra USE vėliavėles, kaip veikia „Gentoo“ įkrovos sistema ir t.t.

Jeigu jūs esate susidomėjęs optimizuoti savo sistemą naudoti kaip darbinį kompiuterį, arba jūs norite išmokti kaip sukonfigūruoti savo sistemą kaip visiškai veikiantį stalinį kompiuterį, žiūrėkite mūsų plačius „Gentoo“ darbastalio dokumentacijos išteklius“. Be to, jūs tikriausiai norite pasinaudoti mūsų lokalizavimo vadovu pasidaryti savo sistemą lengviau prieinamesnę namie.

Mes taip pat turime „Gentoo“ saugumo vadovą“, kurį yra tikrai verta pasiskaityti.

Pilnam mūsų dokumentacijos sarašui pasitikrinkite mūsų dokumentacijos išteklių puslapį.

12.b. „Gentoo“ internete

Jūs visuomet esate laukiamas mūsų „Gentoo“ forumuose arba mūsų „Gentoo“ IRC kanaluose.

Mes taip pat turime keletą pašto konferencijų, kurios yra atviros visiems mūsų naudotojams. Informacija kaip prisijungti yra šiame puslapyje.

Dabar mes užsičiaupsime ir leisime jums mėgautis diegimu. :)

B. Darbas su „Gentoo“

1. „Portage“ įvadas

1.a. Pažintis su „Portage“

„Portage“ - tikriausiai žymiausia „Gentoo“ inovacija programinės įrangos valdyme. Dėl savo didelio lankstumo bei didžiulio funkcijų kiekio ji dažnai minima kaip geriausias „Linux“ programinės įrangos valdymo įrankis.

Visa „Portage“ sukurta „Python“ ir „Bash“ pagrindu, taigi visiškai prieinama naudotojams, kadangi abi yra scenarijų (scripting) kalbos.

Dauguma naudotojų dirbs „Portage“, naudodamiesi emerge įrankiu. Šis skyrius nėra skirtas informacijos, prieinamos „emerge“ žinyno puslapyje, atkartojimui. Pilną „emerge“ parametrų aprašymą galite rasti žinyno puslapyje:

Kodo sąrašas 1.1: „emerge“ žinyno puslapio skaitymas

$ man emerge

1.b. „Portage“ medis

„Ebuild“ rinkmenos

Kai kalbame apie paketus, dažnai turime omenyje programinės įrangos pavadinimus, prieinamus „Gentoo“ naudotojams „Portage“ medyje. „Portage“ medis yra ebuild rinkmenų, kuriose yra visa informacija, reikalinga „Portage“ programinės įrangos valdymui (diegimui, paieškai, užklausoms...). Šios „ebuild“ rinkmenos numatytai yra /usr/portage kataloge.

Kai jūs prašote „Portage“ atlikti kokį nors veiksmą, susijusį su programinės įrangos pavadinimais, kaip pagrindą ji naudos jūsų sistemos „ebuild“ rinkmenas. Taigi svarbu, kad jūs reguliariai atnaujintumėte savo sistemos „ebuild“ rinkmenas, kad „Portage“ turėtų informaciją apie naują programinę įrangą, saugumo atnaujinimus ir panašiai.

„Portage“ medžio atnaujinimas

„Portage“ medis paprastai atnaujinamas per rsync, greitą prieauginę rinkmenų perdavimo paslaugų programą. Atnaujinimas yra gana paprastas, kadangi emerge komanda teikia „rsync“ sąsają:

Kodo sąrašas 2.1: „Portage“ medžio atnaujinimas

# emerge --sync

Jeigu dėl ugniasienės apribojimų negalite naudotis „rsync“, vis vien galite atnaujinti savo „Portage“ medį naudodamiesi mūsų kikvieną dieną sukuriamomis „Portage“ medžio momentinėmis kopijomis. emerge-webrsync įrankis automatiškai atsiunčia ir įdiegia jūsų sistemoje naujausią momentinę kopiją:

Kodo sąrašas 2.2: „emerge-webrsync“ paleidimas

# emerge-webrsync

1.c. Programinės įrangos valdymas

Programinės įrangos paieška

Programinės įrangos pavadinimų paieškai „Portage“ medyje galite naudotis į emerge įtaisytomis galimybėmis. Numatytai emerge --search grąžina sąrašą paketų, kurių pavadinimas atitinka (pilnai arba dalinai) nurodytą paieškos teriminą.

Pavyzdžiui, norėdami rasti visus paketus, kurių pavadinimuose yra „pdf“:

Kodo sąrašas 3.1: Paieška paketų, kurių pavadinimuose yra „pdf“

$ emerge --search pdf

Jei norite ieškoti ir aprašymuose, galite naudoti --searchdesc (arba -S) modifikatorių:

Kodo sąrašas 3.2: Paieška paketų, susijusių su „pdf“

$ emerge --searchdesc pdf

Kai žvilgtelėsite į išvestį, pastebėsite, kad jums pateikiama galybė informacijos. Laukai aiškiai įvardinti, todėl nesigilinsime į jų reikšmes:

Kodo sąrašas 3.3: „emerge --search“ išvesties pavyzdys

*  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

Programinės įrangos diegimas

Vos tik rasite norimos programinės įrangos pavadinimą, galite ją lengvai įdiegti naudodamiesi emerge: paprasčiausiai pridėkite paketo pavadinimą. Pavyzdžiui, jei norite įsidiegti gnumeric:

Kodo sąrašas 3.4: „gnumeric“ diegimas

# emerge gnumeric

Kadangi daugelis programų priklauso viena nuo kitos, bet kuriuo bandymu įdiegti kokį nors programinės įrangos paketą taip pat gali būti įdiegtos kelios priklausomybės. Nesijaudinkite, „Portage“ puikiai tvarkosi su priklausomybėmis. Jei norite sužinoti, ką „Portage“ įdiegtų, kai paprašytumėte įdiegti tam tikrą paketą, pridėkite --pretend modifikatorių. Pavyzdžiui:

Kodo sąrašas 3.5: Įsivaizduojamas „gnumeric“ diegimas

# emerge --pretend gnumeric

Kai prašote „Portage“ įdiegti paketą, ji iš interneto atsiųs reikiamus pirminius programų tekstus (jei reikia) ir numatytai išsaugos juos /usr/portage/distfiles kataloge. Po to ji išarchyvuos, sukompiliuos ir įdiegs paketą. Jei norite, kad „Portage“ tik atsiųstų pirminius programų tekstus, tačiau jų nediegtų, prie emerge komandos pridėkite parametrą --fetchonly. When you ask Portage to install a package, it will download the necessary source code from the internet (if necessary) and store it by default in /usr/portage/distfiles. After this it will unpack, compile and install the package. If you want Portage to only download the sources without installing them, add the --fetchonly option to the emerge command:

Kodo sąrašas 3.6: „gnumeric“ pirminių tekstų atsiuntimas

# emerge --fetchonly gnumeric

Įdiegto paketo dokumentacijos paieška

Dauguma paketų turi savas dokumentacijas. Ar paketo dokumetacija turėtų būti įdiegta, ar ne, kartais nustato doc USE vėliavėlė. Ar yra doc USE vėliavėlė, galite patikrinti emerge -vp <paketo pavadinimas> komanda.

Kodo sąrašas 3.7: Tikrinimas, ar yra „doc“ USE vėliavėlė

(Žinoma, „alsa-lib“ yra tik pavyzdys.)
# emerge -vp alsa-lib
[ebuild  N    ] media-libs/alsa-lib-1.0.14_rc1  -debug +doc 698 kB

Geriausias būdas aktyvinti doc USE vėliavėlę yra daryti tai kiekvienam paketui atskirai, nadojant /etc/portage/package.use, kad gautumėte tik jus dominančių paketų dokumentacijas. Žinoma, jog šios vėliavėlės globalus aktyvinimas gali sukelti problemų dėl žiedinių priklausomybių. Daugiau informacijos galite rasti skyriuje „USE vėliavėlės“.

Vos tik paketas būna įdiegtas, jo dokumentaciją paprastai galima rasti katalogo /usr/share/doc pokatalogyje, pavadintame paketo vardu. Taip pat galite gauti visų įdiegtų rinkmenų sąrašą, pasinaudodami įrankiu equery, kuris yra app-portage/gentoolkit paketo dalis.

Kodo sąrašas 3.8: Paketo dokumentacijos paieška

# ls -l /usr/share/doc/alsa-lib-1.0.14_rc1
total 28
-rw-r--r--  1 root root  669 May 17 21:54 ChangeLog.gz
-rw-r--r--  1 root root 9373 May 17 21:54 COPYING.gz
drwxr-xr-x  2 root root 8560 May 17 21:54 html
-rw-r--r--  1 root root  196 May 17 21:54 TODO.gz

(Dominančių rinkmenų paieškai galite naudoti ir „equery“:)
# equery files alsa-lib | less
media-libs/alsa-lib-1.0.14_rc1
* Contents of media-libs/alsa-lib-1.0.14_rc1:
/usr
/usr/bin
/usr/bin/alsalisp
(Išvestis sutrumpinta)

Programinės įrangos šalinimas

Kai norite iš savo sistemos pašalinti programinės įrangos paketą, naudokite emerge --unmerge. Taip „Portage“ bus pranešta pašalinti iš sistemos visas įdiegtas to paketo rinkmenas, išskyrus tos programos konfigūracines rinkmenas, jeigu po įdiegimo jas keitėte. Konfigūracinių rinkmenų palikimas leidžia jums pratęsti darbą su paketu, jei kada nors nuspręstumėte jį vėl įdiegti.

Tačiau turite būti ypač atsargūs: „Portage“ netikrins, ar paketas, kurį norite pašalinti, nėra reikalingas kitam paketui. Vis dėlto ji įspės jus, jei norėsite pašalinti svarbų paketą, kurį pašalinus jūsų sistema nebeveiktų.

Kodo sąrašas 3.9: „gnumeric“ šalinimas iš sistemos

# emerge --unmerge gnumeric

Kai šalinate paketą iš savo sistemos, to paketo priklausomybės, kurios buvo įdiegtos automatiškai diegiant programinę įrangą, paliekamos. Kad „Portage“ aptiktų visas priklausomybes, kurios gali būti pašalintos, naudokitės emerge komandos --depclean funkcija. Tai aptarsime vėliau.

Sistemos atnaujinimas

Kad išlaikytumėte savo sistemą puikioje būklėje (ir, žinoma, įsidiegtumėte naujausius saugumo atnaujinimus), sistemą turite reguliariai atnaujinti. Kadangi „Portage“ tikrina tik „ebuild“ rinkmenas jūsų „Portage“ medyje, pirmiausia turite atnaujinti savo „Portage“ medį. Kai „Portage“ medis atnaujintas, naudodami komandą emerge --update world galite atnaujinti savo sistemą. Kitame pavyzdyje naudosime ir --ask modifikatorių, kuriuo „Portage“ bus nurodyta atvaizduoti ketinamų atnaujinti paketų sąrašą ir paklausta jūsų, ar norite tęsti.

Kodo sąrašas 3.10: Savo sistemos atnaujinimas

# emerge --update --ask world

Tuomet „Portage“ ieškos jūsų įdiegtų paketų naujų versijų. Visgi ji patikrins tik programų, kurias jūs aiškiai esate įdiegę (programų, išvardintų rinkmenoje /var/lib/portage/world), versijas: ji visiškai netikrins jų priklausomybių. Jeigu norite atnaujinti kiekvieną paketą, esantį jūsų sistemoje, pridėkite argumentą --deep:

Kodo sąrašas 3.11: Visos sistemos atnaujinimas

# emerge --update --deep world

Kadangi saugumo atnaujinimai būna ir jūsų sistemos paketams, kurių nesate aiškiai nurodę įdiegti (bet įdiegiami kaip kitų programų priklausomybės), kartas nuo karto rekomenduojama įvykdyti šią komandą.

Jei neseniai esate pakeitę kurias nors USE vėliavėles, tikriausiai norėsite pridėti ir --newuse argumentą. Tuomet „Portage“ patikrins, ar pakeitimas reikalauja naujų paketų įdiegimo arba esamų sukompiliavimo iš naujo:

Kodo sąrašas 3.12: Pilno atnaujinimo atlikimas

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

Metapaketai

Kai kurie paketai „Portage“ medyje neturi jokio realaus turinio, bet yra naudojami paketų rinkinio diegimui. Pavyzdžiui, kde paketas jūsų sistemoje įdiegs pilną KDE aplinką, pritraukdamas įvairius paketus, susijusius su KDE, kaip priklausomybes.

Jei kada nors norėsite pašalinti tokį paketą iš savo sistemos, emerge --unmerge įvykdymas paketui neturės daug įtakos, kadangi priklausomybės tebeliks sistemoje.

„Portage“ turi ir tokių likutinių priklausomybių šalinimo funkciją, tačiau kadangi programinės įrangos prieinamumas dinamiškai priklausomas, pirmiausia turite pilnai atnaujinti visą savo sistemą, įskaitant jums keičiant USE vėliavėles padarytus naujus pakeitimus. Po to galite įvykdyti emerge --depclean, kad pašalintumėte likutines priklausomybes. Kai tai padaryta, turite sukompiliuoti iš naujo programas, kurios buvo dinamiškai susietos su dabar jau pašalintais nebereikalingais programinės įrangos paketais.

Visa tai įgyendinama šiomis trimis komandomis:

Kodo sąrašas 3.13: Likutinių priklausomybių šalinimas

# emerge --update --deep --newuse world
# emerge --depclean
# revdep-rebuild

revdep-rebuild pateikiamas gentoolkit pakete; nepamirškite pirmiausia jo įdiegti:

Kodo sąrašas 3.14: „gentoolkit“ paketo diegimas

# emerge gentoolkit

1.d. Kai „Portage“ skundžiasi...

Apie lizdus, virtualius paketus, atšakas, architektūras ir profilius

Kaip minėjome anksčiau, „Portage“ nepaprastai galinga ir palaiko daugybę funkcijų, kurių trūksta kitiems programinės įrangos valdymo įrankiams. Kad tai suprastumėte, pernelyg nesigilindami paaiškinsime kelis „Portage“ aspektus.

Dėl „Portage“ skirtingos vieno paketo versijos vienoje sistemoje gali būti kartu. Nors kiti platinamieji paketai linkę įvardinti tuos paketus pagal jų versijas (pavyzdžiui, freetype ir freetype2), „Portage“ naudoja technologiją pavadinimu LIZDAS (SLOT). „Ebuild“ rinkmenoje versijai nurodomas tam tikras LIZDAS (SLOT). „Ebuild“ rinkmenos su skirtingais lizdais gali būti kartu vienoje sistemoje. Pavyzdžiui, freetype paketas turi „ebuild“ rinkmenas su nurodytais lizdais SLOT="1" ir SLOT="2".

Dar yra paketų, kurie teikia tapačias funkcijas, tik skirtingai realizuotas. Pavyzdžiui, ir metalogd, ir sysklogd, ir syslog-ng yra sistemos žurnalizavimo įrankiai. Programos, priklausančios nuo „sistemos žurnalizavimo įrankio“ negali turėti kaip priklausomybės, pavyzdžiui, metalogd, kadangi tinka ir kiti sistemos žurnalizavimo įrankiai. „Portage“ galimi virtualūs paketai (virtuals): kiekvienas sistemos žurnalizavimo įrankis teikia virtualų paketą virtual/syslog, taigi

Programinė įranga „Portage“ medyje gali būti skirtingose atšakose. Numatytai jūsų sistema priima tik „Gentoo“ manymu stabilius paketus. Dauguma naujų užregistruojamų programinės įrangos paketų patenka į testavimo atšaką, kas reiškia, jog prieš juos paskelbiant stabiliais turi būti atlikta daugiau bandymų. Nors jūs „Portage“ medyje matysite tos programinės įrangos „ebuild“ rinkmenas, „Portage“ jos neatnaujins, kol ši neatsiras stabilioje atšakoje.

Kai kuri programinė įranga prieinama tik kelioms architektūroms. Programinė įranga arba neveikia kitose architektūrose, arba jai reikia daugiau bandymų, arba plėtotojas, patalpinęs tą prorgraminę įrangą į „Portage“ medį neturi galimybės patikrinti, ar paketas veikia skirtingose architektūrose.

Kiekvienas „Gentoo“ diegimas laikosi tam tikro profilio (profile), kuriame, be kitos informacijos, yra paketų, reikalingų normaliam sistemos funkcionavimui, sąrašas.

Užblokuoti paketai

Kodo sąrašas 4.1: „Portage“ įspėjimas apie blokuotus paketus (naudojant --pretend)

[blocks B     ] mail-mta/ssmtp (is blocking mail-mta/postfix-2.2.2-r1)

Kodo sąrašas 4.2: „Portage“ įspėjimas apie blokuotus paketus (nenaudojant --pretend)

!!! Error: the mail-mta/postfix package conflicts with another package.
!!!        both can't be installed on the same system together.
!!!        Please use 'emerge --pretend' to determine blockers. 

„Ebuild“ rinkmenose yra specifiniai laukai, informuojantys „Portage“ apie paketų priklausomybes. Įmanomos dviejų rūšių priklausomybės: kompiliavimo, nurodytos lauke DEPEND, ir vykdymo, nurodytos lauke RDEPEND. Kai viena iš tų priklausomybių aiškiai pažymi paketą ar virtualų paketą kaip nesuderinamą, jis užblokuojamas.

Kad ištaisytumėte blokavimą, galite pasirinkti nediegti paketo arba pirmiausia pašalinti konfliktuojantį paketą. Duotame pavyzdyje galite rinktis nediegti postfix arba pirma pašalinti ssmtp paketą.

Galite aptikti ir užblokuotus tam tikrų versijų paketus, pavyzdžiui <media-video/mplayer-bin-1.0_rc1-r2. Tokiu atveju blokavimą pašalintų paketo atnaujinimas iki naujesnės versijos.

Taip pat įmanoma, jog du paketai, kurie abu turėtų būti įdiegti, blokuoja vienas kitą. Tokiu mažai tikėtinu atveju turėtumėte sužinoti, kodėl jums reikia įdiegti juos abu. Daugeliu atvejų galite apsieiti ir tik su vienu iš paketų. Jei ne, praneškite apie riktą „Gentoo“ riktų sekimo sistemoje.

Užmaskuoti paketai

Kodo sąrašas 4.3: „Portage“ įspėjimas apie užmaskuotus paketus

!!! all ebuilds that could satisfy "bootsplash" have been masked. 

Kodo sąrašas 4.4: „Portage įspėjimas apie užmaskuotus paketus - priežastis

!!! 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)
- games-fps/unreal-tournament-451 (masked by: package.mask)
- sys-libs/glibc-2.3.2-r11 (masked by: profile)

Kai norite įdiegti paketą, kuris neprieinamas jūsų sistemai, gausite tokį pranešimą apie užmaskuotą paketą. Jūs turėtumėte pabandyti įsidiegti kitą programą, prieinamą jūsų sistemai, arba palaukti, kol paketas bus prieinamas. Visuomet yra priežastis, kodėl paketas neprieinamas:

  • ~arch keyword reiškia, jog programa nėra pakankamai išbandyta, kad galėtų būti pateikta stabilioje šakoje. Palaukite kelias dienas ar savaites ir bandykite vėl.
  • -arch keyword arba -* keyword reiškia, jog programa neveikia jūsų architektūroje. Jeigu tikite, jog programa visgi veikia, praneškite apie riktą mūsų riktų sekimo sistemos tinklalapyje.
  • missing keyword reiškia, jog programa dar nebuvo išbandyta jūsų architektūroje. Paprašykite pritaikymo architektūroms komandos išbandyti paketą arba išbandykite jį už juos ir praneškite savo pastabas mūsų riktų sekimo sistemos tinklalapyje.
  • package.mask reiškia, jog nustatyta, kad paketas sugadintas, nestabilus ar dar blogiau ir buvo apgalvotai pažymėtas kaip nenaudotinas.
  • profile reiškia, jog nustatyta, kad paketas netinka jūsų profiliui. Programa gali sugandinti jūsų sistemą, jei bus įdiegta, arba ji tiesiog nesuderinama su jūsų naudojamu profiliu.

Trūkstamos priklausomybės

Kodo sąrašas 4.5: „Portage“ įspėjimas apie trūkstamą priklausomybę

emerge: there are no ebuilds to satisfy ">=sys-devel/gcc-3.4.2-r4".

!!! Problem with ebuild sys-devel/gcc-3.4.2-r2
!!! Possibly a DEPEND/*DEPEND problem. 

Programa, kurią bandote įdiegti, priklauso nuo kito paketo, kuris jūsų sistemai neprieinamas. Prašome riktų sekimo sistemoje patikrinti, ar ši problema jau žinoma, o jei ne, prašome apie ją pranešti. To neturėtų atsitikti ir laikoma riktu, nebent jūs derinate skirtingas atšakas.

Nevienareikšmiai „ebuild“ rinkmenų pavadinimai

Kodo sąrašas 4.6: „Portage“ įspėjimas apie nevienareikšmius paketų pavadinimus

!!! The short ebuild name "aterm" is ambiguous.  Please specify
!!! one of the following fully-qualified ebuild names instead:

    dev-libs/aterm
    x11-terms/aterm

Programos, kurią norite įsidiegti, pavadinimą turi daugiau nei vienas paketas. Jūs turite pateikti ir kategorijos pavadinimą. „Portage“ informuos jus apie galimus pasirinkimo variantus.

Žiedinės priklausomybės

Kodo sąrašas 4.7: „Portage“ įspėjimas apie žiedines priklausomybes

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

Du paketai (ar daugiau), kuriuos norite įdiegti, priklauso vienas nuo kito, taigi negali būti įdiegti. Tikriausiai tai riktas „Portage“ medyje. Prašome po kurio laiko jį atnaujinti ir pabandyti dar kartą. Taip pat galite patikrinti, ar problema jau žinoma, riktų sekimo sistemoje, o jei ne, apie ją pranešti.

Nepavykęs atsiuntimas

Kodo sąrašas 4.8: „Portage“ įspėjimas apie nepavykusį atsiuntimą

!!! Fetch failed for sys-libs/ncurses-5.4-r5, continuing...
(...)
!!! Some fetch errors were encountered.  Please see above for details.

„Portage“ nepavyko atsiųsti pirminių nurodytos programos tekstų ir ji bandys diegti likusias programas (jei įmanoma). Ši triktis gali būti dėl netinkamai sinchronizuotos dubliuojamosios tinklavietės arba dėl to, jog „ebuild“ rinkmena nurodo į neegzistuojantį adresą. Serveris, kuriame yra pirminiai programos tekstai, taip pat gali dėl kažkokių priežasčių neveikti.

Bandykite vėl po vienos valandos, kad patikrintumėte, ar problema vis dar yra.

Sisteminio profilio apsauga

Kodo sąrašas 4.9: „Portage“ įspėjimas apie profilio apsaugotą paketą

!!! Trying to unmerge package(s) in system profile. 'sys-apps/portage'
!!! This could be damaging to your system.

Jūs nurodėte pašalinti paketą, kuris yra jūsų sistemos pagrindinių paketų dalis. Jis įrašytas jūsų profilyje kaip būtinas ir todėl neturėtų būti pašalintas iš sistemos.

Nesėkmingi kontrolinės sumos (digest) patikrinimai

Kartais, kai bandysite įdiegti paketą, veiksmas nepavyks ir išvysite tokį pranešimą:

Kodo sąrašas 4.10: Nesėkmingas kontrolinės sumos patvirtinimas

>>> checking ebuild checksums
!!! Digest verification failed:

Tai reiškia, jog kažkas negerai su „Portage“ medžiu. Dažnai tai būna dėl to, jog plėtotojas, talpindamas paketą į medį, padarė klaidą.

Kai kontrolinės sumos patikrinimas nesėkmingas, nebandykite kontrolinės sumos iš naujo kurti patys. Komandos ebuild foo manifest įvykdymas neištaisys problemos ir beveik neabejotinai tik pablogins situaciją!

Vietoje to palaukite vieną ar kelias valandas, kol medis bus sutvarkytas. Tikėtina, jog klaida iškart buvo pastebėta, tačiau kol „Portage“ medžio ištaisymas įsigalios, gali praeiti šiek tiek laiko. Kol laukiate, patikrinkite, ar kas nors jau pranešė problemą riktų sekimo sistemoje. Jeigu ne, užpildykite rikto pranešimą apie sugadintą paketą.

Kai tik pastebėsite, jog riktas ištaisytas, galite atnaujinti „Portage“ medį iš naujo, kad gautumėte ištaisytą kontrolinę sumą.

Svarbu: Tai nereiškia, kad galite atnaujinti savo medį kelis kartus iš eilės. Kaip nurodyta „rsync“ taisyklėse (kai vykdote emerge --sync), naudotojams, atnaujinantiems medį per dažnai, priėjimas bus uždraustas! Tiesą sakant, geriausia tiesiog palaukti iki kito suplanuoto atnaujinimo, kad neapkrautumėte „rsync“ serverių.

2. USE vėliavėlės

2.a. Kas yra USE vėliavėlės?

USE vėliavėlių idėja

Kai jūs diegiate „Gentoo“ (ar bet kurį kitą platinamąjį paketą (distribution), ar net kitą operacinę sistemą) jūs priimate tam tikrus sprendimus, priklausančius nuo aplinkos, kurioje dirbate. Serverio konfigūracija skiriasi nuo kompiuterizuotos darbo vietos konfigūracijos. Kompiuterizuota darbo vieta, skirta žaidimams, skiriasi nuo kompiuterizuotos darbo vietos, skirtos 3D atvaizdavimui.

Rinktis reikia sprendžiant ne tik kuriuos paketus įdiegti, bet ir kokias savybes kiekvienas paketas turi palaikyti. Jeigu jums nereikia OpenGL, kam jums gaišti laiką jį įdiegiant ir nustatant OpenGL palaikymą dalyje jūsų paketų? Jeigu jūs nesiruošiate naudoti KDE, kam jums kompiliuoti paketus su KDE palaikymu, jeigu jie pilnai veikia ir be jo?

Norėdami naudotojams padėti sprendžiant ką įdiegti/aktyvuoti ir ką ne, mes norėjome, kad naudotojas apibrėžtų savo aplinką kaip įmanoma paprasčiau. Tai verčia vartotojus nuspręsti, ko jie iš tikro nori, ir leidžia „Portage“, mūsų paketų valdymo sistemai, priimti naudingus sprendimus.

USE vėliavėlės apibrėžimas

USE vėliavėlė yra raktinis žodis, kuris apibrėžia palaikymą ir priklausomybių informaciją tam tikrai koncepcijai. Apibrėžus tam tikrą USE vėliavėlę, „Portage“ žinos, kad jūs norite palaikymo pasirinktam raktiniam žodžiui. Aišku, tai taip pat pakeičia paketo priklausomybių informaciją.

Pasinaudokime konkrečiu pavyzdžiu: kde raktiniu žodžiu. Jeigu jūs neturite šio raktinio žodžio jūsų USE kintamajame, visi paketai, kurie turi pasirinktinį KDE palaikymą bus kompiliuojami be KDE palaikymo. Visi paketai, kurie turi pasirinktines KDE priklausomybes, bus įdiegti be KDE bibliotekų (kaip priklausomybių) įdiegimo. Jeigu jūs esate įtraukęs kde raktinį žodį, tada tie paketai bus sukompiliuoti su KDE palaikymu, o KDE bibliotekos bus įdiegtos kaip priklausomybės..

Teisingai nurodydami raktinius žodžius, jūs gausite sistemą pritaikyta jūsų poreikiams.

Kokios USE vėliavėlės egzistuoja?

Yra du USE vėliavėlių tipai: globalios ir lokalios USE vėliavėlės.

  • Globali USE vėliavėlė yra naudojama keleto paketų visoje sistemoje.
  • Lokali USE vėliavėlė yra naudojama vieno paketo.

Esamų globalių USE vėliavėlių sąrašą galima rasti internete arba rinkmenoje /usr/portage/profiles/use.desc.

Esamų lokalių USE vėliavėlių sąrašą galima rasti rinkmenoje /usr/portage/profiles/use.local.desc.

2.b. USE vėliavėlių naudojimas

Pastovių USE vėliavėlių nustatymas

Tikėdamiesi, kad jūs esate įtikinti USE vėliavėlių svarbumu, mes dabar jus informuosime kaip nustatyti USE vėliavėles.

Kaip minėta anksčiau, visos USE vėliavėlės yra nustatomos kintamuoju USE. Norėdami naudotojams palengvinti USE vėliavėlių ieškojimą ir pasirinkimą, mes pateikiame USE nustatymą pagal nutylėjimą. Šis nustatymas yra rinkinys USE vėliavėlių, kurios, mūsų nuomone, yra paprastai naudojamos „Gentoo“ naudotojų. Šis nustatymas pagal nutylėjimą yra nurodomas jūsų profilio make.defaults rinkmenų dalyje.

Jūsų sistemos profilis yra nurodomas /etc/make.profile nuoroda. Kiekvienas profilis dirba ant kito, platesnio profilio, todėl galutinis rezultatas yra visų profilių suma. Plačiausias profilis yra base profilis (/usr/portage/profiles/base).

Pažiūrėkime į 2004.3 profilio nustatymus pagal nutylėjimą:

Kodo sąrašas 2.1: Suminis make.defaults USE kintamasis 2004.3 profiliui

(Šis pavyzdys yra suma nustatymu base, default-linux, default-linux/x86
ir default-linux/x86/2004.3 profiliuose)
USE="x86 oss apm arts avi berkdb bitmap-fonts crypt cups encode fortran f77
     foomaticdb gdbm gif gpm gtk imlib jpeg kde gnome libg++ libwww mad
     mikmod motif mpeg ncurses nls oggvorbis opengl pam pdflib png python qt
     quicktime readline sdl spell ssl svga tcpd truetype X xml2 xmms xv zlib"

Kaip matome, šiame kintamajame jau yra gan nemažai kintamųjų. Nekeiskite jokios make.defaults rinkmenos norėdami pakeisti USE kintamąjį: pasikeitimai šioje rinkmenoje bus panaikinti, kai jūs atnaujinsite Portage!

Norėdami pakeisti šį nustatymą pagal nutylėjimą, jums reikia pridėti arba atimti raktinius žodžius USE kintamajame. Globaliai tai atliekama nustatant USE kintamąjį rinkmenoje /etc/make.conf. Šiame kintamajame jūs pridedate papildomas USE vėliavėles, kurių jums reikia, arba atimate nereikalingas USE vėliavėles. Atimti galima prieš raktinį žodį padedant minusą („-“).

Pavyzdžiui, norėdami panaikinti palaikymą KDE and QT, bet pridėti palaikymą ldap, rinkmenoje /etc/make.conf galite nurodyti šį USE kintamąjį:

Kodo sąrašas 2.2: USE nustatymo rinkmenoje /etc/make.conf pavyzdys

USE="-kde -qt3 -qt4 ldap"

USE vėliavėlių nustatymas atskiriems paketams

Kartais jūs norite nustatyti tam tikrą USE vėliavėlę vienai programai (ar kelioms), bet ne visai sistemai. Tam reikia sukurti katalogą /etc/portage (jeigu jis dar nesukurtas) ir pakeisti rinkmeną /etc/portage/package.use. Paprastai tai yra viena rinkmena, tačiau gali būti ir katalogas; daugiau informacijos ieškokite man portage. Tolesniame pavyzdyje numatoma, jog package.use yra rinkmena.

Pavyzdžiui, jeigu jums nereikia berkdb palaikymo visai sistemai, bet jūs norite jo paketui mysql, jums reiktų įrašyti:

Kodo sąrašas 2.3: /etc/portage/package.use pavyzdys

dev-db/mysql berkdb

Taip pat jūs galite panaikinti USE vėliavėles tam tikram paketui. Pavyzdžiui, jeigu jūs nenorite java palaikymo PHP paketui:

Kodo sąrašas 2.4: /etc/portage/package.use antras pavyzdys

dev-php/php -java

Laikinų USE vėliavėlių nustatymas

Kartais jūs norite nurodyti tam tikrą USE nustatymą tik vienam kartui. Vietoj to, kad redaguotumėte rinkmeną /etc/make.conf du kartus (tam, kad įvykdytumėte pakeitimus ir po to juos panaikintumėte), jūs galite paprasčiausiai nurodyti USE kintamąjį kaip aplinkos kintamąjį. Bet atsiminkite, kad kai jūs iš naujo įdiegsite ar atnaujinsite šią programą (atskirai arba kartu su visa sistema) jūsų pakeitimai nebegalios!

Kaip pavyzdį, mes laikinai panaikinsime java iš USE nustatymų įdiegdami seamonkey.

Kodo sąrašas 2.5: USE naudojimas kaip aplinkos kintamojo

# USE="-java" emerge seamonkey

Pirmenybė

USE nustatymai turi tam tikrą pirmenybę. Jūs nenorėtumėtę nustatyti USE="-java" tik tam, kad pamatytumėtę, jog java vis dar yra nustatytas dėl turinčių pirmenybę nustatymų. USE nustatymų eiliškumas pagal pirmenybę (pirmasis sąraše turi mažiausią prioritetą) yra:

  1. USE nustatymai pagal nutylėjimą iš rinkmenų make.defaults jūsų profilyje
  2. Vartotojo nurodyti USE nustatymai rinkmenoje /etc/make.conf
  3. Vartotojo nurodyti USE nustatymai rinkmenoje /etc/portage/package.use
  4. Vartotojo nurodyti USE nustatymai kaip aplinkos kintamojo

Norėdami pamatyti galutinį USE nustatymą naudojamą „Portage“, įvykdykite komandą emerge --info. Jums bus parodyti visų svarbių kintamųjų (įskaitant ir USE kintamąjį) reikšmės, naudojamos „Portage“.

Kodo sąrašas 2.6: Running emerge --info

# emerge --info

Naujų USE nustatymų pritaikymas visai sistemai

Jeigu jūs pakeitėte USE vėliavėles ir norite atnaujinti visą savo sistemą atsižvelgiant į šiuos pokyčius, naudokitės komandos emerge parametru --newuse:

Kodo sąrašas 2.7: Visos sistemos atnaujinimas

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

Toliau, pasinaudokite „Portage“ depclean tam, kad panaikintumėte sąlygines priklausomybes, kurios buvo „senojoje“ jūsų sistemoje, bet tapo nebereikalingos su naujosiomis USE vėliavėlėmis.

Perspėjimas: emerge --depclean įvykdymas yra pavojinga operacija, todėl ją reikia atlikti dėmesingai. Patikrinkite pateiktą "nebereikalingų" paketų sąrašą, kad įsitikintumėtę, jog nebus ištrinti jums reikalingi paketai. Dėl pateikiamame pavyzdyje naudojamo perjungiklio -p depclean tik pateikia paketų sąrašą, jų neištrindamas.

Kodo sąrašas 2.8: Nebereikalingų paketų ištrynimas

# emerge -p --depclean

Kai depclean baigsis, paleiskite revdep-rebuild tam, kad perdarytumėte visas programas, kurios yra dinamiškai susietos su objektais, kurie galėjo priklausyti ištrintoms programoms. revdep-rebuild yra dalis gentoolkit paketo; nepamirškite jo įdiegti.

Kodo sąrašas 2.9: revdep-rebuild paleidimas

# revdep-rebuild

Kai visi šie veiksmai yra baigti, jūsų sistema naudoja naujus USE vėliavėlių nustatymus.

2.c. Specifinės paketo USE vėliavėlės

Galimų USE vėliavėlių peržiūra

Kaip pavyzdį paimkime paketą seamonkey: kokias USE vėliavėles jis naudoja? Kad tai išsiaiškintume, įvykdykime komandą emerge su parametrais --pretend ir --verbose:

Kodo sąrašas 3.1: Galimų USE vėliavėlių peržiūra

# emerge --pretend --verbose seamonkey
These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild   R   ] www-client/seamonkey-1.0.7  USE="crypt gnome java -debug -ipv6
-ldap -mozcalendar -mozdevelop -moznocompose -moznoirc -moznomail -moznopango
-moznoroaming -postgres -xinerama -xprint" 0 kB

emerge yra ne vienintelis įrankis šiai užduočiai atlikti. Mes turime paketų informacijai dedikuotą įrankį equery, kuris priklauso gentoolkit paketui. Pirmiausia, įdiekime gentoolkit:

Kodo sąrašas 3.2: gentoolkit įdiegimas

# emerge gentoolkit

Dabar paleiskime equery su argumentu uses, kad pažiūrėtume konkretaus paketo USE vėliavėles. Pavyzdžiui, paketui gnumeric:

Kodo sąrašas 3.3: equery panaudojimas naudojamų USE vėliavėlių peržiūrai

# equery --nocolor uses =gnumeric-1.6.3 -a
[ Searching for packages matching =gnumeric-1.6.3... ]
[ Colour Code : set unset ]
[ Legend : Left column  (U) - USE flags from make.conf              ]
[        : Right column (I) - USE flags packages was installed with ]
[ Found these USE variables for app-office/gnumeric-1.6.3 ]
 U I
 - - debug  : Enable extra debug codepaths, like asserts and extra output.
              If you want to get meaningful backtraces see
              http://www.gentoo.org/proj/en/qa/backtraces.xml .
 + + gnome  : Adds GNOME support
 + + python : Adds support/bindings for the Python language
 - - static : !!do not set this during bootstrap!! Causes binaries to be
              statically linked instead of dynamically

3. „Portage“ funkcijos

3.a. „Portage“ funkcijos

„Portage“ turi keletą papildomų funkcijų, kurios gali palengvinti jūsų darbą su ja. Daugeliui šių funkcijų reikalinga tam tikra papildoma programinė įranga, kuri gali pagerinti sistemos saugumą, darbą, patikimumą ir t.t.

Naudojamos „Portage“ funkcijos yra nurodomos rinkmenos /etc/make.conf kintamuoju FEATURES, kuriam priskiriami įvairių funkcijų raktiniai žodžiai, atskirti tarpais. Keletu atveju taip pat reikia įdiegti papildomą programinę įrangą, kuri yra reikalinga konkrečiai funkcijai.

Čia yra išvardintos ne visos „Portage“ funkcijos. Norėdami pamatyti pilną jų apžvalgą, pasinaudokite make.conf žinyno puslapiu:

Kodo sąrašas 1.1: make.conf žinyno puslapis

$ man make.conf

Koks šiuo metu yra FEATURES kintamasis galite sužinoti įvykdę komandą emerge --info ir (patys arba komandos „grep“ pagalba) susiradę kintamąjį FEATURES:

Kodo sąrašas 1.2: Kintamojo FEATURES reikšmės sužinojimas

$ emerge --info | grep FEATURES

3.b. Paskirstytas kompiliavimas

distcc naudojimas

distcc yra programa, naudojama tinkle paskirstyti kompiliavimą keletui nebūtinai identiškų kompiuterių. distcc klientas siunčia visą reikalingą informaciją keletui pasiekiamų distcc serverių (vykdančių distccd) kad jie klientui kompiliuotų dalis išeities teksto. To rezultatas yra mažesnis kompiliavimo laikas.

Daugiau informacijos apie distcc (ir kaip naudotis juo „Gentoo“) galite surasti mūsų „Gentoo“ distcc dokumentacijoje.

distcc įdiegimas

Distcc turi grafinį monitorių, kuriuo galima stebėti, ką jūsų kompiuteris išsiunčia kompiliuoti. Jeigu jūs naudojate Gnome, įtraukite „gnome“ į savo USE kintamąjį. Jeigu jūs nenaudojate Gnome, bet vis tiek norite naudotis grafiniu monitoriumi, įtraukite „gtk“ į savo USE kintamąjį.

Kodo sąrašas 2.1: distcc įdiegimas

# emerge distcc

„Portage“ palaikymo aktyvavimas

Įtraukite distcc į FEATURES kintamąjį rinkmenoje /etc/make.conf. Toliau, pakeiskite MAKEOPTS kintamajį į jūsų norimą. Paplitęs patarimas yra naudoti reikšmę "-jX", kurh X yra skaičius procesorių, vykdančių distccd (įskaitant ir šį kompiuterį) plius vienas, bet jūs galite gauti geresnius rezultatus ir su kitokiais skaičiais.

Dabar įvykdykite distcc-config ir įveskite distcc serverių sąrašą. Pavyzdžiui, tarkime, kad prieinami DistCC serveriai yra 192.168.1.102 (šis kompiuteris), 192.168.1.103 ir 192.168.1.104 (du „nutolę“ kompiuteriai):

Kodo sąrašas 2.2: distcc konfigūravimas naudoti tris distcc serverius

# distcc-config --set-hosts "192.168.1.102 192.168.1.103 192.168.1.104"

Taip pat nepamirškite paleisti distccd tarnybą:

Kodo sąrašas 2.3: distccd tarnybos paleidimas

# rc-update add distccd default
# /etc/init.d/distccd start

3.c. Kompiliacijos padėjimas į podėlį

Apie ccache

ccache yra greitas kompiliatoriaus podėlis. Kai jūs kompiliuojate programą, į podėlį bus padedami tarpiniai rezultatai, ir kai jūs perkompiliuosite tą pačią programą, kompiliavimo laikas bus mažesnis. Dažniems kompiliavimams kompiliavimo laikas gali sumažėti 5 - 10 kartų.

Jeigu jums įdomūs ccache privalumai ir trūkumai, aplankykite ccache tinklalapį.

ccache įdiegimas

Kad įdiegtumėtę ccache, įvykdykite komandą emerge ccache:

Kodo sąrašas 3.1: ccache įdiegimas

# emerge ccache

„Portage“ palaikymo aktyvavimas

Atverkite rinkmeną /etc/make.conf ir įtraukite ccache į FEATURES kintamąjį. Toliau, pridėkite naują kintanąjį CCACHE_SIZE ir nustatykite jį lygų "2G":

Kodo sąrašas 3.2: Redaguojame CCACHE_SIZE rinkmenoje /etc/make.conf

CCACHE_SIZE="2G"

Kad patikrintumėtę ar ccache veikia, liepkite ccache pateikti jums savo statistiką. Kadangi „Portage“ naudoja kitą ccache namų katalogą, jums taip pat reikia nustatyti kintamąjį CCACHE_DIR:

Kodo sąrašas 3.3: ccache statistika

# CCACHE_DIR="/var/tmp/ccache" ccache -s

/var/tmp/ccache yra pagal nutylėjimą „Portage“ naudojamas ccache namų katalogas; jeigu jūs norite pakeisti šį nustatymą, jums reikia nustatyti kintamajį CCACHE_DIR rinkmenoje /etc/make.conf.

Tačiau jeigu jūs patys įvykdysite komandą ccache, bus naudojamas namų katalogas pagal nutylėjimą - ${HOME}/.ccache, todėl jums reikia nurodyti CCACHE_DIR kintamąjį prieš peržiūrint („Portage“) ccache statistiką.

ccache naudojimas ne „Portage“ C kompiliavimui

Jeigu jūs norite naudoti ccache ne „Portage“ kompiliavimams, pridėtikte /usr/lib/ccache/bin į jūsų PATH kintamojo pradžią (prieš /usr/bin). Tai įvykdyti galima pakeičiant rinkmeną .bash_profile jūsų naudotojo namų kataloge. .bash_profile naudojimas yra vienas būdas apibrėžti PATH kintamuosius.

Kodo sąrašas 3.4: Pakeičiame .bash_profile

PATH="/usr/lib/ccache/bin:/opt/bin:${PATH}"

3.d. Dvejetainių paketų palaikymas

Iš anksto sukompiliuotų paketų kūrimas

„Portage“ palaiko iš anksto sukompiliuotų paketų įdiegimą. Nors pats „Gentoo“ ir netiekia iš anksto sukompiliuotų paketų (išskyrus GRP snapshots) „Portage“ gali pilnai jais naudotis.

Iš anksto sukompiliuotam paketui sukurti galite naudoti quickpkg, jeigu paketas jau yra įdiegtas jūsų sistemoje, arba įvykdykite komandą emerge su --buildpkg ar --buildpkgonly parametru.

Jeigu norite, kad Portage sukurtų iš anksto sukompiliuotą paketą kiekvieną kartą jums ką nors įdiegiant, įrašykite buildpkg į FEATURES kintamąjį.

Platesnis iš anksto sukompiliuotų paketų kūrimo palaikymas gali būti pasiektas su catalyst. Norėdami daugiau sužinoti apie catalyst, paskaitykite Catalyst dažniausiai užduodamus klausimus.

Iš anksto sukompiliuotų paketų įdiegimas

Nors pats „Gentoo“ ir nepateikia centrinės iš anksto sukompiliuotų paketų saugyklos, jūs galite ją susikurti. Jeigu norite ja naudotis, praneškite apie tai „Portage“, kintamuoju PORTAGE_BINHOST nurodydami šią saugyklą. Pavyzdžiui, jeigu iš anksto sukompiliuotų paketų saugykla yra ftp://buildhost/gentoo:

Kodo sąrašas 4.1: Nustatome PORTAGE_BINHOST rinkmenoje /etc/make.conf

PORTAGE_BINHOST="ftp://buildhost/gentoo"

Kai jūs norite įdiegti iš anksto sukompiliuotą paketą, pridėkite parametrą --getbinpkg emerge komandai kartu su parametru --usepkg. Pirmasis nurodo emerge parsiųsti iš anksto sukompiliuotą paketą iš anksčiau apibrėžto serverio, o antrasis prašo emerge pabandyti įdiegtį iš anksto sukompiliuotą paketą prieš parsiunčiant išeities tekstus ir juos kompiliuojant.

Pavyzdžiui, gnumeric įdiegimas iš iš anksto sukompiliuotų paketų:

Kodo sąrašas 4.2: gnumeric iš anksto sukompiliuotų paketų įdiegimas

# emerge --usepkg --getbinpkg gnumeric

Daugiau informacijos apie emerge iš anksto sukompiliuotų paketų parinktis galima rasti emerge žinyno puslapyje:

Kodo sąrašas 4.3: emerge žinyno puslapis

$ man emerge

3.e. Rinkmenų gavimas

Lygiagretus gavimas

Kai jūs diegiate eilę paketų, „Portage“ gali gauti pirminius tekstus kitai programai sąraše netgi kol ji kompiliuoja visai kitą paketą, taip sumažinant kompiliavimų laikus. Norėdami naudoti šį sugebėjimą, pridėkite „parallel-fetch“ į savo FEATURES.

Userfetch

Kai „Portage“ vykdoma pagrindinio (root) naudotojo teisėmis, FEATURES="userfetch" leis „Portage“ sumažinti teises gaunant paketų pirminius tekstus. Tai yra nedidelis saugumo pagerinimas.

4. Pirminio paleidimo scenarijai

4.a. Paleidžiamieji lygiai (runlevels)

Įkrauname jūsų sistemą

Kai įkrausite savo sistemą, pastebėsite, kad daug teksto prabėga pro ekraną. Jei atkreipsite dėmesį, tas tekstas yra daugmaž vienodas kiekvieną kartą užsikraunant sistemai. Visų šitų veiksmų eilės tvarka vadinima krovimosi tvarka ir yra (daugmaž) statiškai nustatyta.

Pirmiausia, jūsų sistemos įkrovos tvarkyklė (boot loader) užkraus branduolio atvaizdą, kurį jūs aprašėte įkrovos tvarkyklės nustatymuose, į atmintį, po kurio ji praneš pagrindiniam procesoriui paleisti patį branduolį. Kai branduolys yra paleistas ir veikia, jis inicijuoja visas branduolio specifines struktūras, užduotis ir paleidžia init procesą.

Šitas procesas užtikrina, kad visos rinkmenų sistemos, kurios yra apibrėžtos rinkmenoje /etc/fstab, bus prijungtos ir paruoštos naudojimui. Tada jis paleidžia keletą scenarijų, kurie yra /etc/init.d kataloge. Šie scenarijai paleis tarnybas, kurios yra būtinos sėkmingam sistemos užsikrovimui.

Pagaliau, kai visi scenarijai yra paleisti, init aktyvuoja terminalus (dažniausiai tik virtualias komandines eilutes, kurios yra paslėptos po klavišų kombinacijomis Alt-F1, Alt-F2, ir t.t.) prijungiant specialų procesą, pavadintą agetty prie jo. Šis procesas užtikrins, kad jūs galėsite prisijungti per šiuos terminalus paleisdami login.

Pirminio paleidimo scenarijai

Dabar init kataloge /etc/init.d esančių scenarijų atsitiktinai nepaleidinėja. Tuo labiau jis nepaleidžia visų scenarijų, kurie yra kataloge /etc/init.d, o tik tuos scenarijus, kurie jam yra nurodyti, kad būtų paleisti. Jis nusprendžia, kuriuos scenarijus paleisti, žiūrėdamas į katalogą /etc/runlevels.

Pirmiausia, init paleidžia visus scenarijus iš katalogo /etc/init.d, kurie turi simbolines nuorodas /etc/runlevels/boot kataloge. Scenarijai dažniausiai paleidinėjami abėcėlės tvarka, bet kai kurie scenarijai turi informaciją apie priklausomybes, kuris pasako sistemai, kad kitas scenarijus turi būti paleistas pirmiau, negu bus pradėtas šis.

Kai visi kataloge /etc/runlevels/boot esantys nukreipiamieji scenarijai yra paleisti, init tęsia paleidinėdamas scenarijus, kurie turi simbolines nuorodas į save kataloge /etc/runlevels/default. Jie vėlgi paleidinėjami abėcėlės tvarka, nebent priklausomybių informacija nusakys kitokią paleidžiamų scenarijų tvarką, kad būtų užtikrintas nuoseklus sistemos paleidimas.

Kaip init veikia

Aišku, init nenusprendžia visko pats. Jam reikia nustatymų rinkmenos, kuri nusakytų, kokie veiksmai turi būti atlikti. Šie nustatymai yra saugomi rinkmenoje /etc/inittab.

Jeigu jūs prisimenate krovimosi tvarką, kurią mes ką tik apibūdinome, tai tikriausiai prisiminsite, kad init pirmas veiksmas yra prijungti visas rinkmenų išdėstymo sistemas. Tai yra aprašyta šioje pateiktoje eilutėje iš /etc/inittab rinkmenos:

Kodo sąrašas 1.1: Sistemos inicijavimo eilutė rinkmenoje /etc/inittab

si::sysinit:/sbin/rc sysinit

Ši eilutė nusako, kad init turi paleisti /sbin/rc sysinit, norėdamas inicijuoti sistemą. Scenarijus /sbin/rc yra atsakingas už inicijavimą, todėl jūs galite sakyti, kad init nedaro daug - jis paprasčiausiai pateikia sistemos inicijavimo užduotį kitam procesui.

Antra, init paleidžia visus scenarijus, kurie turi simbolines nuorodas į save kataloge /etc/runlevels/boot. Tai aprašome žemiau pateiktoje eilutėje:

Kodo sąrašas 1.2: Sistemos inicijavimas, paleidimas

rc::bootwait:/sbin/rc boot

Vėlgi rc scenarijus atlieka reikalingus veiksmus. Pastebėtina, kad parametras nurodytas rc (boot) sutampa su naudojamo katalogo vardu, kuris yra /etc/runlevels.

Dabar init patikrina savo nustatymų rinkmeną, kad pažiūrėtų, kurį paleidžiamąjį lygį turi paleisti. Kad tai nuspręstų, jis nuskaito žemiau pateiktą eilutę iš rinkmenos /etc/inittab:

Kodo sąrašas 1.3: Pagrindinė init eilutė

id:3:initdefault:

Šiuo atveju, kurį naudos didžioji dalis „Gentoo“ naudotojų, paleidžiamojo lygio numeris yra yra 3. Naudodamas šią informaciją, init patikrina, ką turi paleisti pradėdamas pereiti į trečią paleidžiamąjį lygį:

Kodo sąrašas 1.4: Paleidžiamųjų lygių apibrėžimai

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

Eilutė, apibrėžianti 3 lygį vėlgi tarnybų paleidimui naudoja rc scenarijų (dabar su parametru default). Atkreipkite dėmesį, kad rc parametras yra toks pats kaip ir katalogo, esančio /etc/runlevels, vardas.

Kai rc vykdymas pasibaigia, init nusprendžia, kokias virtualias konsoles jis turi aktyvuoti ir kokias komandas paleisti kiekvienoje iš jų:

Kodo sąrašas 1.5: Virtualių konsolių apibrėžimai

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

Kas yra paleidžiamieji lygiai?

Jūs tikriausiai pastebėjote, kad init naudoja numeravimą, kad žinotų, kokį paleidžiamąjį lygį turėtų aktyvuoti. Paleidžiamasis lygis yra toks lygis, kuriame jūsų sistema turi ir vykdo tam tikrus scenarijus (paleidžiamojo lygio scenarijus, arba pirminio paleidimo scenarijus (angl. initscripts)), kurie yra paleidžiami, kai jūs patenkate arba išeinate iš tam tikro paleidžiamojo lygio.

„Gentoo“ sistemoje yra septyni paleidžiamieji lygiai: trys vidiniai ir keturi vartotojo apibrėžti paleidžiamieji lygiai. Vidiniai paleidžiamieji lygiai yra sysinit, shutdown ir reboot. Jie atlieka būtent tai, ką jų pavadinimai nusako: inicijuoja sistemą, išjungia sistemą ir perkrauna sistemą.

Vartotojo apibrėžti paleidžiamieji lygiai yra tie, kurie yra /etc/runlevels kataloge: boot, default, nonetwork ir single. boot paleidžiamasis lygis paleidžia visus sistemai būtinas tarnybas, kurias naudoja visi kiti paleidžiamieji lygiai. Trys paleidžiamieji lygiai skiriasi tuo, kokios tarnybos yra paleidžiamos: default yra naudojama kiekvienos dienos operacijoms, nonetwork yra naudojama, jei nereikalinga tinklo prieiga, ir single yra naudojama, kada jums reikia pataisyti sistemą.

Dirbame su pirminio paleidimo scenarijais

Scenarijai, kuriuose paleidžia rc procesas, yra vadinami pirminio paleidimo scenarijais (initscripts). Kiekvienas scenarijus kataloge /etc/init.d gali būti paleistas su parametrais start, stop, restart, pause, zap, status, ineed, iuse, needsme, usesme arba broken.

Norėdami paleisti, sustabdyti arba perleisti tarnybą (ir visas priklausomas nuo jos tarnybas), jums reikia paleisti su parametrais start, stop ir restart:

Kodo sąrašas 1.6: Paleidžiame Postfix

# /etc/init.d/postfix start

Pastaba: Tik tos tarnybos, kurios yra priklausomos nuo pagrindinės tarnybos, yra sustabdomos arba perleidžiamos. Kitos priklausomos tarnybos, kurios naudoja pagrindinę tarnybą, bet nėra būtinos, yra neliečiamos.

Jeigu jūs norite sustabdyti tarnybą, bet ne tarnybas, kurios priklauso nuo jos, galite naudoti parametrą pause:

Kodo sąrašas 1.7: Sustabdome Postfix, bet paliekame priklausomas tarnybas paleistas

# /etc/init.d/postfix pause

Jeigu jūs norite pamatyti, kokioje būklėje yra tarnyba (paleista, išjungta, sustabdyta, ...), galite naudoti parametrą status:

Kodo sąrašas 1.8: Informacija apie postfix būklę

# /etc/init.d/postfix status

Jeigu būklės informacija praneša, kad jūsų tarnyba yra paleista, bet jūs žinote, kad taip nėra, galite pakeisti būklės informaciją iš naujo į „išjungta“ parametru zap:

Kodo sąrašas 1.9: Pakeičiame būklės informaciją apie postfix iš naujo

# /etc/init.d/postfix zap

Taip pat norėdami sužinoti, kokias priklausomybes turi tarnyba, jūs galite naudoti parametrus iuse arba ineed. Parametru ineed galite matyti būtinas tarnybas, kurios užtikriną korektišką šios tarnybos darbą. Parametru iuse pamatysite tarnybas, kurios gali būti naudojamos, bet nėra būtinos korektiškam funkcionavimui.

Kodo sąrašas 1.10: Užklausiame sąrašą tarnybų, kurios yra būtinos ir nuo kurių priklauso Postfix

# /etc/init.d/postfix ineed

Panašiai jūs galite paklausti, kokios tarnybos reikalauja šios tarnybos, (needsme) arba kurios naudoja šią tarnybą (usesme):

Kodo sąrašas 1.11: Užklausiame sąrašą tarnybų, kurios reikalauja Postfix

# /etc/init.d/postfix needsme

Pagaliau jūs galite paklausti, kokių priklausomybių trūksta tarnybai:

Kodo sąrašas 1.12: Užklausiame sąrašo priklausomybių, kurių trūksta Postfix

# /etc/init.d/postfix broken

4.b. Dirbame su rc-update

Kas yra rc-update?

„Gentoo“ pirminio paleidimo sistema naudoja priklausomybių medį, kad nuspręstų kokią tarnybą reikia paleisti pirmiausia. Kadangi tai sunkus uždavinys, ir kad to nereikėtų atlikinėti mūsų naudotojams patiems, mes sukūrėme įrankius, kurie lengvai leidžia administruoti, valdyti paleidžiamuosius lygius ir pirminio paleidimo scenarijus.

rc-update komanda jūs galite pridėti ir šalinti pirminio paleidimo scenarijus į paleidžiamąjį lygį. Įrankis rc-update automatiškai pats paleis scenarijų depscan.sh, kuris perkurs priklausomybių medį.

Pridedame ir šaliname tarnybas

Jūs jau įkėlėte pirminio paleidimo scenarijų į „default“ (numatytąjį) paleidžiamąjį lygį „Gentoo“ diegimo metu. Tada jūs galbūt nelabai supratote, kam reikalingas šis lygis, bet dabar mes išsiaiškinsime. Scenarijus rc-update reikalauja antro parametro, kuris nurodo veiksmą: add, del arba show.

Norėdami pridėti arba pašalinti pirminio paleidimo scenarijų, tiesiog paleiskite rc-update su parametrais add arba del, pirminio paleidimo scenarijaus pavadinimu ir paleidžiamojo lygio pavadinimu. Pavyzdžiui:

Kodo sąrašas 2.1: Šaliname Postfix iš numatytojo paleidžiamojo lygio

# rc-update del postfix default

Komanda rc-update -v show parodys visus galimus pirminio paleidimo scenarijus ir sąrašą, kuriuose paleidžiamuosiuose lygiuose jie yra įvykdomi:

Kodo sąrašas 2.2: Gauname informaciją apie pirminio paleidimo scenarijus

# rc-update -v show

Galite įvykdyti ir rc-update show (be -v), kad pamatytumėte tik aktyvintus pirminio paleidimo scenarijus ir jų paleidžiamuosius lygius.

4.c. Konfigūruojame tarnybas

Kodėl reikia papildomų nustatymų?

Pirminio paleidimo scenarijai gali būti pakankamai sudėtingi. Aišku, nėra pageidautina tiesiogiai redaguoti pirminio paleidimo scenarijų, nes galima padaryti jį neveiksniu. Bet tuo pačiu yra svarbu turėti galimybę tokias tarnybas konfigūruoti. Pavyzdžiui, jūs norite suteikti daugiau pasirinkčių pačiai tarnybai.

Kita priežastis turėti galimybę konfigūruoti pirminio paleidimo scenarijus netiesiogiai yra tai, kad būtų galima atnaujinti pačius pirminio paleidimo scenarijus nesibaiminant, kad jūsų nustatymai pasinaikins.

Katalogas /etc/conf.d

„Gentoo“ suteikia patogų kelią konfigūruoti tokias tarnybas: kiekvienas pirminio paleidimo scenarijus, kuris gali būti konfigūruojamas, turi savo rinkmeną /etc/conf.d kataloge. Pavyzdžiui, apache2 pirminio paleidimo scenarijus (pavadintas /etc/init.d/apache2) turi konfigūracinę rinkmeną, pavadintą /etc/conf.d/apache2, kuri saugo nustatymus, kuriuos norite perduoti Apache 2 serveriui, kai jis bus paleidžiamas:

Kodo sąrašas 3.1: Apibrėžti kintamieji rinkmenoje /etc/conf.d/apache2

APACHE2_OPTS="-D PHP5"

Tokia konfiguracinė rinkmena laiko kintamuosius (panašius kaip ir rinkmenoje /etc/make.conf), kas leidžia labai lengvai keisti tarnybų nustatymus. Taip pat tokios rinkmenos suteikia daugiau informacijos apie pačius kintamuosius (pvz., komentarai).

4.d. Rašome pirminio paleidimo scenarijus

Ar tikrai tai būtina?

Ne, rašyti pirminio paleidimo scenarijų nėra būtina, nes „Gentoo“ jau suteikia skaityk-naudok tipo pirminio paleidimo scenarijus visoms teikiamoms tarnyboms. Aišku, jūs galėjote įdiegti kokią nors tarnybą ne iš „Portage“ bazės, todėl greičiausiai norėsite sukurti savo pirminio paleidimo scenarijų.

Nenaudokite pirminio paleidimo scenarijų, pateiktų su tarnybomis, jeigu jie nėra konkrečiai parašyti „Gentoo“. Taip pat „Gentoo“ pirminio paleidimo scenarijai nėra pritaikyti naudojimui kituose „Linux“ platinamuosiuose paketuose!

Išdėstymas

Pagrindinė pirminio paleidimo scenarijaus sandara pateikta žemiau.

Kodo sąrašas 4.1: Pirminio paleidimo scenarijaus sandara

#!/sbin/runscript

depend() {
  (Priklausomybių informacija)
}

start() {
  (Komandos, būtinos paleisti tarnybą)
}

stop() {
  (Komandos, būtinos sustabdyti tarnybą)
}

restart() {
  (Komandos, būtinos perkrauti tarnybą)
}

Bet kuris pirminio paleidimo scenarijus reikalauja apibrėžti start() funkciją. Visos kitos funkcijos yra pasirinktinos.

Priklausomybės

Yra dviejų tipų priklausomybės, kurias galite apibrėžti: use ir need. Kaip anksčiau ir minėjome, need tipo priklausomybė yra griežtesnė negu use tipo priklausomybė. Priklausomai nuo priklausomybės tipo, jūs įvedate tarnybą, nuo kurios tiesiogiai priklausote arba priklausote virtualiai.

Virtuali priklausomybė yra tokia priklausomybė, kuri reikalinga tarnybai, bet nėra priklausoma nuo konkrečių programų. Pavyzdžiui, jūsų pirminio paleidimo scenarijus priklauso nuo sistemos žurnalizavimo tarnybos, bet yra daugybė įvairių sistemų žurnalų apdorojimo programų (metalogd, syslog-ng, sysklogd, ...). Kadangi jūs negalite reikalauti (need) kiekvieno iš jų atskirai (nėra praktiška sistemoje turėti visas šias programas paleistas), todėl mes užtikriname, kad visos šios tarnybų teikia (provide) virtualią priklausomybę.

Pažiūrėkime informaciją apie postfix tarnybos priklausomybes.

Kodo sąrašas 4.2: Postfix priklausomybių informacija

depend() {
  need net
  use logger dns
  provide mta
}

Kaip matote, postfix tarnyba:

  • reikalauja (virtualios) net priklausomybės, kuri pateikiama, pavyzdžiui, /etc/init.d/net.eth0 scenarijaus.
  • reikalauja (virtualios) logger priklausomybės, kuri pateikiama, pavyzdžiui, /etc/init.d/syslog-ng scenarijaus.
  • reikalauja (virtualios) dns priklausomybės, kuri pateikiama, pavyzdžiui, /etc/init.d/named scenarijaus.
  • pateikia (virtualią) mta priklausomybę, kuri yra įprasta visiems pašto serveriams.

Kontroliuojame tvarką

Kai kuriais atvejai jums, pavyzdžiui, nereikės pačios tarnybos, bet norėsite, kad jūsų tarnyba būtų paleista prieš (before) arba po (after) kitos tarnybos, jeigu ji yra sistemoje (atkreipkite dėmesį - tai nebėra priklausomybė) ir ji paleista tame pačiame paleidžiamajame lygyje (atkreipkite dėmesį - tai liečia tik tai tarnybas tame pačiame paleidžiamajame lygyje). Jūs galite nustatyti šią informaciją naudodami „prieš“ (before) arba „po“ (after) nustatymus.

Kaip pavyzdį paimsime Portmap tarnybos nustatymus:

Kodo sąrašas 4.3: Portmap tarnybos funkcija depend()

depend() {
  need net
  before inetd
  before xinetd
}

Jūs taip pat galite naudoti „*“, kad sugautumėte visas tarnybas tame pačiame paleidžiamajame lygyje, bet tai nėra patartina.

Kodo sąrašas 4.4: Leidžiame pirminio paleidimo scenarijų kaip patį pirmąjį šiame paleidžiamajame lygyje

depend() {
  before *
}

Jeigu jūsų tarnyba privalo rašyti į vietinius diskus, ji turėtų reikalauti (need) localmount. Jei ji ką nors, pavyzdžiui, proceso identifikatoriaus rinkmeną (pidfile), talpina /var/run, tuomet ji turėtų pasileisti po (after) bootmisc:

Kodo sąrašas 4.5: depend() funkcijos pavyzdys

depend() {
  need localmount
  after bootmisc
}

Standartinės funkcijos

Toliau, po depend() funkcionalumo nustatymo, jums greičiausiai reikės nustatyti start() funkciją. Ši funkcija turi visas komandas, reikalingas tarnybos inicijavimui. Rekomenduojama naudoti ebegin ir eend funkcijas, kad informuotumėte vartotoją, kas vyksta paleidimo metu:

Kodo sąrašas 4.6: start() funkcijos pavyzdys

start() {
  ebegin "Starting my_service"
  start-stop-daemon --start --exec /path/to/my_service \
    --pidfile /path/to/my_pidfile  eend $?
}

Ir --exec, ir --pidfile turėtų būti naudojami paleidimo (start) ir sustabdymo (stop) funkcijose. Jei tarnyba nesukuria proceso identifikatoriaus rinkmenos (pidfile), tuomet, jei įmanoma, naudokite --make-pidfile, nors jūs turėtumėte tai patikrinti, kad būtumėte tikri. Kitu atveju nenaudokite proceso identifikatoriaus rinkmenų (pidfiles). Prie start-stop-daemon parametrų galite pridėti ir --quiet, bet tai nerekomenduojama, nebent tarnyba yra nepaprastai išsami. --quiet naudojimas gali trukdyti derinimui, jei tarnybai nepavyksta pasileisti.

Pastaba: Įsitikinkite, kad --exec iš tiesų iškviečia tarnybą, o ne tiesiog aplinkos (shell) scenarijų, kuris paleidžia tarnybas ir baigia darbą -- tai yra pirminio paleidimo scenarijaus paskirtis.

Jei jums reikia daugiau start() funkcijos pavyzdžių, paskaitykite pirminius tekstus pirminio paleidimo scenarijų, esančių/etc/init.d kataloge.

Kitos funkcijos, kurias galite apibrėžti, yra: stop() ir restart(). Jūs nesate verčiamas apibrėžti šių funkcijų! Mūsų pradinio paleidimo sistema yra pakankamai protinga užpildyti šias funkcijas pati, jeigu jūs naudojate start-stop-daemon.

Nors jūs neprivalote kurti stop() funkcijos, štai yra pavyzdys:

Kodo sąrašas 4.7: stop() funkcijos pavyzdys

stop() {
  ebegin "Stopping my_service"
  start-stop-daemon --stop --exec /path/to/my_service \
    --pidfile /path/to/my_pidfile
  eend $?
}

Jeigu jūsų tarnyba vykdo kokį nors kitą scenarijų (pavyzdžiui, bash, python ar perl), ir šis scenarijus vėliau keičia pavadinimą (pavyzdžiui, foo.py į foo), tuomet jūs turite pridėti --name prie start-stop-daemon. Tada jūs privalote nurodyti pavadinimą, į kurį vėliau pasikeičia jūsų scenarijus. Šiame pavyzdyje tarnyba paleidžia foo.py, kuris pakeičia pavadinimą į foo:

Kodo sąrašas 4.8: Tarnyba, paleidžianti „foo“ scenarijų

start() {
  ebegin "Starting my_script"
  start-stop-daemon --start --exec /path/to/my_script \
    --pidfile /path/to/my_pidfile --name foo
  eend $?
}

start-stop-daemon turi puikų žinyną, jei jums reikia daugiau informacijos:

Kodo sąrašas 4.9: start-stop-daemon žinyno peržiūra

$ man start-stop-daemon

„Gentoo“ sistemos pradinio paleidimo scenarijų sintaksė remiasi Bourne Again Shell (bash) sintakse, todėl jūs pilnai galite naudoti bash tipo kodą pradinio paleidimo scenarijuose.

Nustatome įvairias pasirinktis

Jeigu jūs norite, kad jūsų pradinio paleidimo scenarijai turėtų daugiau pasirinkčių, negu aptartą dabar, tada turite įkelti nustatymų pavadinimą į opts kintamąjį ir sukurti funkciją tokiu pačiu pavadinimu kaip ir nustatymas. Pavyzdžiui, jeigu norite turėti nustatymą pavadinimu restartdelay:

Kodo sąrašas 4.10: Nustatymo restartdelay palaikymas

opts="${opts} restartdelay"

restartdelay() {
  stop
  sleep 3    # Laukti 3 sekundes prieš pasileidžiant vėl
  start
}

Tarnybos nustatymų kintamieji

Jums nereikia nieko daryti, jeigu norite turėti nustatymų rinkmeną kataloge /etc/conf.d: jeigu jūsų pradinio paleidimo scenarijus yra paleistas, šios rinkmenos yra automatiškai prijungiamos (pvz: galima naudoti kintamuosius):

  • /etc/conf.d/<jūsų_pirminio_paleidimo_scenarijus>
  • /etc/conf.d/basic
  • /etc/rc.conf

Taip pat, jeigu jūsų pradinio paleidimo scenarijus palaiko virtualią priklausomybę (tokią kaip net), tada rinkmena bus su sieta su šia priklausomybe (šiuo atveju su rinkmena /etc/conf.d/net).

4.e. Keičiame paleidžiamojo lygio elgesį

Kas gali gauti naudos iš to?

Dauguma nešiojamų kompiuterių vartotojų susiduria su tokia situacija, kaip pavyzdžiui, namie jiems reikia paleisti net.eth0, kai tuo tarpu dirbant kelyje (nes nėra interneto), jūs visai nenorite, kad būtų paleistas net.eth0. Su „Gentoo“ sistema jūs lengvai galite pats keisti paleidžiamojo lygio elgesį pagal savo norus.

Jūs galite sukurti dar viena „numatytąjį“ („default“) paleidžiamąjį lygį, kurį galite užkrauti, ir kuris turės jūsų priskirtus pirminio paleidimo scenarijus. Taip pat galite nustatyti krovimosi laiką, kada norite naudoti numatytąjį paleidžiamąjį lygį.

Naudojame minkštąjį lygį (softlevel)

Pirmiausia, sukurkite paleidžiamojo lygio direktoriją antram jūsų „numatytajam“ („default“) paleidžiamajam lygiui. Kaip pavyzdį, sukurkime offline paleidžiamąjį lygį:

Kodo sąrašas 5.1: Sukuriame paleidžiamojo lygio katalogą

# mkdir /etc/runlevels/offline

Pridedame norimus pirminio paleidimo scenarijus į mūsų naujai sukurtą paleidžiamąjį lygį. Pavyzdžiui, jeigu norite turėti lygiai tokį patį paleidžiamąjį lygį kaip jūsų sistemos default paleidžiamasis lygis, bet be net.eth0:

Kodo sąrašas 5.2: Pridedame reikalingus pirminio paleidimo scenarijus

(Nukopijuojame visas tarnybas iš numatytojo į offline paleidžiamąjį
lygį)
# cd /etc/runlevels/default
# for service in *; do rc-update add $service offline; done
(Pašaliname nereikalingas tarnybas iš offline paleidžiamojo
lygio)
# rc-update del net.eth0 offline
(Žiūrime offline paleidžiamojo lygio aktyvias tarnybas)
# rc-update show offline
(Pavyzdys kaip atrodo įvykdžius šią komandą)
               acpid | offline
          domainname | offline
               local | offline
            net.eth0 |

Nors net.eth0 buvo pašalintas iš offline paleidžiamojo lygio, udev vis vien bandys paleisti visus įtaisus, kuriuos aptinka, ir atitinkamas tarnybas. Dėl to jums reikės pridėti kiekvieną tinklo tarnybą, kurios paleidimo nepageidaujate (kaip ir tarnybas bet kuriems kitiems įtaisams, kuriuos gali paleisti udev) į rinkmeną /etc/conf.d/rc kaip parodyta.

Kodo sąrašas 5.3: Pasyviname tarnybas, paleidžiamas įtaisų, rinkmenoje /etc/conf.d/rc

RC_COLDPLUG="yes"
(Toliau nurodykite tarnybas, kurių automatinio paleidimo nepageidaujate)
RC_PLUG_SERVICES="!net.eth0"

Pastaba: Išsamesnę informaciją apie itaisų paleidžiamas tarnybas galite rasti rinkmenos /etc/conf.d/rc komentaruose.

Dabar redaguokime jūsų sistemos įkrovos tvarkyklės nustatymus ir pridėkime naują reikšmę jūsų offline paleidžiamajam lygiui. Pavyzdžiui, rinkmenoje /boot/grub/grub.conf:

Kodo sąrašas 5.4: Pridedame naują reikšmę apie offline paleidžiamąjį lygį

title Gentoo Linux Offline Usage
  root (hd0,0)
  kernel (hd0,0)/kernel-2.4.25 root=/dev/hda3 softlevel=offline

Voilà, jūs viską jau atlikote. Jeigu užkrausite savo savo sistemą ir krovimosi metu pasirinksite naujai sukurtą reikšmę, offline paleidžiamasis lygis bus panaudotas vietoj default.

Naudojame krovimosi lygį (bootlevel)

Naudojant bootlevel viskas yra taip pat kaip ir su softlevel. Vienintelis skirtumas yra tas, kad jūs apibrėžėte antrą „boot“ paleidžiamąjį lygį, vietoj antro „default“ paleidžiamojo lygio.

5. Aplinkos kintamieji

5.a. Aplinkos kintamieji?

Kas jie

Aplinkos kintamasis yra vardą turintis objektas, kuriame yra saugoma vienos ar keleto programų naudojama informacija. Daugeliui naudototojų (ir ypač „Linux“ naujokams) tai atrodo gan keista ir sunkiai suprantama. Tačiau toks požiūris yra klaidingas: naudojant aplinkos kintamuosius galima lengvai pakeisti konfigūracijos nustatymus vienai ar kelioms programoms.

Svarbūs pavyzdžiai

Lentelėje pateikiama dalis kinamųjų, naudojamų „Linux“ sistemose ir aprašomas jų naudojimas. Reikšmių pavyzdžiai yra pateikti po lentelės.

Kintamasis Aprašymas
PATH Šis kintamasis saugo dvitaškiais atskirtą katalogų, kuriuose jūsų sistema ieško vykdomųjų rinkmenų, sąrašą. Jeigu jūs įvedate vykdomosios rinkmenos vardą (tokį kaip ls, rc-update ar emerge), bet šios vykdomosios rinkmenos nėra nei viename iš išvardintų katalogų, jūsų sistema jo neįvykdys (nebent kaip komandą jūs įvesite pilną kelią, pavyzdžiui, /bin/ls).
ROOTPATH Šis kintamasis atlieka tą pačią funkciją kaip ir PATH, bet jame išvardinti tik tie katalogai, kuriuose reikia ieškoti kai komandą įveda pagrindinis naudotojas.
LDPATH Šiame kintamajame saugomas dvitaškiais atskirtas katalogų, kuriuose bibliotekų ieško dinaminė saistyklė, sąrašas.
MANPATH Šiame kintamajame saugomas dvitaškiais atskirtas katalogų, kuriuose man komanda ieško žinyno puslapių, sąrašas.
INFODIR Šiame kintamajame saugomas dvitaškiais atskirtas katalogų, kuriuose info komanda ieško info puslapių, sąrašas.
PAGER Šis kintamasis nurodo kelią iki programos, naudojamos rinkmenų turiniui peržiūrėti (pavyzdžiui, less ar more).
EDITOR Šis kintamasis nurodo kelią iki programos, naudojamos rinkmenų turiniui keisti (pavyzdžiui, nano ar vi).
KDEDIRS Šiame kintamajame saugomas dvitaškiais atskirtas katalogų, kuriuose yra KDE-specifinis turinys, sąrašas.
CONFIG_PROTECT Šiame kintamajame saugomas tarpais atskirtas katalogų, kuriuos Portage turėtų apsaugoti per atnaujinimus, sąrašas.
CONFIG_PROTECT_MASK Šiame kintamajame saugomas tarpais atskirtas katalogų, kurių „Portage“ neturėtų apsaugoti per atnaujinimus, sąrašas.

Toliau pateikiame visų šių kintamųjų pavyzdžius:

Kodo sąrašas 1.1: Reikšmių pavyzdžiai

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"
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. Globalus kintamųjų apibrėžimas

Katalogas /etc/env.d

Norėdama centralizuoti šių kintamųjų apibrėžimą, „Gentoo“ pradėjo naudoti katalogą /etc/env.d. Šiame kataloge yra rinkmenos 00basic, 05gcc ir t.t., kuriose saugomi kintamieji, naudojami programų, paminėtų rinkmenų pavadinimuose.

Pavyzdžiui, kai jūs įdiegiate gcc, yra sukuriama rinkmena 05gcc kurioje yra saugomos šių kintamųjų vertės:

Kodo sąrašas 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"

Kiti platinamieji paketai (distribucijos) liepia jums pakeisti ar pridėti tokių aplinkos kintamųjų reikšmes kataloge /etc/profile ar kitose vietose. Tačiau „Gentoo“ palengvina jums (ir Portage) aplinkos kintamųjų tvarkymą, nes nereikia vargti su daugybę rinkmenų, kuriose gali būti apibrėžiami aplinkos kintamieji.

Pavyzdžiui, kai gcc yra atnaujinamas, rinkmena /etc/env.d/05gcc yra atnaujinama be jokio naudotojo įsikišimo.

Tai naudinga ne tik Portage, bet ir jums, naudotojui. Kartais jums gali reikėti visai sistemai apibrėžti aplinkos kintamąjį. Kaip pavyzdžiu pasinaudokime kintamuoju http_proxy. Vietoj to, kad gaištumėtę laiką su /etc/profile, jums tereikia sukurti rinkmeną /etc/env.d/99local ir joje įrašyti jūsų apibrėžimą:

Kodo sąrašas 2.2: /etc/env.d/99local

http_proxy="proxy.server.com:8080"

Naudodami tą pačią rinkmeną visiems savo kintamiesiems, jūs galite lengvai ir greitai peržvelgti visus jūsų pačių apibrėžtus kintamuosius.

Scenarijus env-update

Kintamąjį PATH apibrėžia keletas rinkmenų kataloge /etc/env.d. Tai nėra klaida: kai jūs įvykdote scenarijų env-update, jis sujungia keletą apibrėžimų prieš atnaujindamas aplinkos kintamuosius, taip leisdamas paketams (ir naudotojams) lengvai pridėti jų pačių aplinkos kintamųjų vertes nemaišant jų sau jau esančiomis vertėmis.

Scenarijus env-update sujungs reikšmes pagal abėcėlinę rinkmenų kataloge /etc/env.d pavadinimų tvarką. Rinkmenų vardai turi prasidėti dvejais dešimtainiais skaitmenimis.

Kodo sąrašas 2.3: env-update naudojama atnaujinimo tvarka

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

Kintamųjų sujungimas yra vykdomas ne visada, o tik šiems kintamiesiems: KDEDIRS, PATH, LDPATH, MANPATH, INFODIR, INFOPATH, ROOTPATH, CONFIG_PROTECT, CONFIG_PROTECT_MASK, PRELINK_PATH ir PRELINK_PATH_MASK. Visiems kitiems kintamiesiems naudojama paskutinė apibrėžta vertė (pagal abėcėlinę rinkmenų pavadinimų kataloge /etc/env.d eilę).

Kai jūs įvykdote env-update, scenarijus sukuria visus aplinkos kintamuosius ir patalpina juos rinkmenoje /etc/profile.env (kurią naudoja /etc/profile). Taip pat išgauna informaciją iš kintamojo LDPATH ir panaudoja ją /etc/ld.so.conf sukūrimui. Tada jis paleidžia ldconfig, kad šis atkurtų rinkmeną /etc/ld.so.cache, naudojamą dinaminės saistyklės .

Jeigu jūs norite pastebėti komandos env-update padarinius iškart po jos įvykdymo, įvykdykite žemiau pateiktą komandą savo aplinkos atnaujinimui. Naudotojai, kurie patys įdiegė „Gentoo“, turbūt prisimins šią komandą iš diegimo instrukcijų:

Kodo sąrašas 2.4: Aplinkos atnaujinimas

# env-update && source /etc/profile

Pastaba: Ši komanda atnaujina kintamuosius tik jūsų dabartiniame terminale, naujuose pultuose, ir jų antriniuose procesuose. Todėl, jeigu jūs dirbate X11 aplinkoje, jums reikės arba įvedinėti source /etc/profile kiekviename naujame terminale arba perstartuoti X, kad visi nauji terminalai naudotų naujus kintamuosius. Jeigu jūs naudojate registravimosi tvarkyklę, įsiregistruokite kaip pagrindinis naudotojas ir įveskite /etc/init.d/xdm restart. Jeigu to nepadarysite, jums reikės išsiregistruoti ir vėl įsiregistruoti į X, kad būtų naudojami nauji kintamieji.

Svarbu: Jūs negalite naudoti aplinkos (shell) kintamųjų kitų kintamųjų apibrėžimui. Tai reiškia, kad tokie dalykai kaip FOO="$BAR" (kur $BAR yra kitas kintamasis) yra draudžiami.

5.c. Lokalus kintamųjų apibrėžimas

Specialiai naudotojui

Jūs nevisada norite apibrėžti aplinkos kintamuosius globaliai. Pavyzdžiui, jūs galite norėti pridėti /home/my_user/bin ir veikiamąjį katalogą (katalogą, kuriame esate) į PATH kintamąjį, bet nenorite, kad visi kiti jūsų sistemos vartotojai turėtų šiuos katalogus savo PATH kintamuosiuose. Jeigu jūs norite aplinkos kintamąjį apibrėžti tik lokaliai, jums reikia pasinaudoti rinkmenomis ~/.bashrc ar ~/.bash_profile:

Kodo sąrašas 3.1: PATH išplėtimas lokaliam naudojimu rinkmenoje ~/.bashrc

(Dvitaškis be po jo sekančio katalogo yra laikomas
veikiamuoju katalogu)
PATH="${PATH}:/home/my_user/bin:"

Kai jūs persiregistruosite, jūsų PATH kintamasis bus atnaujintas.

Specialiai seansui

Kartais reikalaujama dar griežtesnių apibrėžimų. Jūs galite norėti naudotis dvejetainėmis rinkmenomis iš laikino jūsų sukurto katalogo nenurodant kelio iki jų ir neredaguojant ~/.bashrc rinkmenos, nes jums to reikia tik trumpam laikui.

Tokiu atveju, jūs galite apibrėžti kintamąjį PATH jūsų veikiamajam seansui panaudodami komandą export. Kol jūs neišsiregistruosite, kintamasis PATH naudos laikinuosius nustatymus.

Kodo sąrašas 3.2: Specifinių seanso aplinkos kintamųjų apibrėžimas

# export PATH="${PATH}:/home/my_user/tmp/usr/bin"

C. Darbas su „Portage“

1. Rinkmenos ir katalogai

1.a. „Portage“ rinkmenos

Konfigūracijos nuorodos

Pagal nutylėjimą „Portage“ konfigūracija yra saugoma rinkmenoje /etc/make.globals. Pažiūrėję į ją pamatysite, kad visa „Portage“ konfigūracija yra nustatoma per kintamuosius. Kokie kintamieji valdo „Portage“ ir ką jie reiškia aprašyta žemiau.

Kadangi daugelis konfigūracijos nurodymų skiriasi skirtingoms architektūroms, „Portage“ taip pat turi konfigūracijos pagal nutylėjimą rinkmenas, kurios yra jūsų profilio dalis. Jūsų profilis yra nurodomas nuoroda /etc/make.profile; „Portage“ konfigūracija yra nustatyta jūsų profilio ir visų vyresnių profilių rinkmenose make.defaults. Mes paaiškinsime daugiau apie profilius ir katalogą /etc/make.profile vėliau.

Jeigu jūs planuojate pakeisti konfigūracinius kintamuosius, nekeiskite rinkmenų /etc/make.globals ar make.defaults. Vietoje to naudokite pirmumą prieš šias rinkmenas turinčią rinkmeną /etc/make.conf. Jūs taip pat rasite /usr/share/portage/config/make.conf.example. Kaip ir nurodo pavadinimas, tai yra pavyzdžių rinkmena - „Portage“ neskaito šios rinkmenos.

Jūs taip pat galite apibrėžti „Portage“ konfigūracinį kintamąjį kaip aplinkos kintamąjį, bet mes to nerekomenduojame.

Specifinė profilio informacija

Mes jau buvome užsiminę apie katalogą /etc/make.profile. Iš tikrųjų tai ne katalogas, o simbolinė nuoroda į profilį pagal nutylėjimą, esantį /usr/portage/profiles, tačau jūs galite susikurti savo profilius kur nors kitur ir nurodyti į juos. Profilis, į kurį nurodo ši simbolinė nuoroda, yra jūsų sistemos profilis.

Profilyje yra specifinė architektūros informacija skirta „Portage“, tokia kaip paketų, priklausančių sistemai, atitinkančiai jūsų profilį, sąrašas, neveikiančių ar užmaskuotų šiam profiliui paketų sąrašas ir t.t.

Specifinė naudotojo konfigūracija

Kai jūs norite pakeisti „Portage“ elgesį, susijusį su programinės įrangos diegimu, jums reikia redaguoti rinkmenas esančias /etc/portage. Jums labai rekomenduojama naudoti rinkmenas, esančias /etc/portage ir griežtai nepatariama keisti elgesį naudojant aplinkos kintamuosius!

Kataloge /etc/portage jūs galite sukurti šias rinkmenas:

  • package.mask, kurioje išvardinami paketai, kurių jūs nenorite leisti „Portage“ įdiegti
  • package.unmask, kurioje išvardinami paketai, kuriuos jūs norite idiegti, nors „Gentoo“ kūrėjai ir griežtai nepataria jums jų įsirašyti.
  • package.keywords, kurioje išvardinami paketai, kuriuos jūs norite įdiegti, nors jie ir nelaikomi tinkamais jūsų sistemai ar architektūrai (kol kas).
  • package.use, kurioje išvardinamos USE vėliavėlės, kurias jūs norite naudoti tam tikriems paketams, o ne visai sistemai.

Tai nebūtinai turi būti rinkmenos, gali būti ir katalogai, kuriuose būtų po rinkmeną kiekvienam paketui. Daugiau informacijos apie katalogą /etc/portage ir pilną sąrašą rinkmenų, kurias jūs galite jame sukurti, galite rasti „Portage“ žinyno puslapyje:

Kodo sąrašas 1.1: „Portage“ žinyno puslapio skaitymas

$ man portage

„Portage“ rinkmenų ir katalogų vietų pakeitimas

Anksčiau paminėtos konfigūracinės rinkmenos negali būti saugomos kur nors kitur - „Portage“ visada ieškos šių konfigūracinių rinkmenų būtent tose vietose. Tačiau įvairiems tikslams „Portage“ naudoja daug kitų vietų: kompiliavimo katalogą, pirminio kodo saugyklą, „Portage“ medžio vietą...

Visiems šiems tikslams pagal nutylėjimą yra skirtos gerai žinomos vietos, bet jos gali būti pakeistos pagal jūsų skonį naudojant rinkmeną /etc/make.conf. Likusi šio skyriaus dalis aiškina, kokias specialios paskirties vietas „Portage“ naudoja ir kaip jas pakeisti savo rinkmenų išdėstymo sistemoje.

Tačiau šis dokumentas nėra žinynas. Jeigu jums reikia 100% aprašymo, jums derėtų pasiskaityti „Portage“ ir make.conf žinynų puslapius:

Kodo sąrašas 1.2: „Portage“ ir make.conf žinynų puslapių skaitymas

$ man portage
$ man make.conf

1.b. Rinkmenų saugojimas

„Portage“ medis

„Portage“ medžio vieta pagal nutylėjimą yra /usr/portage. Tai apibrėžiama kintamuoju PORTDIR. Kai jūs išsaugojate „Portage“ medį kitur (pakeisdami šį kintamąjį), nepamirškite atitinkamai pakeisti ir /etc/make.profile simbolinės nuorodos.

Jeigu jūs pakeisite kintamąjį PORTDIR, jums taip pat vertėtų pakeisti šiuos kintamuosius, nes jie nepastebi PORTDIR pasikeitimo. Taip yra dėl „Portage“ kintamųjų valdymo būdo: PKGDIR, DISTDIR, RPMDIR.

Dvejetainiai paketai

Nors „Portage“ pagal nutylėjimą nenaudoja dvejetainių paketų, jiems ji turi platų palaikymą. Kai jūs pareikalausite „Portage“ dirbti su dvejetainiais paketais, ji ieškos jų kataloge /usr/portage/packages. Šią vietą nurodo kintamasis PKGDIR.

Pirminiai tekstai

Programos pirminiai tekstai pagal nutylėjimą yra įrašomi į katalogą /usr/portage/distfiles. Šią vietą nurodo kintamasis DISTDIR.

„Portage“ duomenų bazė

„Portage“ išsisaugo informaciją apie jūsų sistemos būklę (kokie paketai yra idiegti, kokiam paketui priklauso kokios rinkmenos, ...) kataloge /var/db/pkg. Neredaguokite šių rinkmenų rankiniu būdu! Tai gali sugadinti „Portage“ žinias apie jūsų sistemą.

„Portage“ podėlis

„Portage“ podėlis (su modifikavimo laikais, virtualais, priklausomybių medžio informacija, ...) yra kataloge /var/cache/edb. Ši vieta tikrai yra podėlis: jūs galite ją išvalyti, jeigu nevykdote jokios su „Portage“ susijusios programos.

1.c. Programinės įrangos kompiliavimas

Laikinosios „Portage“ rinkmenos

Laikinosios „Portage“ rinkmenos pagal nutylėjimą yra įrašomos į katalogą /var/tmp. Tai nurodo kintamasis PORTAGE_TMPDIR.

Jeigu jūs pakeisite kintamajį PORTAGE_TMPDIR, jums taip pat vertėtų pakeisti šiuos kintamuosius, nes jie nepastebi PORTAGE_TMPDIR pasikeitimo. Taip yra dėl „Portage“ kintamųjų valdymo būdo: BUILD_PREFIX.

Kompiliavimo katalogas

„Portage“ sukuria specialius kompiliavimo katalogus kiekvienam paketui ji įrašo kataloge /var/tmp/portage. Šią vietą nurodo kintamasis BUILD_PREFIX.

Veikiančios rinkmenų išdėstymo sistemos vieta

Pagal nutylėjimą „Portage“ įdiegia visas rinkmenas į esamą rinkmenų išdėstymo sistemą (/), bet jūs galite tai pakeisti aplinkos kintamuoju ROOT. Tai yra naudinga kai jūs norite sukurti naujus sistemos atvaizdus.

1.d. Žurnalizavimo savybės

Paketų žurnalizavimas

„Portage“ gali kurti žurnalizavimo rinkmenas kiekvienam paketui, bet tik kai kintamasis PORT_LOGDIR nurodo vietą, į kurią leidžiama rašyti „Portage“ (portage naudotojui). Pagal nutylėjimą šis kintamasis yra neapibrėžtas. Jeigu nenustatysite PORT_LOGDIR, negausite jokių kompiliavimo žurnalų, tačiau galite gauti kelis žurnalus iš naujojo elog. Jei esate apibrėžę PORT_LOGDIR ir naudojate elog, gausite kompiliavimo žurnalus ir bet kuriuos žurnalus, išsaugotus elog, kaip paaiškinta žemiau.

„Portage“ siūlo lankstų žurnalizavimo valdymą naudojant elog.

  • PORTAGE_ELOG_CLASSES: Čia jūs nustatote, kokios rūšies žinutės turėtų būti žurnalizuojamos. Galite naudoti tarpais atskirtų info, warn, error, log ir qa derinį.
    • info: Žurnalizuoja „einfo“ pranešimus, atspausdintus ebuild rinkmenos
    • warn: Žurnalizuoja „ewarn“ pranešimus, atspausdintus ebuild rinkmenos
    • error: Žurnalizuoja „eerror“ pranešimus, atspausdintus ebuild rinkmenos
    • log: Žurnalizuoja „elog“ pranešimus, esančius kai kuriose ebuild rinkmenose
    • qa: Žurnalizuoja „QA Notice“ pranešimus, atspausdintus ebuild rinkmenos
  • PORTAGE_ELOG_SYSTEM: Atrenkamas(-i) modulis(-iai) žurnalizavimo pranešimų apdorojimui. Jei paliktas tuščias, žurnalizavimas yra išjungtas. Galite naudoti bet kokį tarpais atskirtų save, custom, syslog, mail save_summary ir mail_summary derinį. Jūs privalote atrinkti bent vieną modulį, kad galėtumėte naudoti elog.
    • save: Išsaugo po vieną žurnalą paketui $PORT_LOGDIR/elog arba /var/log/portage/elog, jei $PORT_LOGDIR neapibrėžtas.
    • custom: Perduoda visus pranešimus kintamuoju $PORTAGE_ELOG_COMMAND naudotojo apibrėžtai komandai; tai aptarsime vėliau.
    • syslog: Siunčia visus pranešimus įdiegtam sistemos žurnalizavimo įrankiui.
    • mail: Perduoda visus pranešimus kintamuoju $PORTAGE_ELOG_MAILURI naudotojo apibrėžtam pašto serveriui; tai aptarsime vėliau. elog pašto funkcijoms reikalingas >=portage-2.1.1 paketas.
    • save_summary: Panašus į save, bet sulieja visus pranešimus rinkmenoje $PORT_LOGDIR/elog/summary.log arba /var/log/portage/elog/summary.log, jei $PORT_LOGDIR neapibrėžtas.
    • mail_summary: Panašus į mail, bet visus pranešimus išsiunčia vienu laišku, kai baigiasi diegimas.
  • PORTAGE_ELOG_COMMAND: Naudojama tik kai aktyvintas custom modulis. Čia nurodoma komanda žurnalizavimo pranešimų apdorojimui. Atkreipkite dėmesį, kad jūs galite panaudoti du kintamuosius: ${PACKAGE} yra paketo pavadinimas ir versija, o ${LOGFILE} yra absoliutusis kelias iki žurnalizavimo rinkmenos. Štai vienas galimas naudojimas:
    • PORTAGE_ELOG_COMMAND="/path/to/logger -p '\${PACKAGE}' -f '\${LOGFILE}'"
  • PORTAGE_ELOG_MAILURI: Čia yra nuostatos mail moduliui, tokios kaip adresas, naudotojas, slaptažodis, pašto serveris ir prievado numeris. Numatytoji nuostata yra "root@localhost localhost".
  • Štai pavyzdys smtp serveriui, kuris reikalauja naudotojo vardo ir slaptažodžio prisijungiant prie tam tikro prievado (numatytasis yra 25 prievadas):
    • PORTAGE_ELOG_MAILURI="naudotojas@kažkokia.sritis naudotojo_vardas:slaptažodis@smtp.kažkokia.sritis:995"
  • PORTAGE_ELOG_MAILFROM: Leidžia nustatyti laukelyje „kas“ („from“) rodomą adresą žurnalų laiškuose; jei nenustatytas, numatytoji reikšmė yra „portage“.
  • PORTAGE_ELOG_MAILSUBJECT: Leidžia sukurti temos (subject) eilutę žurnalų laiškams. Atkreipkite dėmesį, kad jūs galite panaudoti du kintamuosius: ${PACKAGE} parodys paketo pavadinimą ir versiją, o ${HOST} yra kompiuterio, kuriame yra paleista „Portage“, pilnas sudėtinis srities vardas (fully qualified domain name).
  • Štai vienas galimas naudojimas:
    • PORTAGE_ELOG_MAILSUBJECT="paketas \${PACKAGE} įdiegtas \${HOST} su keliais pranešimais"

Svarbu: Jeigu jūs su „Portage“ 2.0.* naudojote enotice, turite visiškai pašalinti enotice, kadangi ji nėra suderinama su elog.

2. Konfigūravimas per kintamuosius

2.a. „Portage“ konfigūravimas

Kaip buvo pažymėta anksčiau, „Portage“ galima konfigūruoti naudojant kintamuosius, kuriuos reikia apibėžti rinkmenoje /etc/make.conf. Jeigu norite išsamesnės informacijos, ją galite rasti make.conf žinyno puslapyje:

Kodo sąrašas 1.1: make.conf žinyno puslapio skaitymas

$ man make.conf

6.b. Specifinės kompiliavimo parinktys

Konfigūravimo ir kompiliatoriaus parinktys

Kai „Portage“ kompiliuoja programas, ji kompiliatoriui ir konfigūravimo scenarijui perduoda šių kintamųjų turinį:

  • CFLAGS ir CXXFLAGS apibrėžia pageidaujamas kompiliatoriaus vėliavėles C ir C++ kompiliavimui.
  • CHOST apibrėžia informaciją apie kompiuterį programos konfigūravimo scenarijui.
  • MAKEOPTS yra perduodami make komandai ir paprastai yra naudojami apibrėžti kompiliavimo metu naudojamą paralelizmo kiekį. Daugiau informacijos apie kompiliavimo nustatymus galima rasti make žinyno puslapyje.

Kintamasis USE taip pat yra naudojams konfigūruojant ir kompiliuojant, bet jis buvo išsamiai paaiškintas ankstesniuose skyriuose.

Programų atnaujinimo nustatymai

Kai „Portage“ įrašo naujesnę kokios nors programinės įrangos versiją, ji ištrina nebevartojamas senesnės versijos rinkmenas iš jūsų sistemos. Prieš ištrindama senesnę versiją, „Portage“ palaukia 5 sekundes. Šios 5 sekundės yra apibrėžtos kintamuoju CLEAN_DELAY.

Jūs galite nurodyti emerge naudoti tam tikrus parametrus kiekvieną kartą pasileidžiant nustatydami EMERGE_DEFAULT_OPTS. Keli naudingi parametrai galėtų būti --ask, --verbose, --tree ir kiti.

2.c. Konfigūracinės rinkmenos apsauga

Apsaugoti „Portage“ katalogai

Kai „Portage“ įrašo naujesnę programos versiją, ji vietoj senosios versijos konfigūracijos rinkmenų įrašo naujesnės versijos konfigūracijos rinkmenas, nebent jos yra apsaugotame kataloge. Apsaugoti katalogai nustatomi kintamuoju CONFIG_PROTECT ir yra įprasti konfigūracijos rinkmenų katalogai. Katalogų sąrašo dydis yra neribotas.

Rinkmena, kurią reikia įrašyti tokiame apsaugotame kataloge yra pervardinama ir vartotojas yra įspėjamas apie naujesnę konfigūrcinės rinkmenos versiją.

Esamą kintamojo CONFIG_PROTECT nuostatą galima sužinoti iš komandos emerge --info išvesties:

Kodo sąrašas 3.1: CONFIG_PROTECT nuostatos sužinojimas

$ emerge --info | grep 'CONFIG_PROTECT='

Daugiau informacijos apie „Portage“ konfigūracinių rinkmenų apsaugą galima rasti emerge žinyno puslapio „CONFIGURATION FILES“ dalyje:

Kodo sąrašas 3.2: Daugiau informacijos apie konfigūracinių rinkmenų apsaugą

$ man emerge

Katalogų išskyrimas

Jeigu jūs norite „pašalinti apsaugą" nuo tam tikrų saugomų katalogų pakatalogių, naudokite kintamąjį CONFIG_PROTECT_MASK.

2.d. Parsisiuntimo parinktys

Serverių vietos

Kai jūsų sistemoje nėra reikalaujamos informacijos ar duomenų, „Portage“ bandys tą gauti iš interneto. Serverių, kuriuose yra įvairi informacija ir duomenys, adresai yra apibrėžti šių kintamųjų:

  • GENTOO_MIRRORS apibrėžia serverių, kuriuose yra pirminiai tekstai, reikiami paketų diegimui, sąrašą
  • PORTAGE_BINHOST apibrėžia serverių, kuriuose yra iš anksto jūsų sistemai sukompiliuoti paketai, sąrašą

Trečioji nuostata yra susijusi su rsync serverio, kurį jūs naudojate, kai jūs atnaujinate „Portage“, vieta:

  • SYNC nustato konkretų serverį, iš kurio Portage parsiunčia „Portage“ medį

Kintamieji GENTOO_MIRRORS ir SYNC gali būti automatiškai nustatyti naudojant mirrorselect programą. Kad galėtumėte ja naudotis, pirmiausiai reikia įvykdyti komandą emerge mirrorselect. Daugiau informacijos rasite mirrorselect žinyne:

Kodo sąrašas 4.1: Daugiau informacijos apie mirrorselect

# mirrorselect --help

Jeigu jums reikia naudoti įgaliotąjį serverį, jam nustatyti jūs galite naudoti kintamuosius http_proxy, ftp_proxy ir RSYNC_PROXY.

Parsiuntimo komandos

Kai „Portage“ reikia parsiųsti pirminius tekstus, pagal nutylėjimą ji naudoja wget. Tai galima pakeisti naudojantis kintamuoju FETCHCOMMAND.

„Portage“ sugeba pratęsti dalinai parsiųstų pirminių tekstų siuntimą. Tam pagal nutylėjimą ji naudoja wget, bet tai gali būti pakeista naudojant kintamąjį RESUMECOMMAND.

Įsitikinkite, kad FETCHCOMMAND and RESUMECOMMAND išsaugo pirminius tekstus teisingoje vietoje. Kintamųjų viduje pirminių tekstų ir rinkmenų, reikiamų paketų diegimui, išsaugojimo vietai nurodyti reiktų naudoti atitinkamai \${URI} and \${DISTDIR}.

Jūs taip pat galite apibrėžti apdorojimo programas konkretiems protokolams naudodami FETCHCOMMAND_HTTP, FETCHCOMMAND_FTP, RESUMECOMMAND_HTTP, RESUMECOMMAND_FTP ir t.t.

Rsync nuostatos

Jūs negalite keisti komandos rsync, kuria „Portage“ naudoja atnaujinti Portage medžiui, bet jūs galite nustatyti keletą kintamųjų, susijusių su rsync komanda:

  • PORTAGE_RSYNC_OPTS nustato numatytus kintamuosius, naudojamus sinchronizacijos metu, atskirtus kableliais. Jie neturėtų būti keičiami, nebent jūs tiksliai žinote, ką darote. Atkreipkite dėmesį, kad kai kurie neabejotinai būtini parametrai bus naudojami visuomet, net jei PORTAGE_RSYNC_OPTS yra tuščias.
  • PORTAGE_RSYNC_EXTRA_OPTS gali būti naudojamas papildomų nuostatų sinchronizacijos metu nustatymui. Kiekviena nuostata turi būti atskirta tarpu.
    • --timeout=<skaičius>: Nurodomas skaičius sekundžių, kurias rsync susijungimas gali būti neveiklus prieš tai, kada rsync mato susijungimui skirtojo laiko pabaigą. Numatytoji šio kintamojo reikšmė yra 180, tačiau telefoninio ryšio naudotojai ar asmenys, turintys lėtus kompiuterius galbūt norės nustatyti 300 ar daugiau.
    • --exclude-from=/etc/portage/rsync_excludes: Nurodoma į rinkmeną, kurioje yra sąrašas paketų ir/ar kategorijų, kurias rsync atnaujinimo proceso metu turėtų ignoruoti. Šiuo atveju nurodyta į /etc/portage/rsync_excludes. Apie šios rinkmenos sintaksę skaitykite skyriuje „Portage“ medžio pogrupių naudojimas“.
    • --quiet: Sumažina išvedimą į ekraną
    • --verbose: Atspausdina pilną rinkmenų sąrašą
    • --progress: Kiekvienai rinkmenai parodo eigos juostą
  • PORTAGE_RSYNC_RETRIES apibrėžia, kiek kartų rsync turėtų bandyti prisijungti prie dubliuojamosios tinklavietės, nurodytos SYNC kintamuoju, prieš baigdamas darbą. Šio kintamojo numatytoji reikšmė yra 3.

Daugiau informacijos apie šias ir kitas nuostatas galite gauti rsync žinyno puslapyje (man rsync).

2.e. „Gentoo“ konfigūravimas

Šakos pasirinkimas

Šaką, kurią norite naudoti, galite pasirinkti kintamojo ACCEPT_KEYWORDS pagalba. Pagal nutylėjimą jis nurodo jūsų architektūros stabiliąją šaką. Daugiau informacijos apie „Gentoo“ šakas galima rasti kitame skyriuje.

„Portage“ ypatybės

Jūs galite aktyvuoti tam tikras „Portage“ ypatybes naudodami kintąmąjį FEATURES. „Portage“ ypatybės buvo aptartos ankstesniuose skyriuose, tokiuose kaip „Portage“ ypatybės.

2.f. „Portage“ elgesys

Resursų valdymas

Naudodami kintamąjį PORTAGE_NICENESS jūs galite padidinti arba sumažinti „Portage“ nice vertę. PORTAGE_NICENESS vertė yra pridedama prie esamos nice vertės.

Norėdami sužinoti daugiau apie nice vertes, paskaitykite nice žinyno puslapį:

Kodo sąrašas 6.1: Daugiau informacijos apie nice

$ man nice

Išvesties elgesys

Kintamasis NOCOLOR, kurio vertė pagal nutylėjimą yra „netiesa“ („false“), apibrėžia, ar „Portage“ turėtų pasyvinti (išjungti) spalvotos išvesties naudojimą.

3. Programinės įrangos atšakų maišymas

3.a. Vienos programinės įrangos šakos naudojimas

Stabilioji šaka

Kintamasis ACCEPT_KEYWORDS nusako, kuri programinės įrangos šaka bus naudojama jūsų sistemoje. Pagal nutylėjimą jis nurodo stabiliąją programinės įrangos šaką jūsų architektūrai, pavyzdžiui, x86.

Mes rekomenduojame naudoti tik stabiliąją šaką. Tačiau, jeigu jums stabilumas ypatingai nerūpi, ir jūs norite padėti „Gentoo“ siųsdami pranešimus apie klaidas į http://bugs.gentoo.org, skaitykite toliau.

Bandomoji šaka

Jeigu jūs norite naudoti naujesnę programinę įrangą, jūs galite vietoj stabiliosios šakos naudoti bandomąją šaką. Jeigu norite, kad Portage naudotų bandomąją šaką, pridėkite ženklą ~ prieš savo architektūrą.

Bandomoji šaka yra būtent tai, ką sako jos pavadinimas - bandymas. Jeigu paketas yra bandomojoje šakoje, vadinasi jo kūrėjai mano, kad jis yra veikiantis, bet ne iki galo išbandytas. Jūs laisvai galite būti pirmasis suradęs riktą pakete. Tokiu atveju jums reikėtų užpildyti pranešimą apie riktą, taip pranešant apie jį programos kūrėjams.

Tačiau būkite atsargūs, nes jums gali iškilti problemų dėl stabilumo, neužbaigto paketų valdymo (pavyzdžiui, neteisingų/trūkstamų priklausomybių), per dažnų atnaujinimų (lemiančių daug kompiliavimo) ar neveikiančių paketų. Jeigu jūs nežinote, kaip veikia „Gentoo“ ir kaip išspręsti problemas, mes rekomenduojame jums pasilikti su stabiliąją šaka, kuri yra jau išbandyta.

Norėdami pasirinkti bandomąją šaką, pavyzdžiui, x86 architektūrai, redaguokite /etc/make.conf ir nustatykite:

Kodo sąrašas 1.1: Kintamo ACCEPT_KEYWORDS nustatymas

ACCEPT_KEYWORDS="~x86"

Jeigu jūs dabar atnaujinsite savo sistemą, pamatysite, kad bus atnaujinta daug paketų. Tačiau įsidėmėkite: kai jūs atnaujinsite savo sistemą naudodami bandomąją šaką, jums nebebus lengvo būdo sugrįžti į stabiliąją, oficialiąją šaką (nebent naudojant atsargines kopijas).

3.b. Stabiliosios ir bandomosios šakų maišymas

package.keywords vieta

Jūs galite nurodyti Portage tam tikriems paketams naudoti bandomąją šaką, o likusiai sistemos daliai naudoti stabiliąją šaką. Kad to pasiektumėte, įrašykite paketo, kurio bandomąją versiją norite naudoti, kategoriją ir vardą į /etc/portage/package.keywords. Galite sukurti ir katalogą (tokiu pačiu vardu) ir išvardinti paketus rinkmenose šiame kataloge. Pavyzdžiui, norėdami naudoti bandomąją šaką paketui gnumeric, turėtumėte įrašyti:

Kodo sąrašas 2.1: /etc/portage/package.keywords nustatymas gnumeric, pilna eilutė

app-office/gnumeric ~x86

Konkrečios versijos išbandymas

Jeigu jūs norite naudoti konkrečią kokios nors programos versiją iš bandomosios šakos, bet jūs nenorite, kad Portage naudotų testuojamąją šaką vėlesnėms tos programos versijoms, jūs galite įrašyti versijos numerį package.keywords vietoje. Šiuo atveju jūs privalote naudoti operatorių =. Jūs taip pat galite įrašyti versijų seką naudodami operatorius <=, <, > arba >=.

Bet kokiu atveju, jeigu jūs pridedate informaciją apie versiją, jūs privalote naudoti operatorių. Jeigu jūs nepateikiate versijos informacijos, jūs negalite naudoti operatoriaus.

Šiame pavyzdyje mes nurodome Portage priimti gnumeric-1.2.13:

Kodo sąrašas 2.2: Konkrečios gnumeric versijos nurodymas

=app-office/gnumeric-1.2.13 ~x86

3.c. Užmaskuotų paketų naudojimas

package.unmask vieta

„Gentoo“ kūrėjai nepalaiko šios vietos naudojimo. Būkite atsargūs, jei ją naudosite. Į pagalbos prašymus, susijusius su package.unmask ir/ar package.mask nebus atsiliepta. Jūs buvote įspėti.

Kai paketas yra užmaskuotas „Gentoo“ kūrėjų, ir jūs vistiek norite jį naudoti nepaisydami priežasčių, išsakytų rinkmenoje package.mask (kuri pagal nutylėjimą yra /usr/portage/profiles), įrašykite lygiai tokia pačią eilutę į rinkmeną /etc/portage/package.unmask (arba į rinkmeną šiame kataloge, jei tai katalogas).

Pavyzdžiui, jeigu =net-mail/hotwayd-0.8 yra užmaskuotas, jūs galite jį atmaskuoti įrašydami lygiai tokią pačią eilutę package.unmask vietoje:

Kodo sąrašas 3.1: /etc/portage/package.unmask

=net-mail/hotwayd-0.8

package.mask vieta

Kai jūs norite, kad Portage „nematytų“ tam tikro paketo arbą tam tikros paketo versijos, jūs galite patys jį užmaskuoti įrašydami atitinkamą eilutę /etc/portage/package.mask vietoje (arba šioje rinkmenoje, arba rinkmenoje šiame kataloge).

Pavyzdžiui, jeigu jūs nenorite, kad Portage diegtų naujesnius branduolio pirminius tekstus negu gentoo-sources-2.6.8.1, jums reikėtų įrašyti šią eilutę package.mask vietoje:

Kodo sąrašas 3.2: /etc/portage/package.mask pavyzdys

>sys-kernel/gentoo-sources-2.6.8.1

4. Papildomi „Portage“ įrankiai

4.a. dispatch-conf

dispatch-conf yra įrankis, padedantis suliejant rinkmenas ._cfg0000_<pavadinimas>. „Portage“ sukuria rinkmenas ._cfg0000_<pavadinimas>, kai ji nori perrašyti rinkmeną kataloge, apsaugotame kintamuoju CONFIG_PROTECT.

Naudodami dispatch-conf, galite įrašyti savo konfigūracinių rinkmenų atnaujinimus, išsaugodami visus pakeitimus. dispatch-conf saugo skirtumus tarp konfigūracinių rinkmenų kaip pataisas arba naudodamas RCS modifikacijų sistemą. Tai reiškia, jog jei suklysite atnaujindami konfigūracinę rinkmeną, bet kuriuo metu galėsite grąžinti ankstesnę konfigūracinės rinkmenos versiją.

Naudodami dispatch-conf, galite liepti palikti konfigūracines rinkmenas tokias, kokios yra, naudoti naująsias konfigūracines rinkmenas, redaguoti dabartines arba sulieti skirtumus interaktyviai. dispatch-conf taip pat turi keletą papildomų savybių:

  • Automatiškai sulieja konfigūracinių rinkmenų atnaujinimus, kuriuose atnaujinti yra tik komentarai
  • Automatiškai sulieja konfigūracines rinkmenas, kurios skiriasi tik tarpų kiekiu

Pirmiausia redaguokite rinkmeną /etc/dispatch-conf.conf ir sukurkite katalogą, nurodytą kintamuoju archive-dir.

Kodo sąrašas 1.1: dispatch-conf paleidimas

# dispatch-conf

Paleidus dispatch-conf, po vieną jums bus pateikta kiekviena konfigūracinė rinkmena. Paspauskite u, kad atnaujintumėte (pakeistumėte) esamą konfigūracinę rinkmeną naująja ir pereitumėte prie kitos rinkmenos. Spustelkite z, kad pašalintumėte naująją konfigūracinę rinkmeną ir pereitumėte prie kitos rinkmenos. Vos tik visomis konfigūracinėmis rinkmenomis bus pasirūpinta, dispatch-conf baigs darbą. Taip pat galite paspausti q, kad išeitumėte iš programos bet kuriuo metu.

Norėdami gauti daugiau informacijos, peržvelkite dispatch-conf žinyno puslapį. Jame aiškinama, kaip interaktyviai sulieti esamą ir naują konfigūracines rinkmenas, redaguoti naujas konfigūracines rinkmenas, peržvelgti skirtumus tarp rinkmenų ir daugiau.

Kodo sąrašas 1.2: dispatch-conf žinyno puslapio skaitymas

$ man dispatch-conf

4.b. etc-update

Konfigūracinių rinkmenų suliejimui galite naudoti ir etc-update. Jis nėra toks paprastas naudoti kaip dispatch-conf, turi ne tiek daug funkcijų, tačiau teikia interaktyvaus suliejimo galimybę bei gali automatiškai sulieti nežymius pakeitimus.

Tačiau etc-update, skirtingai nuo dispatch-conf, neišsaugo jūsų konfigūracinių rinkmenų buvusių versijų. Vos tik atnaujinsite rinkmeną, senosios versijos nebeliks! Taigi būkite labai atsargūs, kadangi naudoti etc-update nėra taip saugu kaip dispatch-conf.

Kodo sąrašas 2.1: etc-update vykdymas

# etc-update

Įrašius nežymius pokyčius, jums bus išvardintos apsaugotos rinkmenos, kurios laukia atnaujinimo. Gale jums pateikiami galimi pasirinkimai:

Kodo sąrašas 2.2: etc-update pasirinkimai

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

Jeigu jūs įvesite -1, etc-update baigs darbą ir daugiau nevykdys jokių pakeitimų. Jeigu įvesite -3 arba -5, visos išvardintos konfigracinės rinkmenos bus perrašytos naujesnėmis versijomis. Todėl yra labai svarbu pirmiausia pasirinkti konfigūracines rinkmenas, kurių negalima atnaujinti automatiškai. Tam paprasčiausiai užtenka įvesti skaičių, parašyta tos konfigracinės rinkmenos pavadinimo kairėje.

Pavyzdžiui, mes pasirenkame konfigūracinę rinkmeną /etc/pear.conf:

Kodo sąrašas 2.3: Konkrečios konfigracinės rinkmenos atnaujinimas

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

Dabar jūs galite matyti skirtumus tarp dviejų rinkmenų. Jeigu jūs manote, kad naujesnė konfigracinė rinkmena gali būti naudojama be problemų, įveskite 1. Jeigu jūs manote, kad naujesnė konfigracinė rinkmena yra nebūtina arba nesuteikia jokios naujos ar naudingos informacijos, įveskite 2. Jeigu jūs norite interaktyviai atnaujinti jūsų konfigracinę rinkmeną, įveskite 3.

Nėra jokios prasmės čia toliau detalizuoti interaktyvaus suliejimo. Užbaigtumo dėlei, mes išvardinsime galimas komandas, kurias jūs galite naudoti kol jūs interaktyviai suliejate dvi rinkmenas. Jums išvedamos dvi eilutės (originalioji ir siūloma naujoji) ir raginimas, į kurį jūs galite įvesti vieną iš šių komandų:

Kodo sąrašas 2.4: Komandos prieinamos interaktyviam suliejimui

ed:     Redaguoti ir tuomet naudoti abi versijas, kiekvieną dekoruotą antrašte.
eb:     Redaguoti ir tuomet naudoti abi versijas.
el:     Redaguoti ir tuomet naudoti kairiąją versiją.
er:     Redaguoti ir tuomet naudoti dešiniąją versiją.
e:      Redaguoti naująją versiją.
l:      Naudoti kairiąją versiją.
r:      Naudoti dešiniąją versiją.
s:      Tyliai įtraukti bendras eilutes.
v:      Išsamiai įtraukti bendras eilutes.
q:      Išeiti.

Kai jūs baigiate svarbių konfigūracinių rinkmenų atnaujinimą, jūs galite automatiškai atnaujinti visas kitas konfigracines rinkmenas. etc-update baigs darbą jeigu nebus rasta jokių rinkmenų, kurias reikia atnaujinti.

4.c. quickpkg

Su quickpkg jūs galite kurti paketų, kurie jau yra įrašyti į jūsų sistemą, archyvus. Šie archyvai gali būti panaudoti kaip dvejetainiai paketai. quickpkg vykdymas yra paprastas: tereikia pridėti paketų, kuriuos norite archyvuoti, vardus.

Pavyzdžiui, norint suarchyvuoti curl, arts ir procps:

Kodo sąrašas 3.1: quickpkg naudojimo pavyzdys

# quickpkg curl arts procps

Dvejetainiai paketai bus išsaugojami kataloge $PKGDIR/All (pagal nutylėjimą /usr/portage/packages/All). Symbolinės nuorodos nurodančios į šiuos paketus yra įrašomos į $PKGDIR/<category>.

5. Nukrypimas nuo oficialaus medžio

5.a. „Portage“ medžio pogrupių naudojimas

Paketų/kategorijų išskyrimas

Jūs galite pasirinktinai atnaujinti tam tikras kategorijas/paketus ir ignoruoti kitas kategorijas/paketus. Tai galima pasiekti nurodant rsync išskirti kategorijas/paketus vykdant emerge --sync.

Reikia nurodyti rinkmenos, kurioje yra išskyrimo šablonai, vardą kintamuoju --exclude-from rinkmenoje /etc/make.conf.

Kodo sąrašas 1.1: Išimčių rinkmenos nurodymas rinkmenoje /etc/make.conf

PORTAGE_RSYNC_EXTRA_OPTS="--exclude-from=/etc/portage/rsync_excludes"

Kodo sąrašas 1.2: Rinkmenoje /etc/portage/rsync_excludes nurodome išskirti visus žaidimus

games-*/*

Atkreipkite dėmesį, kad tai gali lemti problemas dėl priklausomybių, kadangi atnaujinti paketai gali priklausyti nuo naujų, bet išskirtų, todėl neatnaujintų, paketų.

5.b. Neoficialių ebuild rinkmenų įtraukimas

„Portage“ perdangos (overlay) katalogo sukūrimas

Jūs galite nurodyti „Portage“ naudoti ebuild rinkmenas, kurios nėra įtrauktos į oficialųjį „Portage“ medį. Sukurkite naują katalogą (pavyzdžiui, /usr/local/portage), kuriame galėsite išsaugoti trečiosios šalies ebuild rinkmenas. Naudokite tokią pačią katalogo struktūrą, kokia yra naudojama oficialiame „Portage“ medyje!

Tada apibrėžkite kintąmąjį PORTDIR_OVERLAY rinkmenoje /etc/make.conf ir juo nurodykite anksčiau sukurtą katalogą. Dabar jums naudojantis „Portage“ bus atsižvelgiama ir į jūsų ebuild rinkmenas ir jos nebus ištrinamos/perrašomos vykdant komandą emerge --sync.

Darbas su keliomis perdangomis

Patyrusiems naudotojams, kurie kurie nori naudoti keletą perdangų, kad galėtų išbandyti paketus prieš įtraukiant juos į oficialųjį „Portage“ medį arba tik nori naudoti neoficialias ebuild rinkmenas iš įvairių šaltinių, pakete app-portage/gentoolkit-dev yra skirta programa gensync - tai įrankis, kurio pagalba galima palaikyti kelių perdangų saugyklas atnaujintas.

Su gensync jūs galite atnaujinti visas saugyklas iš karto arba pasirinkti tik kelias iš jų. Kiekviena saugykla turėtų turėti .syncsource rinkmeną konfigūraciniame kataloge /etc/gensync/, kurioje turėtų būti saugyklos vieta, vardas, identifikatorius ir t.t.

Tarkime, jūs turite dvi papildomas saugyklas, pavadintas java (skirtą kuriamoms java ebuild rinkmenoms) ir entapps (skirtą pogramoms, sukurtoms įmonės viduje ir naudojamoms jūsų veikloje). Jūs galite atnaujinti šias saugyklas panaudodami šią komandą:

Kodo sąrašas 2.1: gensync naudojimas kelių saugyklų atnaujinimui

# gensync java entapps

5.c. Ne „Portage“ prižiūrima programinė įrangą

„Portage“ naudojimas su paties naudotojo prižiūrima programine įranga

Kai kuriais atvejais jūs galite norėti patys konfiguruoti, įsidiegti ir prižiūrėti programinę įrangą, neleisdami „Portage“ automatizuoti šio proceso, nors „Portage“ ir gali suteikti jums programinės įrangos pavadinimus. Žinomi atvejai yra branduolio išeities tekstai ir nvidia tvarkyklės. Jūs galite sukonfiguruoti „Portage“ taip, kad ji žinotų, jog tam tikras paketas yra rankiniu būdu įdiegtas jūsų sistemoje. Šis procesas yra vadinamas injecting ir palaikomas „Portage“ rinkmenos /etc/portage/profile/package.provided.

Psvyzdžiui, jeigu norite informuoti „Portage“ apie tai, kad jūs rankiniu būdu įdiegėte gentoo-sources-2.6.11.6, įrašykite šią eilutę į rinkmeną /etc/portage/profile/package.provided:

Kodo sąrašas 3.1: Eilutės pavyzdys rinkmenai package.provided

sys-kernel/gentoo-sources-2.6.11.6

D. „Gentoo“ tinklo konfigūravimas

1. Pradžia

2. Papildoma konfigūracija

3. Modulinis tinklas

4. Belaidis tinklas

5. Funkcionalumo pridėjimas

6. Tinklo valdymas

Spausdinti

Atnaujinta 2009 sausio 26

Šio dokumento originalas paskutinį kartą buvo atnaujintas 2013 gegužės 11

Santrauka: Tai yra „Gentoo“ vadovas, bandymas centralizuoti „Gentoo/Linux“ informaciją. Šiame vadove yra diegimo instrukcijos internetiniam diegimui Sparc sistemose ir dalys apie darbą „Gentoo“ ir „Portage“.

Sven Vermeulen
Autorius

Grant Goodyear
Author

Roy Marples
Autorius

Daniel Robbins
Autorius

Chris Houser
Autorius

Jerry Alexandratos
Autorius

Seemant Kulleen
„Gentoo“ x86 Plėtotojas

Tavis Ormandy
„Gentoo“ Alpha Plėtotojas

Jason Huebel
„Gentoo“ AMD64 Plėtotojas

Guy Martin
„Gentoo“ HPPA Plėtotojas

Pieter Van den Abeele
„Gentoo“ PPC Plėtotojas

Joe Kallar
„Gentoo“ SPARC Plėtotojas

John P. Davis
Redaktorius

Pierre-Henri Jondot
Redaktorius

Eric Stockbridge
Redaktorius

Rajiv Manglani
Redaktorius

Jungmin Seo
Redaktorius

Stoyan Zhekov
Redaktorius

Jared Hudson
Redaktorius

Colin Morey
Redaktorius

Jorge Paulo
Redaktorius

Carl Anderson
Redaktorius

Jon Portnoy
Redaktorius

Zack Gilburd
Redaktorius

Jack Morgan
Redaktorius

Benny Chuang
Redaktorius

Erwin
Redaktorius

Joshua Kinard
Redaktorius

Tobias Scherbaum
Redaktorius

Xavier Neys
Redaktorius

Joshua Saddler
Redaktorius

Gerald J. Normandin Jr.
Apžvalgininkas

Donnie Berkholz
Apžvalgininkas

Ken Nowack
Apžvalgininkas

Lars Weiler
Pagalbininkas

Ernestas Liubarskij
Vertėjas

Elvinas Piliponis
Vertėjas

Mantas Povilaitis
Vertėjas

Donatas Puidokas
Vertėjas

Donate to support our development efforts.

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