Gentoo Logo

Kiistö: Tämä käsikirja on vanhentunut eikä sitä enää ylläpidetä.

Gentoo-käsikirja versiolle 2005.1 alustalla Linux-x86

Sisällysluettelo:

  • Gentoon asentaminen
    Tässä osassa kerrotaan kuinka Gentoo-järjestelmä asennetaan.
    1. Gentoo Linuxin asentamisesta
      Käyttäjät, jotka eivät ole tutustuneet Gentoohon, eivät aina tunne vaihtoehtoja joita Gentoo tarjoaa.
    2. Universal asennus-CD:n käynnistys
      Tässä kappaleessa kerrotaan kuinka Universal asennus-CD:ltä käynnistetään ja asennetaan.
    3. Verkon asetusten tekeminen
      Jos tarvitaan verkkoyhteyksiä, tässä kappaleessa kerrotaan miten ne saadaan kuntoon asennuksen ajaksi.
    4. Kovalevyjen valmistelu
      Gentoon asentaakseen osiointi on pakko suorittaa. Tässä kappaleessa kerrotaan kuinka levyn voi osioida tulevaa käyttöä varten
    5. Gentoon asennustietojen asentaminen
      Tässä kappaleessa tarkastelemme kuinka stage3-tiedosto puretaan ja Portagen asetukset säädetään kohdilleen.
    6. Gentoojärjestelmään chroottaminen
      Kun stage3 on asennettu, uuteen järjestelmään voidaan siirtyä ja asettaa USE-asetukset.
    7. Ytimen asetusten tekeminen
      Linuxin ydin on jokaisen jakelun keskeinen osa. Tässä kappaleessa kerrotaan miten asetat ytimesi.
    8. Järjestelmän asetusten tekeminen
      Joitain asetuksia täytyy muokata. Tässä kappaleessa luodaan yleiskatsaus asennustiedostojen muokkaamiseen.
    9. Tarvittavien järjestelmätyökalujen asentaminen
      Kuten aiemmin mainittiin, Gentoon idea on valinnanvarassa. Tässä kappaleessa opitaan valitsemaan ja asentamaan joitain tärkeitä työkaluohjelmia.
    10. Käynnistyslataimen asetusten tekeminen
      X86-alustalle on saatavilla useita käynnistyslataimia. Jokaisella näistä on omat asetuksensa. Tässä opastetaan askel askeleelta läpi kaikki asetukset mitä käynnistyslatain tarvitsee.
    11. Gentoo-asennuksen viimeistely
      Melkein valmista, enää tarvitaan yksi tai useampi käyttäjätunnus järjestelmään ja voidaan uudelleenkäynnistää Gentoo-järjestelmään.
    12. Minne seuraavaksi?
      Nyt meillä on valmis Gentoo-järjestelmä, mitä teemme sitten?
  • Gentoon käyttäminen
    Tässä osassa kerrotaan kuinka Gentoota käytetään: asennetaan ohjelmistoja, muutetaan muuttujia, vaihdetaan portagen käyttäytymistä ja niin edelleen.
    1. Johdanto Portageen
      Tässä kappaleessa kerrotaan ohjelmistonhallinnasta muutamia yksinkertaisia juttuja, jotka kaikkien käyttäjien tulisi tietää.
    2. USE-asetukset
      Use-asetukset ovat erittäin tärkeä osa Gentoota. Tässä kappaleessa opit käyttämään USE-asetuksia ja ymmärtämään niiden vuorovaikutus järjestelmään.
    3. Portagen ominaisuudet
      Tässä kappaleessa kerrotaan Portagen mahdollisuuksista, kuten rinnakkaisjärjestelmien käytöstä kääntämiseen, ccachen käytöstä ja sen sellaisesta.
    4. Initskriptit
      Gentoo käyttää erityistä initscript-muotoa, joka tukee esimerkiksi riippuvuuksia ja virtuaalisia initskriptejä. Tämä kappale kertoo kaiken näistä toiminnallisuuksista ja selittää miten käyttää tällaisia komentojonotiedostoja.
    5. Ympäristömuuttujat
      Gentoossa ympäristömuuttujia voidaan helposti hallita. Tässä kappaleessa kerrotaan miten se tehdään ja kuvataan yleisimmin käytetyt muuttujat.
  • Portagen käyttö
    Tässä osassa kerrotaan kuinka Portage, Gentoon ohjelmiston hallinta toimii.
    1. Tiedosto ja hakemistot
      Tässä kappaleessa kerrotaan tarkemmin, missä Portage säilyttää tiedostojaan ja muuta dataansa.
    2. Asetusten säätäminen muuttujilla
      Portage on täysin mukautettavissa erilaisten asetusmuuttujien avulla. Näitä voi hallita joko asetustiedostojen tai ympäristömuuttujien kautta.
    3. Ohjelmistohaarojen sekoittaminen
      Gentoon tarjoamista ohjelmista on saatavilla useita versioita stabiilisuuden ja arkkitehtuurin mukaan luokiteltuna. Tässä kappaleessa kerrotaan, kuinka näitä versioita säädetään, ja kuinka voidaan ohittaa versiotiedot tapauskohtaisesti.
    4. Muut Portagen työkalut
      Portageen liittyy muutamia työkaluja, jotka helpottavat Gentoon käyttämistä. Tässä kappaleessa kerrotaan, kuinka voit parantaa elämääsi dispatch-confilla ja vastaavilla työkaluilla.
    5. Portagepuun mukauttaminen ja ohitus
      Tässä kappaleessa kerrotaan muutamia vihjeitä, kuinka voit käyttää omaa ohjelmistohakemistoasi virallisen Portagepuun ohella, kuinka voit synkronisoida puusta vain ne luokat jotka haluat, kuinka voit injektoida paketteja ja niin edelleen.
    6. Ebuild-sovellus
      Tässä kappaleessa kerrotaan, mitä Portage tekee asentaessaan ohjelmia, ja kuinka tämän voi tehdä omin käsin ebuild-sovelluksen avulla.
  • Gentoon verkkoasetukset
    Kattava opas verkkoasetusten tekoon Gentoo-järjestelmässä.
    1. Aloittaminen
      Tässä kappalseesa kerrotaan miten verkon saa nopeasti käyttöön yleisimmissä tapauksissa.
    2. Erikoisasetukset
      Tässä kappaleessa kerrotaan miten asetukset toimivat. Tämä kannattaa lukea ennen kuin käy modulaaristen verkkoasetusten kimppuun.
    3. Modulaariset verkkoasetukset
      Tässä kappaleessa kerrotaan Gentoon joustavista verkkoasetusmahdollisuuksista, DHCP-asiakasohjelmista, siltauksista, VLANeista ja muista.
    4. Langattomat verkot
      Tässä kappaleessa kerrotaan langattomien verkkojen asettamisen ongelmista.
    5. Lisätoimintojen tekeminen
      Tässä kappaleessa kerrotaan miten tehokäyttäjä voi lisätä omia erikoistoimintojaan verkkoasetuksiinsa.
    6. Verkkojen ylläpito
      Tässä kappaleessa kerrotaan miten kannettavien käyttäjät tai muut verkkoja usein vaihtavat ihmiset voivat asettaa eri verkkoasetuksia.

A. Gentoon asentaminen

1. Gentoo Linuxin asentamisesta

1.a. Johdatus

Tervetuloa!

Ensiksikin tervetuloa Gentoon pariin. Gentoossa on kyse vaihtoehdoista ja suorituskyvystä. Tämä tulee Gentoota asennettaessa selväksi useampaankin otteeseen; voit valita miten paljon käännät itse, miten asennat Gentoon, mitä järjestelmälokia käytät, jne.

Gentoo on nopea ja moderni, puhtaasti ja joustavasti suunniteltu metajakelupaketti. Gentoo on rakennettu avoimen ohjelmiston ympärille, eikä se piilota käyttäjältä järjestelmän sisäisiä yksityiskohtia. Gentoon ohjelmistonhallintajärjestelmä Portage on kirjoitettu Pythonilla, joten voit helposti tarkastella ja muokata sen koodia. Gentoon paketointijärjestelmä hyödyntää lähdekoodia (vaikka voit käyttää myös valmiiksi käännettyjä ohjelmistoja), ja voit asettaa Gentoon toimintoja tavan tekstieditorilla. Toisin sanoen Gentoo on täysin avoin järjestelmä.

On erittäin tärkeää, että ymmärrät vaihtoehdot ja valinnat, joiden pohjalta Gentoo toimii. Emme yritä pakottaa sinua käyttämään mitään, mikä ei ole tarpeellista. Jos sinusta tuntuu, ettei tämä pidä paikkaansa, voit lähettää vikailmoituksen Gentoon kehittäjille. Ilmoitus tulee tehdä englanniksi.

Kuinka asennus on jäsennelty?

Gentoon asennus voidaan jakaa kymmeneen kohtaan, jotka vastaavat kappaleita kahdesta yhteentoista. Jokainen askel vastaa tiettyä järjestelmän tilaa:

  • Askeleen 1 jälkeen olet sopivassa tilassa asentaaksesi Gentoon.
  • Askeleen 2 jälkeen olet verkossa Gentoon asennusta varten (tämä askel voi olla vapaaehtoinen).
  • Askeleen 3 jälkeen kovalevysi ovat valmiina Gentoon asennusta varten.
  • Askeleen 4 jälkeen asennusympäristö on valmis ja voit edetä chroot-komennolla uuteen ympäristöön.
  • Askeleen 5 jälkeen kaikille Gentoo-asennuksille yhteiset ydinpaketit on asennettu.
  • Askeleen 6 jälkeen olet kääntänyt Linux-ytimen.
  • Askeleen 7 jälkeen olet säätänyt useimmat Gentoon asetustiedostoista kohdilleen.
  • Askeleen 8 jälkeen valitsemasi käynnistyslatain on asennettu.
  • Askeleen 9 jälkeen tarvittavat järjestelmätyökalut (jotka voit valita listasta) on asennettu.
  • Askeleen 10 jälkeen olet uudessa Gentoo-järjestelmässäsi.

Aina kun asennuksessa tarvitsee valita, yritämme parhaamme mukaan selostaa eri vaihtoehtojen hyvät ja huonot puolet. Seuraavaksi ohje jatkuu oletusvaihtoehdolla, joka on merkitty sanalla Oletus otsikon edellä. Muut vaihtoehdot merkitään otsikoissa sanalla Vaihtoehto. Huomaa että oletusarvo ei ole välttämättä suositeltu arvo, mutta uskomme, että sen valtaosa käyttäjistä muutenkin valitsisi.

Joitakin osia ei ole pakko tehdä. Sellaiset merkitään sanalla Valinnainen otsikon edellä. Jotkin näistä valittavista osista riippuvat aiemmista tekemistäsi valinnoista, kerromme tästä sekä ennen päätöksentekoa että valinnaisen suorituksen vaiheessa.

Mitä vaihtoehtoja on olemassa?

Gentoon voi asentaa useilla tavoilla. Gentoon voi ladata ja asentaa joltakin Gentoon asennus-CD:ltä (asennuslevyltä), olemassaolevasta järjestelmästä, käynnistävältä CD:ltä kuten Knoppixilta, verkkokäynnistysjärjestelmästä, hätäkäynnistyslevykkeiltä jne.

Tämä dokumentti kertoo asennuksesta Universal asennus-CD:ltä, se on käynnistettävä asennus-CD jossa on toimiva Gentoo-järjestelmä. Tämän ohella voi myös käyttää Packages CD:tä, jolla järjestelmän saa nopeasti pystytettyä.

Tämä asennustapa ei kuitenkaan asenna tuoreimpia paketteja ja järjestelmää. Jos tällainen halutaan, kannattaa katsoa asennusohjeita versioimattomasta Gentoo-käsikirjasta.

Muita lähestymistapoja löydät ohjeesta Alternative Installation Guide. Tarjolla on myös Gentoo Installation Tips & Tricks, joka voi olla hyödyllistä lukea. Jos tämä opas tuntuu liian yksityiskohtaiselta ja monisanaiselta, voi olla parempi katsoa dokumenttilistauksestamme josko saatavilla olisi sopivalle alustalle suunniteltua pika-asennusopasta.

Huomaa: Suomennetussa dokumentaatiossa on käytetty usein englanninkielisiä linkin nimiä viittaamaan suomentamattomiin dokumentteihin.

Sinulla on useita asennusvaihtoehtojakin: voit kääntää koko järjestelmän alusta lähtien tai asentaa valmiiksikäännetyt paketit saadaksesi Gentoon käyttöösi nopeasti. Sen lisäksi on vielä useita väliratkaisuja, joissa et käännä kaikkea vaan vain jonkin osan.

Ongelmia?

Jos törmäät ongelmiin asennuksen (tai asennusdokumentin) kanssa, tarkasta tunnetut virheet Gentoon Release Engineering -projektin sivuilta ja vianseurantajärjestelmästä (dokumentointiin liittyvissä ongelmissa vertaa alkukieliseen versioon käännösvirheiden varalta). Jollei sitä löydy niin ilmoita siitä. Ei kannata pelätä Gentoon kehittäjiä, ne eivät useinkaan syö ihmisiä.

Huomaa, että vaikka tämä ohje on alustaspesifinen, se viittailee muihinkin alustoihin. Tämä johtuu siitä että Gentoo-käsikirjan lähdekoodista valtaosa on yhteistä kaikille (ettei samaa tietoa tarvitse toistaa joka paikassa ja hukata kehitysresursseja turhaan). Yritämme pitää aiheutuneen hämäännyksen mahdollisimman pienenä.

Jos olet epävarma siitä, onko vastaantullut ongelma (joka tulee esille huolimatta siitä, että olet seurannut ohjeita tarkkaan) omaa syytäsi vai ohjelmisto-ongelma (joka on meidän syytämme huolellisesta testauksesta huolimatta), voit vapaasti tulla #gentoo-kanavalle irc.freenode.net-palvelimelle kysymään. Suomalaisen yhteisön ja mahdollisesti kääntäjät tavoittaa kanavalta #gentoo-fi. Tottakai voit ottaa yhteyttä myös muilla keinoilla.

Jos sinulla on kysymyksiä Gentoosta, tarkasta Frequently Asked Questions Gentoon englanninkielisistä dokumenteista. Voit myös tarkastaa VUKK:n Gentoon foorumeilta (ja kysellä suomenkieliseltä foorumilta opastusta). Jos et löydä vastausta kysy IRC-kanavaltamme #gentoo:lta (suomea jutellaan kanavalla #gentoo.fi), irc.freenode.net-palvelimelta.

1.b. Nopea asennus Gentoo Reference Platformin avulla

Mikä on Gentoo Reference Platform?

Gentoo Reference Platform, myöhempänä GRP, on otos valmiiksi käännetyistä paketeista, joita käyttäjät (juuri sinä!) voivat asentaa nopeuttaakseen Gentoon valmistumista. GRP rakentuu kaikista paketeista, jotka ovat pakollisia täysin toiminnallisen Gentoon aikaansaamiseksi. Sen lisäksi, että siinä on mukana järjestelmän perusta asennuksen nopeuttamiseksi, myös kaikki suuremmat ohjelmistot (kuten KDE, X-palvelin, Gnome, OpenOffice, Mozilla,…) löytyvät GRP:stä.

Näitä valmiiksikäännettyjä paketteja ei kuitenkaan ylläpidetä Gentoon tavallisen elinkaaren aikaan. Ne ovat otoksia jokaisen julkaisun ajasta ja mahdollistavat toimivan järjestelmän pystyttämisen lyhyessä ajassa. Voit sen jälkeen päivittää järjestelmääsi taustalla käyttämisen ohella.

Kuinka Portage käsittelee GRP-paketteja?

Portagepuu on kokoelma ebuildeja, tiedostoja, jotka sisältävät tiedot paketeista, kuten niiden kuvauksen, ohjelmiston kotisivun, lähdekoodin verkko-osoitteen, käännösohjeet, riippuvuudet ja niin edelleen. Portagepuu pitää saattaa ajantasalle GRP:n kanssa; ohjelmistoversioiden on oltava samoja ebuildien kanssa.

Tästä syystä, käyttäessäsi GRP-asennusta, sinun täytyy asentaa Portagen vanhempi otos sen sijaan, että synkronisoisit Portagen tuoreimman ohjelmistopuun kanssa. GRP:tä ei voi käyttää jos haluaa suoraan asentaa tuoreimmat versiot paketeista.

Onko GRP:tä saatavilla?

Kaikille alustoille ei tarjota GRP-paketteja. Tämä ei tarkoita, etteikö GRP olisi tuettu kaikilla alustoilla, mutta se tarkoittaa, ettei meillä nyt ole resursseja tehdä ja testata GRP-paketteja.

Version 2005.1 GRP-paketteja on seuraaville alustoille:

  • x86-arkkitehtuurille (x86, pentium3, pentium4, athlon-xp); huomaa: x86-GRP-paketit (eli packages-x86-2005.1.iso) löytyvät peilipalvelimilta, muut ovat saatavilla vain bittorrenteina.
  • amd64-arkkitehtuurille (amd64)
  • sparc-arkkitehtuurille (sparc32, sparc64)
  • ppc-arkkitehtuurille (G3, G4, G5)
  • alpha-arkkitehtuurille

Jos arkkitehtuurisi (tai aliarkkitehtuurisi) ei ole listassa, et voi käyttää GRP-asennusta tässä versiossa.

Johdanto päättyy tähän, jatkakaamme kohti Universal asennus-CD:n käynnistystä.

2. Universal asennus-CD:n käynnistys

2.a. Laitteistovaatimukset

Johdanto

Ennen aloittamista on hyvä listata Gentoon asentamiseen tarvittavat laitteistot.

Laitteisto

CPU i486 tai uudempi
RAM 64 megatavua
Levytila 1,5 gigatavua
Swap vähintään 256 megatavua

2.b. Gentoo Universal Installation CD

Johdanto

Gentoo asennetaan käyttämällä stage3-tarpakettia. Stage-paketti on pakattu arkistotiedosto, joka sisältää minimaalisen käyttöympäristön.

Asennusta stage1- ja stage2-paketeista ei opasteta käsikirjoissa. Lisätietoa tästä saa Gentoo VUKKista.

Gentoon Universal Installation CD

Gentoo Installation CD on käynnistettäviä CD ja sisältää riittävän rakennetun Gentoo-ympäristön. Tällaista CD:tä käyttäen voit käynnistää tietokoneesi Linux-järjestelmään suoraan CD:ltä. Käynnistyksen aikana laitteisto tunnistetaan ja sopivat ajurit ladataan. Näitä CD:itä ylläpitävät Gentoon kehittäjät.

Tarjolla olevat Installation CD:t ovat:

  • Gentoon Universal Install CD on käynnistettävä CD, joka sisältää samat toiminnallisuudet kuin Minimal Install CD:kin. Lisäksi sillä on useita stage3-paketteja (optimoituna eri aliarkkitehtuureille).
  • Gentoon Minimal Install CD on pieni, käynnistettävä CD, jonka ainoa tarkoitus on olla käynnistysjärjestelmänä, ja valmistaa verkkoyhteys Gentoon asennusta varten. Se ei sisällä kaikkia tarvittavia tiedostoja, eikä sitä voi käyttää tässä asennustavassa.

Joillakin peilipalvelimilla on myös Package CD -nimisiä tiedostoja. Tällä CD:llä ei ole Installation CD:tä, mutta sitä voi käyttää apuna verkottomassa asennuksessa. Se sisältää valmiit käännetyt paketit (ns. GRP-paketit), joista voi helposti asentaa ohjelmia (kuten OpenOffice.orgin, KDE:n, Gnomen jne.) heti Gentoon asennuksen jälkeen.

2.c. Lataa, polta ja käynnistä Universal Install CD

Universal Install CD:n lataus ja poltto

Universal Installation CD:itä (ja tarvittaessa Packages CD:itä) voi ladata sopivalta peilipalvelimelta. Installation CD on hakemistossa releases/x86/2005.1-r1/installcd, Package CD taasen hakemistossa releases/x86/2005.1-r1/packagecd.

i686:lle, athlon-xp:lle, pentium3:lle ja pentium4:lle on saatavilla Package CD:itä myös BitTorrenteina.

Hakemistossa on niin kutsuttuja ISOja. Ne sisältävät CD:n otoksen jonka voi polttaa CD-R-levylle.

Jos et ole varma lataamasi tiedoston ehjyydestä, voit tarkistaa sen MD5-tarkastussumman ja verrata sitä annettuun tarkastussummaan (kuten install-x86-minimal-2005.1-r1.iso.md5). Tarkastussummat tarkastetaan komennolla md5sum Linux/Unix-järjestelmissä ja ohjelmalla md5sum Windowsissa.

Toinen tapa ladattujen tiedostojen oikeellisuuden tarkastamiseen on GnuPG:n käyttäminen antamamme kryptografisen allekirjoituksen tarkastamiseen (löytyy tiedostosta jonka tarkenne on .asc). Lataa allekirjoitustiedost ja hae julkinen avain:

Koodilistaus 3.1: Julkisen avaimen hankinta

$ gpg --keyserver subkeys.pgp.net --recv-keys 17072058

Varmistetaan allekirjoitus:

Koodilistaus 3.2: Kryptografisen allekirjoituksen varmistaminen

$ gpg --verify <allekirjoitustiedosto> <.iso-tiedosto>

ISOja poltettaessa tulee käyttää raakapoltto-asetuksia. Tämän toteutus vaihtelee suuresti ohjelmakohtaisesti. Tarkastelemme tässä cdrecordia ja k3b:tä, annetut esimerkit vastaavat ohjelmien englanninkielisiä versioita. Lisää tietoja polttamisesta voit etsiä Gentoon VUKKista.

  • Cdrecordilla käytä komentoa cdrecord dev=/dev/hdc <ladattu .iso-tiedosto> (korvaa /dev/hdc CD-RW-asemasi laitetiedostopolulla). Aseta viimeiseksi komentojonoparametriksi vielä ISO-tiedoston polku.
  • K3B:llä valitse Tools > CD > Burn Image. Etsi ISO-tiedosto valikosta Image to Burn. Lopulta napsauta Start.

Universal Install CD:n käynnistys

Tärkeää: Lue koko kappale ennen jatkamista, koska sinulla ei aina ole aikaa lukea toimiessasi.

Asennus-CD:n polttamisen jälkeen on aika käynnistää ne. Poista kaikki CD:t asemista ja uudelleenkäynnistä järjestelmä BIOS-asetuksiin. Useimmilla koneilla tämä tehdään painamalla DEL-, F1-, tai ESC-painiketta käynnistymisen aikana. Muuta BIOS-asetusten käynnistysjärjestystä siten, että CD-ROM tulee ennen kovalevyä. Tämä asetus löytyy usein valikosta CMOS Setup. Jollei tätä asetusta tehdä, järjestelmä käynnistyy kovalevyltä jättäen CD:n huomioimatta.

Seuraavaksi aseta asennus-CD CD-asemaan (eikä esim. diskettiasemaan, nih) ja uudelleenkäynnistä. Esiin pitäisi tulla käynnistysruutu. Voit nyt aloittaa tavan käynnistysprosessin oletusasetuksilla painamalla enteriä tai käyttää Installation CD:n mukailtuja käynnistysasetuksia antamalla ytimen nimen sekä asetukset ja painamalla enteriä.

Asennus-CD:llä on mukana useita ytimiä. Oletusarvoinen on nimeltään gentoo. Muut ovat eri laitteistolle ja -nofb-variantit ilman framebuffer-tukea.

Alla lyhyt katsaus tarjolla oleviin ytimiin:

Ydin Kuvaus
gentoo 2.6-oletusydin moniprosessorituella
gentoo-nofb gentoo, mutta ilman framebuffer-tukea
memtest86 RAM-muistin testaamiseen

Voit myös antaa ytimelle asetuksia. Ne vastaavat toiminnallisuuksia joita voit käynnistää tai sulkea haluamallasi tavalla. Alla taulukko joka selvittää kaikki ytimen asetukset, sen saa myös esille käynnistyksessä painamalla F2:a.

Koodilistaus 3.3: Asetukset, joita voidaan antaa käytettävälle kernelille

- agpgart       loads agpgart (use if you have graphic problems,lockups)
- acpi=on       loads support for ACPI firmware
- ide=nodma     force disabling of DMA for malfunctioning IDE devices
- doscsi        scan for scsi devices (breaks some ethernet cards)
- dopcmcia      starts pcmcia service for PCMCIA cdroms
- nofirewire    disables firewire modules in initrd (for firewire cdroms,etc)
- nokeymap      disables keymap selection for non-us keyboard layouts
- docache       cache the entire runtime portion of cd in RAM, allows you
                to umount /mnt/cdrom to mount another cdrom.
- nodetect      causes hwsetup/kudzu and hotplug not to run
- nousb         disables usb module load from initrd, disables hotplug
- nodhcp        dhcp does not automatically start if nic detected
- nohotplug     disables loading hotplug service
- noapic        disable apic (try if having hardware problems ,nics,scsi,etc)
- noevms2       disable loading of EVMS2 modules
- nolvm2        disable loading of LVM2 modules
- hdx=stroke    (smp/smp-nofb kernel only) Allows you to partition the whole
                harddrive even if your BIOS can't handle large harddrive
- noload=module1[,module2[,...]]
                disable loading of specific kernel modules

Seuraavaksi käynnistä CD:si, valitse ydin (ellet aio käyttää oletusasetusta, gentoo-ydintä) ja käynnistysasetukset. Esimerkiksi gentoo-ytimen dopcmcia-asetuksilla käynnistäisit näin:

Koodilistaus 3.4: Installation CD:n käynnistys

boot: gentoo dopcmcia

Seuraavaksi eteesi tulee uusi käynnistysruutu ja edistymispalkki (engl. progress bar). Jos asennat Gentoota järjestelmästä, jossa on jokin muu kuin amerikkalainen näppäimistö (todennäköisesti suomalainen), muista painaa Alt+F1 siirtyäksesi monisanaiseen käynnistystilaan ja seurata ohjeita. Jollei mitään tehdä kymmenessä sekunnissa, käyttöön otetaan amerikkalainen näppäinasettelu. Käynnistysprosessin loputtua olet Live Gentoo Linuxissa pääkäyttäjänä. Komentorivillä pitäisi olla pääkäyttäjän tunniste #. Voit myös vaihtaa muille konsoleille painamalla Alt-F2:a, Alt-F3:a ja Alt-F4:ää. Takaisin aloituskonsolille pääset Alt-F1:llä.

Ja jatka matkaasi Muun laitteiston asettamiseen.

Muun laitteiston asettaminen

Installation CD yrittää käynnistyessän tunnistaa kaiken laitteiston ja ladata sopivat ydinmoduulit. Valtaosassa tapauksia se toimii erittäin hyvin. Joissain tapauksissa kuitenkin, jotkin tarvittavat moduulit voivat jäädä lataamatta. Jos PCI-tunnistus ei huomannut jotain laitteistoa sinun täytyy ladata tarvitut moduulit käsin.

Seuraavassa esimerkissä yritämme ladata 8139too-moduulin (tuen erääntyyppisille verkkokorteille):

Koodilistaus 3.5: Ytimen moduulin lataaminen

# modprobe 8139too

PCMCIA-tuki aktivoidaan käynnistämällä pcmcia initskripti:

Koodilistaus 3.6: PCMCIA-initskriptin käynnistys

# /etc/init.d/pcmcia start

Valinnainen: Kovalevyn suorituskyvyn hienosäätö

Jos olet tehokäyttäjä, halunnet hienosäätää IDE-kovalevyjen suorituskykyä hdparm-komennolla. Komentoparametreillä -tT voit testata levysi suorituskykyä (suorita se useaan kertaan varmistuaksesi oikeellisuudesta).

Koodilistaus 3.7: Kovalevyn suorituskyvyn testaus

# hdparm -tT /dev/hda

Säätämiseen voit käyttää mitä tahansa annetuista esimerkeistä (tai koettaa itse omiasi). Näissä on käytetty /dev/hda-laitetta esimerkkinä, korvaa se omallasi:

Koodilistaus 3.8: Kovalevyn suorituskyvyn säätäminen

Aktivoi DMA:
# hdparm -d 1 /dev/hda
Aktivoi DMA ja turvalliset suorituskykyä parantavat asetukset:
# hdparm -d 1 -A 1 -m 16 -u 1 -a 64 /dev/hda

Valinnainen: Käyttäjätunnusten luonti

Jos muut ihmiset tulevat käyttämään asennusympäristöä tai aiot irkata irssillä käyttämättä pääkäyttäjän tunnuksia (turvallisuussyistä), sinun tulee luoda tarvittavat käyttäjätunnukset ja vaihtaa pääkäyttäjän salasanaa

Pääkäyttäjän salasanan vaihtoon käytetään passwd-komentoa:

Koodilistaus 3.9: Pääkäyttäjän salasanan muuttaminen

# passwd
New password: (Syötä salasana)
Re-enter password: (Syötä salasana toistamiseen)

Uuden käyttäjätunnuksen luominen tapahtuu syöttämällä käyttäjän tiedot ja salasanan. Käytämme tässä komentoja useradd ja passwd. Seuraavassa esimerkissä teemme käyttäjän pekka.

Koodilistaus 3.10: Käyttäjätunnuksen tekeminen

# useradd -m -G users pekka
# passwd pekka
New password: (Syötä pekan salasana)
Re-enter password: (syötä pekan salasana toistamiseen)

Voit vaihtaa käyttäjätunnusta komennolla su:

Koodilistaus 3.11: Käyttäjätunnuksen vaihto

# su - pekka

Valinnainen: Dokumentoinnin katselu asennettaessa

Jos haluat katsella Gentoon käskikirjaa (CD:ltä tai verkosta) asennuksen aikana, varmista että olet tehnyt käyttäjätunnuksen (kts. Valinnainen: Käyttäjätunnukset). Painamalla Alt-F2 pääset uudelle terminaalille ja kirjautumaan sisään.

Jos haluat katsella CD:llä olevaa dokumentaatiota, voit käyttää siihen links2:a:

Koodilistaus 3.12: CD:llä olevan dokumentaation selaaminen

# links2 /mnt/cdrom/docs/handbook/html/index.html

On kuitenkin suositellumpaa käyttää verkossa olevaa versiota Gentoon käsikirjasta, sillä se on ajantasaisempi kuin CD:n versio, ja suomennoskin löytyy hieman varmemmin. Voit katsella tätäkin links2:lla, mutta vasta kun olet suorittanut Verkon asettamisen (muutoin Internet-yhteytesi ei tietenkään toimi jotta pääsisit hakemaan dokumentit):

Koodilistaus 3.13: Verkkodokumentaation katselu

# links2 http://www.gentoo.org/doc/en/handbook/handbook-x86.xml

Takaisin vanhalle terminaalille pääsee painamalla Alt-F1.

Valinnainen: SSH-palvelun käynnistys

Jos haluat muiden pääsevän käsiksi tietokoneeseesi Gentoon asennuksen aikana (ehkäpä koska haluat heidän auttavan sinua asennuksessa tai tekevän sen puolestasi), sinun tulee luoda heille käyttäjätunnujset tai jopa antaa pääkäyttäjän salasanat (vain silloin kun voit täysin luottaa heihin).

SSH käynnistetään seuraavasti:

Koodilistaus 3.14: SSH:n käynnistäminen

# /etc/init.d/sshd start

Voidaksesi käyttää sshd:tä sinulla täytyy olla toimivat verkkoasetukset, jatka kappaleeseen Verkon asettaminen.

3. Verkon asetusten tekeminen

3.a. Tarvitaanko verkkoa?

Missä tapauksessa pärjää ilman?

Normaalisti Universal asennus-CD:ltä asennettaessa ei tarvitse verkkoyhteyttä. On kuitenkin joitain tapauksia, joissa Internet-yhteys on hyvä olla:

  • stage3-tiedostot, jotka ovat Universal asennus-CD:llä eivät toimi ja täytyy ladata oikeampi stage3-tiedosto
  • täytyy asentaa erityisiä verkkosovelluksia, joita ilman ei pääse nettiin, eikä Universal asennus-CD:llä ei ole sopivia lähteitä (siten, että Internetiin kuitenkin pääsee asennus-CD:n avulla)
  • tarvitaan etäavustusta asennuksen aikana (joki SSH:n läpi tai irkitse).

Tarvitseeko verkkoyhteyttä?

Stage3:n sopivuuden omalle laitteistolle voi tarkastaa katselemalla hakemistosta /mnt/cdrom/stages/ josko siellä olisi sopivaa tiedostoa. Jollei, voi yrittää lähintä yhteensopivaa arkkitehtuuria.

Toisaalta jollei optimoitua stage3:a löydy, ja halutaan kuitenkin asentaa sellainen, pitää sekin hakea verkosta asennuksessa.

Siis, jollet tarvitse verkkoyhteyttä, sivuuta loppuosa tästä kappaleesta ja mene valmistelemaan kovalevyjäsi. Muutoin jatka verkkoasetustan kanssa alla.

3.b. Automaattinen verkontunnistus

Jospa se toimisi itsestään?

Jos järjestelmäsi on kytketty Ethernetillä verkkoon, jossa on DHCP-palvelin, verkkoasetuksesi on todennäköisesti jo tunnistettu valmiiksi. Tässä tapauksessa pystyt jo hyödyntämään asennus-CD:n verkkoa käyttäviä ohjelmia kuten ssh:ta, scp:tä, pingiä, irssiä, wgetiä ja linksiä, sekä monia muitakin.

Jos verkkoasetukset ovat valmiina, /sbin/ifconfig-komennon pitäisi kertoa käytössä olevista verkkorajapinnoista kuten lo:sta ja eth0:sta:

Koodilistaus 2.1: /sbin/ifconfig toimivassa ympäristössä

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

Verkkoyhteyden testaaminen

Kannattanee aloittaa pingaamalla palveluntarjoajan nimipalvelinta (osoitteen löydät tiedostosta /etc/resolv.conf) ja sitten jotain satunnaista webbisivustoa. Tällä varmistetaan että verkkopaketit pääsevät Internetiin ja DNS-palvelin toimii moitteettomasti.

Koodilistaus 2.2: Tarkempaa verkon testausta

# ping -c 3 www.yahoo.com

Jos verkkoyhteytesi toimii, voit ohittaa loput tästä kappaleesta ja jatkaa matkaasi kovalevyjen valmisteluun. Jollei toimi, niin ei voi mitään; pitänee jatkaa säätämistä :)

Valinnainen: Välipalvelimien asetusten teko

Jos käytät välipalvelinta Internet-yhteydessäsi, sinun kannattanee laittaa sen asetukset kohdalleen asennuksen ajaksi. Välipalvelimen asetukset ovat erittäin yksinkertaisia säädettäviä: tarvitsee vain luoda ympäristömuuttuja, joka sisältää välipalvelimen asetukset.

Useimmissa tapauksissa välipalvelimen määritys onnistuu pelkkää palvelinnimeä käyttämällä. Esimerkiksi jos käyttäisimme palvelimen proxy.gentoo.org porttia 8080, määritys tapahtuisi näin:

Koodilistaus 2.3: Välipalvelinten määrittely

(Jos välipalvelin käsittelee HTTP-yhteyksiä)
# export http_proxy="http://proxy.gentoo.org:8080"
(Jos välipalvelin käsittelee FTP-yhteyksiä)
# export ftp_proxy="ftp://proxy.gentoo.org:8080"
(Jos välipalvelin käsittelee RSYNC-yhteyksiä)
# export RSYNC_PROXY="proxy.gentoo.org:8080"

Jos välipalvelin vaatii käyttäjätunnuksen ja salasanan käyttämistä, voit antaa ne seuraavasti:

Koodilistaus 2.4: Käyttäjänimen ja salasanan lisääminen välipalvelinmuuttujaan

http://username:password@server

Jos esimerkiksi siis HTTP-välipalvelimellamme käytämme tunnusta pekka ja salasanaa f00b_r, sanomme:

Koodilistaus 2.5: Autentikoitu välipalvelin

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

3.c. Verkon automaattiasetukset

Jollei verkkoyhteytesi toimi suoraan käynnistyksestä, jotkin asennusvälineet sisältävät net-setup-komennon (tavallisille ja langattomille verkkoyhteyksille), adsl-setup-komennon (ADSL-korteille) tai pptp-toiminnon (PPTP-käyttäjille, vain x86-järjestelmissä).

Jos asennusvälineelläsi ei ole näitä työkaluja, eikä verkkosi vieläkään toimi, jatka Verkkoasetusten käsisäädöllä.

Oletus: net-setupin käyttö

Yksinkertaisin tapa asentaa verkkoyhteys, joka ei lähtenyt suoraan käynnistyksestä toimimaan, on käyttää net-setup-komentoa:

Koodilistaus 3.1: net-setupin ajaminen

# net-setup eth0

net-setup kysyy seuraavaksi kysymyksiä verkkoympäristöstäsi. Vastattuasi kaikkiin kysymyksiin sinulla pitäisi olla toimiva verkkoyhteys. Testaa yhteyden toimintaa aiemmin kuvatulla tavalla. Jos testit toimivat, onneksi olkoon! Olet valmis asentamaan Gentoon ja voit ohittaa loput kappaleesta jatkaen Kovalevyjen valmisteluun.

Jos verkkoyhteytesi ei vieläkään toimi, jatka Verkkoasetusten käsisäätöön.

Vaihtoehto: RP-PPPoE:n säätäminen

Jos internetyhteytesi käyttää PPPoE:tä, asennus-CD:illä (kaikilla niistä) on asioiden helpottamiseksi toiminto rp-pppoe. Komennolla adsl-setup pystyt asettamaan yhteytesi. Adsl-setup kysyy sinulta ethernet-laitetiedostoa, joka on kiinni adsl-modeemissasi, sen käyttäjätunnusta ja salasanaa, DNS-palvelinten IP-osoitteita ja palomuuriasetuksia.

Koodilistaus 3.2: rp-pppoe:n käyttö

# adsl-setup
# adsl-start

Jos jokin menee pieleen, tarkista käyttämäsi käyttäjätunnus ja salasana tiedostosta /etc/ppp/pap-secrets tai /etc/ppp/chap-secrets, ja varmista että käyttämäsi ethernet-laite on oikea. Jos ethernet-laitetiedostoa ei ole, sinun tulee ladata sen tarvitsemat moduulit. Tähän ohjeet löydät Verkkoasetusten käsisäädöstä.

Jos kaikki toimii nyt, jatka kohti Kovalevyjen valmistelua.

Vaihtoehto: PPTP:n käyttö

Huomaa: PPTP on vain x86-alustoille.

Jos tarvitset PPTP-tuen, voit käyttää asennus-CD:iltä löytyvää pptpclientiä. Ensin täytyy kuitenkin tarkistaa asetukset. Muokkaa tiedosto /etc/ppp/pap-secrets tai /etc/ppp/chap-secrets sellaiseen muotoon että siinä on oikea käyttäjätunnus ja salasana:

Koodilistaus 3.3: /etc/ppp/chap-secretsin muokkaus

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

Tarvittaessa muokkaa tiedostoa /etc/ppp/options.pptp:

Koodilistaus 3.4: /etc/ppp/options.pptp:n muokkaus

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

Sen jälkeen suorita komento pptp (niillä komennoilla, jotka eivät sisältyneet tiedostoon options.pptp) palvelimelle yhdistämiseksi:

Koodilistaus 3.5: Dial-in-palvelimeen yhdistäminen

# pptp <palvelimen ip>

Seuraavaksi jatka Kovalevyjä valmistellen.

3.d. Verkkoasetusten käsisäätö

Sopivien moduulien lataaminen

Käynnistyessään asennus-CD yrittää tunnistaa kaiken laitteistosi ja ladata sopivat ydinmoduulit (ajurit) niitä varten. Valtaosassa tapauksia se onnistunee hyvin, mutta toisinaan se saattaa jättää lataamatta tarvittuja ydinmoduuleja.

Net-setupin tai adsl-setupin epäonnistuminen johtui todennäköisesti siitä, ettei verkkokorttiasi löydetty. Näin voi käydä jollei sopivaa ydinmoduulia ole ladattu.

Nähdäksesi mitä verkkokortin ajureita ydinmoduuleissa on, käytä ls:ää:

Koodilistaus 4.1: Moduulien etsiminen

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

Jos näet sopivan ajurin verkkokortillesi, käytä modprobea sen lataamiseen:

Koodilistaus 4.2: Ydinmoduulin lataaminen modprobella

(Esimerkkinä käytämme pcnet32-moduulia)
# modprobe pcnet32

Tarkastaaksesi onko verkkokortti nyt toiminnassa, käytä ifconfigia. Toimiva verkkokortti näkyy tulosteessa jokseenkin tällaisena:

Koodilistaus 4.3: Onnistunut verkkokortin saatavuuden testaus

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

Jos törmäät seuraavaan virheilmoitukseen, verkkokorttia ei löydetty:

Koodilistaus 4.4: Epäonnistunut verkkokortin saatavuuden testaus

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

Jos järjestelmässäsi on useampia verkkokortteja, ne nimetään eth0:ksi, eth1:ksi ja niin edelleen. Varmista tällöin että käsittelet sitä verkkokorttia jota on tarkoituskin; dokumentoinnin esimerkeissä käytämme kuitenkin säännöllisesti nimeä eth0.

Jos verkkokortti on nyt onnistuneesti löydetty, voit koettaa uudelleen net-setupia tai adsl-setupia (jonka pitäisi nyt toimia). Tehokäyttäjille selvitämme kuitenkin verkkokortin käsin asentamisenloppuun asti.

Etene johonkin seuraavista osioista asentaaksesi verkkosi:

DHCP:n käyttö

DHCP:llä (Dynamic Host Configuration Protocol) pystyt automaattisesti selvittämään verkkosi asetustiedot (IP-osoitteen, verkon peitteen, broadcast-osoitteen, gatewayn, nimipalvelimet jne.). Tämä toimii vain, jos lähiverkossasi on DHCP-palvelin (tai palveluntarjoajallasi on DHCP-palvelu). dhcpcd-komennolla palautat tämän tiedon automaattisesti:

Koodilistaus 4.5: dhcpcd:n käyttö

# dhcpcd eth0
Jotkin verkkojen ylläpitäjät vaativat
DHCP-palvelimen tarjoaman palvelin- ja verkonimen käyttöä.
Tässä tapauksessa komento on:
# dhcpcd -HD eth0

Jos verkko nyt toimii (koeta pingittää jotain Internet-palvelinta, kuten Googlea), niin voit jatkaa asennusta kappaleesta Kovalevyjen valmistelu.

Langattoman verkon asetus

Huomaa: Iwconfig-komentoa löytyy vain x86-, amd64- ja ppc-asennus-CD:iltä. Muissa tapauksissa voit kuitenkin saada laajennukset toimimaan linux-wlan-ng-projektin ohjeilla.

Langattoman (802.11) verkkokortin käyttäjän saattaa olla tarpeellista tarkistaa langattoman asetukset ennen jatkamista. Komennolla iwconfig saat näkyviin nykyiset asetuksesi. Lopputulos voi näyttää vaikka tältä:

Koodilistaus 4.6: Langattoman asetuksien näyttäminen

# 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

Huomaa: Joidenkin langattomien verkkokorttien laitenimi saattaa olla vaikkapa wlan0 tai ra0, eikä suinkaan eth0. Komento iwconfig paljastaa oikean laitenimen.

Useimpien käyttäjien tarvinnee tarkastella vain kahta asetusta, ESSID:tä (eli langattoman verkon nimeä) tai WEP-avainta. Jos ESSID ja Access Point -osoite ovat jo oikein etkä käytä WEP:iä, on langattomasi jo toimintakunnossa. ESSID:n muuttaminen tai WEP-avaimen lisääminen hoituu seuraavilla komennoilla:

Koodilistaus 4.7: ESSID:n muuttaminen ja WEP-avaimen lisäys

(Näin asetat ESSID:n GentooNoodiksi)
# iwconfig eth0 essid GentooNoodi

(Näin asetat WEP-avaimen)
# iwconfig eth0 key 1234123412341234abcd

(Näin asetat ASCII-avaimen, s:-etuliite on pakollinen)
# iwconfig eth0 key s:jokin-salasana

Komennolla iwconfig voi varmistaa langattomien asetusten toiminnallisuuden. Kun olet saanut langattoman yhteyden toimimaan, voit seurata seuraavan kappaleen (Verkkoterminologian ymmärtäminen) ohjeita saadaksesi sen käyttökuntoon tai käyttää komentoa net-setup kuten aiempana kuvattiin.

Verkkoterminologian ymmärtäminen

Huomaa: Jos tunnet IP-osoitteen, broadcastin, verkon peitteen ja nimipalvelimet, voit ohittaa tämän osion ja jatkaa ifconfigilla ja routella.

Kaiken edellä mainitun epäonnistuttua ei ole muuta mahdollisuutta kuin asettaa verkko käsin, mutta pelko pois! Se ei ole ollenkaan vaikeaa. Aiomme tosin selvittää perustietoutta verkoista, mikä auttaa asetusten tekemisessä. Luettuasi tämän toivottavasti tiedät mikä on gateway, mitä verkon peitteellä tehdään, miksi broadcast-osoite on olemassa ja mihin nimipalvelimia käytetään.

Verkkopalvelimet tunnistetaan IP-osoitteiden (Internet Protocol) perusteella. Tällaisen esitystapa on yleensä neljä lukua väliltä 0 - 255. Käytännössä osoite kuitenkin koostuu vain 32 bitistä (nollista ja ykkösistä). Tässä eräs esimerkki:

Koodilistaus 4.8: IP-osoitteen esimerkki

IP-osoite (desimaaleina):   192.168.0.2
IP-osoite (bitteinä):       11000000 10101000 00000000 00000010
                            -------- -------- -------- --------
                                 192      168       0        2

Kaikissa tavoitettavissa verkoissa jokaisen laitteen IP-osoite on ainutlaatuinen (ts. jokaiseen koneeseen, johon voi saada Internetissä yhteyden liittyy ainutlaatuinen IP-osoite). Paikallisverkon koneiden ja ulkoverkon koneiden erottamiseksi IP-osoitteessa on kaksi osaa: verkon osa ja isännän osa.

Erotuksen merkinnässä käytetään verkon peitettä: joukko ykkösiä, jota seuraa joukko nollia. Se osa osoitteesta, jonka voi yhdistää ykkösiin kuuluu verkko-osaan. Toinen osa on isännän. Kuten tavallista, verkon peitteen voi esittää IP-osoitteena.

Koodilistaus 4.9: Esimerkki verkon ja laitteen erottelusta

IP-osoite:         192      168      0         2
                 11000000 10101000 00000000 00000010
Verkon peite:    11111111 11111111 11111111 00000000
                   255      255     255        0
                 +--------------------------+--------+
                         Verkko              Isäntä

Eli tässä tapauksessa 192.168.0.14 olisi vielä samassa verkossa, mutta 192.168.1.2 ei olisi.

broadcast on IP-osoite, jossa verkko-osa on sama kuin isännällä, mutta laiteosa onkin pelkkiä ykkösiä. Verkon jokainen laite tarkkailee tätä osoitetta, ja se on tosiaan tarkoitettu tiedon kuuluttamiseen.

Koodilistaus 4.10: Broadcast-osoite

IP-osoite:     192      168      0         2
            11000000 10101000 00000000 00000010
Broadcast:  11000000 10101000 00000000 11111111
               192      168      0        255
           +--------------------------+--------+
                     Verkko             Isäntä

Pystyäksesi surfaamaan verkossa, sinun täytyy tietää, mikä laite jakaa Internet-yhteyksiä. Tätä laitetta kutsutaan gatewayksi. Koska gateway on tavallinen isäntä, on sillä myös IP-osoite, esimerkiksi 192.168.0.1.

Aiempana huomasimme, että jokaisella laitteella on IP-osoitteensa. Käyttääksesi nimiä (IP-osoitteiden asemesta) on paikannettava palvelu, joka osaa muuntaa nimet (tyyppiä dev.gentoo.org) IP-osoitteiksi (kuten 64.5.62.82). Tällaista toimintoa kutsutaan nimipalveluksi. Nimipalvelimien osoitteet Täytyy kirjoittaa /etc/resolv.conf-tiedostoon.

Joskus gatewayän sisältyy myös nimipalvelimen toiminnallisuus, muissa tapauksissa sinun on käytettävä palveluntarjoajasi antamia nimipalvelimia.

Siis, seuraavat asiat pitää olla tiedossa ennen jatkamista:

Verkkokäsite Esimerkki
Ip-osoitteesi 192.168.0.2
Verkon peite 255.255.255.0
Broadcast 192.168.0.255
Gateway 192.168.0.1
Nimipalvelimia 195.130.130.5, 195.130.130.133

Ifconfigin ja routen käyttö

Verkon asetusten tekemisessä on kolme kohtaa. Ensin täytyy asettaa oma IP-osoite komennolla ifconfig. Sitten käskyllä route määritetään gateway. Työ viimeistellään asettamalla nimipalvelimien IP-osoitteet tiedostoon /etc/resolv.conf.

IP-osoitteen asennuksessa tarvitaan itse osoitteen lisäksi myös broadcast-osoitetta ja verkon peitetettä. Korvaa seuraavissa komennoissa ${IP_ADDR} IP-osoitteellasi, ${BROADCAST} broadcast-osoitteella ja ${NETMASK} verkon peitteellä:

Koodilistaus 4.11: ifconfigin käyttö

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

Reitityksen asettamisessa käytetään route-komentoa. ${GATEWAY} korvataan gatewayn IP-osoitteella:

Koodilistaus 4.12: routen käyttö

# route add default gw ${GATEWAY}

Sitten avaat tiedoston /etc/resolv.conf suosikkieditorillasi (esimerkissä käytämme nanoa):

Koodilistaus 4.13: /etc/resolv.confin luonti

# nano -w /etc/resolv.conf

Syötä nyt nimipalvelimia tiedostoon seuraavan mallin mukaisesti. Muista tietenkin korvata ${NAMESERVER1} ja ${NAMESERVER2} sopivilla nimipalvelinten osoitteilla:

Koodilistaus 4.14: /etc/resolv.conf malli

nameserver ${NAMESERVER1}
nameserver ${NAMESERVER2}

Siinäpä se nyt sitten olisi. Nyt voit testata verkkoa pingaamalla jotain Internet-palvelinta (kuten Googlea). Jos tämä toimii, onneksi olkoon! Olet nyt valmis asentamaan Gentoon. Jatka matkaasi Kovalevyjen valmistamiseen.

4. Kovalevyjen valmistelu

4.a. Johdatus lohkolaitetiedostoihin

Lohkolaitetiedostot

Tarkastelemme nyt Gentoo Linuxin kovalevynkäyttöä ja Linuxin tiedostojärjestelmien, osioiden ja lohkolaitetiedostojen käsittelyä yleensäkin. Sitten kun olet sinut kovalevyjen ja tiedostojärjestelmien kanssa, luomme osiot ja tiedostojärjestelmät Gentoo Linux -järjestelmän asennusta varten.

Aluksi tarkatelemme lohkolaitetiedostoja. Tunnetuin lohkolaitetiedosto lienee Linux-järjestelmien ensimmäistä IDE-levyä vastaava /dev/hda. Jos järjestelmässäsi on SATA- tai SCSI-asemia, ensimmäistä niistä vastaa tiedosto /dev/sda.

Lohkolaitetiedostot tarjoavat abstraktin käsittelyrajapinnan levyihin. Käyttäjän sovellukset käyttävät näitä tiedostoja kommunikoidakseen levylaitteiden kanssa riippumatta siitä, ovatko ne IDE-, SCSI- vai joitain aivan muita laitteita. Ohjelmat voivat suoraan käyttää levyjä kuin ne olisivat vain jokin jatkuva joukko 512-tavuisia satunnaissaantimuistiosasia.

Osiot

Vaikka voisitkin asentaa Linuxisi kokonaan levylle sellaisenaan, näin ei yleensä kannata käytännössä tehdä. Sen sijaan levylaitteet osioidaan pienempiin, helpommin hallittaviin osiin, joita x86-järjestelmissä kutsutaan osioiksi.

Osioita on kolmea tyyppiä: ensiöitä, jatkettuja ja loogisia.

Ensiöosion tiedot ovat MBR:ssä (master boot record). Koska MBR on hyvin pienikokoinen (512-tavuinen), vain neljä ensiöosiota voidaan määritellä (esimerkiksi /dev/hda1:stä /dev/hda4:ään).

Jatkettu osio on erikoistunut versio ensiöosiosta (mikä tarkoittaa siis, että jatketun osion myös tulee olla yksi neljästä ensiöosiosta), joka voi sisältää lisää osioita. Alunperin jatkettua osiota ei ollut olemassakaan, mutta jossakin vaiheessa neljä osiota kävi vähäksi, ja tällä ratkaisulla säilytettiin takaisinpäin yhteensopivuus vanhan osiomallin kanssa.

Loogisiksi sanotaan osioita jatketun osion sisällä. Niiden määritelmiä ei kirjoiteta MBR:ään vaan itse jatkettuun osioon.

Kehittyneempi tallennusmalli

X86 asennus-CD:illä on tuki EVMS:lle ja LVM2:lle. EVMS ja LVM2 ovat joustavampia tapoja osioinnin järjestämiseen. Asennusohjeissa keskitymme ”perinteisiin” osioihin, mutta kannattanee huomata että EVMS:ä ja LVM2:akin voi toki käyttää.

4.b. Osioinnin suunnittelu

Tyypillinen osiointi

Jos et halua kehitellä osiointiasi itse, voit käyttää tässä oppaassa esitettyä mallia:

Osio Tiedostojärjestelmä Koko Kuvaus
/dev/hda1 ext2 32M Käynnistysosio
/dev/hda2 (swap) 512M Välimuistiosio
/dev/hda3 ext3 Loput jäljellä olevasta tilasta Juuriosio

Jos osioiden tarkempi koko tai määrä kiinnostaa, lue tätä kappaletta eteenpäin. Muussa tapauksessa voit jatkaa osiointiasi kappaleessa fdiskin käyttö levyn osiointiin.

Miten paljon ja miten suuria?

Osioiden määrä riippuu paljonkin käyttöympäristöstä. Jos kyseessä on monen käyttäjän järjestelmä, kannattaa /home-hakemisto jättää erilliselle osiolle varmuuskopioinnin helpottamiseksi ja tietoturvan parantamiseksi. Jos konetta käytetään postipalvelimena, hakemiston /var kannattaa olla erillisellä osiolla koska se pitää sisällään kaikkia sähköposteja. Oikein valitulla tiedostojärjestelmällä voi myös parantaa suorituskykyä. Pelipalvelimet hyötyvät erillisestä osiosta /opt-hakemistolle, koska valtaosa peleistä asentuu sinne. Hyödyt ovat pitkälti samat kuin /home/-hakemiston erottelussa. /usr kannattaa pitää suurena: se sisältää valtaosan asennetuista sovelluksista ja koko portagepuun. Portagepuu itsessään on jo vähintään noin 500 megaa.

Kuten näet, ratkaisu riippuu täysin tavoitteista. Erillisillä osioilla on seuraavat hyötypuolet:

  • voidaan valita kaikkein tehokkain tiedostojärjestelmä osioille
  • järjestelmästä ei lopu vapaa tila, jos jokin virheellinen työkalu ryhtyy täyttämään jatkuvasti yhtä osiota
  • tarvittaessa tiedostojärjestelmätarkistuksia pystytään nopeuttamaan rinnakkaistamalla niiden suoritus (tämä vaikuttaa lähinnä usean levyn pikemmin kuin usean osion järjestelmiin)
  • tietoturvan parantaminen onnistuu kiinnittämällä jotkin osiot kirjoitussuojattuina, nosuid-asetuksella (setuid-bitit ohitetaan), noexec-asetuksella (suoritusbitit ohitetaan) jne.

Yksi suuri ongelma moniosioisessa järjestelmässä kuitenkin on: jollei asetusten kanssa ole tarkkana, voi lopputuloksena olla järjestelmä, jossa eräällä osiolla on kohtuuttomasti käyttämätöntä tilaa ja muilla ei yhtään. SCSI- ja SATA-laitteilla on myös 15 osion yläraja.

Esimerkkinä käytämme 20-gigaista kovalevyä, joka osioidaan kannettavaa varten (kone sisältää webbipalvelimen, postipalvelimen, Gnomen, ...):

Koodilistaus 2.1: Tiedostojärjestelmäesimerkki


Tied.järj.    Tyyppi  Koko  Käyt Vapaa Käy% Liitospiste
/dev/hda5     ext3    509M  132M  351M  28% /
/dev/hda2     ext3    5.0G  3.0G  1.8G  63% /home
/dev/hda7     ext3    7.9G  6.2G  1.3G  83% /usr
/dev/hda8     ext3   1011M  483M  477M  51% /opt
/dev/hda9     ext3    2.0G  607M  1.3G  32% /var
/dev/hda1     ext2     51M   17M   31M  36% /boot
/dev/hda6     swap    516M   12M  504M   2% <ei liitetty>
(Osioimaton tila tulevaisuutta varten 2 gigaa)

Huomaa: Dokumentissa käytetään suomennettuja versioita, jos niitä voi olla saatavilla, suomennokset saa käyttöönsä asettamalla ympäristömuuttujan LC_ALL arvoksi fi_FI; tämän voi myös tehdä komentokohtaisesti kirjoittamalla komennon alkuun LC_ALL="fi_FI", tällöin suomenkielisyysasetus vaikuttaa vain komennon suorituksen ajan.

/usr näyttäisi olevan aika täynnä, mutta asennuksen jälkeen tilavaatimus ei yleensä kasva huomattavasti. Joku voi huomata että /var/ syö liian paljon tilaa, mutta Gentoopa käyttääkin hakemistoa /var/tmp/portage kaikissa käännöksissään, joten siellä pitää olla aina vähintään gigatavu vapaana tai vähintään kolme gigatavua jos aiot kääntää vaikkapa OpenOffice.orgin. Jos haluat pitää /var-osion koon aisoissa, on myös mahdollista muuttaa Portagen käännöshakemistoa vain tiettyjen käännösten ajaksi /etc/make.confin asetuksella PORTAGE_TMPDIR.

4.c. fdiskin käyttö kovalevyn osiointiin

Seuraavassa selvitetään esimerkkiosiointimme tekeminen. Kyseessä on siis tämä ratkaisu:

Osio Kuvaus
/dev/hda1 Käynnistysosio
/dev/hda2 Välimuistiosio
/dev/hda3 Juuriosio

Voit käyttää sen tilalla toki mitä osiointia aiotkin.

Nykyisen osioinnin tarkastelu

Fdisk on suosittu ja tehokas osiointityökalu. Käynnistä se levyltäsi fdisk-komennolla (esimerkissä osioimme laitetta /dev/hda):

Koodilistaus 3.1: Fdiskin käynnistäminen

# fdisk /dev/hda

Fdiskin käynnistyttyä maailman pitäisi näyttää tältä:

Koodilistaus 3.2: Fdiskin komentorivi

Komento (m antaa ohjeen):

Komennolla p saat näkyviin levyn nykyisen osioinnin:

Koodilistaus 3.3: esimerkki osioinnista

Komento (m antaa ohjeen): p

Levy /dev/hda: 240 päätä, 63 sektoria/ura, 2184 sylinteriä
Yksiköt = 15120 * 512 = 8225280 -tavuiset sylinterit

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

Komento (m antaa ohjeen):

Mallilevy on osioitu seitsemään Linux-tiedostojärjestelmään (jotka edelläolevassa listassa näkyvät ”Linux”-kohtina) ja yhteen sivutusosioon (listauksessa ”Linux-sivutus”).

Osioinnin poistaminen

Aloitamme poistamalla kaikki levyllä olevat osioinnit. d-komennolla poistetaan osioita. Esimerkiksi poistamme osion /dev/hda1:

Koodilistaus 3.4: Osion poisto

Komento (m antaa ohjeen): d
Osionumero (1-9): 1

Osio merkitään poistettavaksi. Se ei enää näy listauksissa, mutta sitä ei poisteta ennen kuin tallennat muutokset. Jos olet tehnyt virheen voit keskeyttää tallentamatta muutoksia komentamalla q ja enter.

Osioiden poisto hoituu toistamalla sarjaa p osioiden valintaan ja d osion poistamiseen kunnes osiointitaulukko on täysin tyhjä.

Koodilistaus 3.5: Tyhjä osiotaulu

Levy /dev/hda: 30.0 GB, 30005821440 tavua
240 päätä, 63 sektoria/ura, 3876 sylinteriä
Yksiköt = 15120 * 512 = 7741440 -tavuiset sylinterit

Laite Boot    Start       End    Blocks   Id  System

Komento (m antaa ohjeen):

Nyt kun osiointitaulukko näyttää tyhjältä, voimme luoda uudet osiot. Käytämme esimerkissä samaa osiointimallia kuin ennenkin. Ohjeita ei tietenkään kannata seurata kirjaimellisesti vaan mukauttaa ne omaan osiointimalliisi.

Käynnistysosion luonti

Aloitamme luomalla pienikokoisen käynnistysosion. Komento n luo uuden osion. p valitsee ensiöosion ja 1 määritelee sen ensimmäiseksi ensiöosioksi. Vastaa kysymykseen ensimmäisestä sylinteristä painamalla enteriä. Määrittele viimeinen sylinteri kirjoittamalla +32M 32 megatavun osiota varten:

Koodilistaus 3.6: Käynnistysosion luonti

Komento (m antaa ohjeen): n
Komento  merkitys
   l    looginen (5 tai yli)
   p    ensiöosio (1-4)
p
Osionumero (1-4): 1
Ensimmäinen sylinteri (1-3876, oletusarvo 1): (Paina enteriä)
Käytetään oletusarvoa 1
Viimeinen sylinteri tai +koko tai +kokoM tai +kokoK (1-3876, oletus 3876): +32M

Kirjoittamalla p näet taas osiokokoonpanon:

Koodilistaus 3.7: Luotu käynnistysosio

Komento (m antaa ohjeen): p

Levy /dev/hda: 30.0 GB, 30005821440 tavua
240 päätä, 63 sektoria/ura, 3876 sylinteriä
Yksiköt = 15120 * 512 = 7741440 -tavuiset sylinterit

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

Tämän osion pitää olla käynnistyvä. Käynnistymismerkki säädetään komennolla a. Katsomalla osiotaulukkoa taas p-komennolla huomataan, että *-merkki on ilmestynyt Boot-sarakkeeseen.

Sivutusosion luonti

Seuraavaksi luodaan sivutusosio. Komentamalla n luodaan uusi osio ja komento p kertoo kyseessä olevan ensiöosion. Kirjoittamalla 2 valitaan toinen ensiöosio, joka on tässä tapauksessa /dev/hda2. Kysymykseen ensimmäisestä sylinteristä vastataan painamalla enteriä. Viimeiseksi sylinteriksi valitaan komennolla +512M 512-megatavuista osiota vastaava koko. Tämän jälkeen osiotyyppi vaihdetaan kirjoittamalla t ja 2 äsken luotua osiota varten. Sivutus-osion tyypiksi valitaan 82, Linux-sivutus. Nyt luodun järjestelmän pitäisi näyttää komennon p tulosteessa tältä:

Koodilistaus 3.8: Osiolistaus sivutusosion luonnin jälkeen

Komento (m antaa ohjeen): p

Levy /dev/hda: 30.0 GB, 30005821440 tavua
240 päätä, 63 sektoria/ura, 3876 sylinteriä
Yksiköt = 15120 * 512 = 7741440 -tavuiset sylinterit

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

Juuriosion luonti

Lopuksi luodaan juuriosio. Osion luonti suoritetaan komennolla n ja ensiötyyppinen osio valitaan komennolla p. Kirjoittamalla 3 luodaan kolmas ensiöosio /dev/hda3. Kysymykseen ensimmäisestä sylinteristä vastataan painamalla enteriä. Nyt viimeinenkin sylinteri valitaan painamalla enteriä, ja näin saadaan käyttöön kaikki jäljellä olevasta tilasta. Näiden jälkeen komennolla p tulostetun osiotaulukon pitäisi näyttää tämänkaltaiselta:

Koodilistaus 3.9: Osiolistaus juuriosion kanssa

Komento (m antaa ohjeen): p

Levy /dev/hda: 30.0 GB, 30005821440 tavua
240 päätä, 63 sektoria/ura, 3876 sylinteriä
Yksiköt = 15120 * 512 = 7741440 -tavuiset sylinterit

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

Osiotaulukon tallentaminen

Komennolla w poistutaan fdisk-ohjelmasta ja tallennettaan tehdyt muutokset osiotaulukkoon.

Koodilistaus 3.10: Tallenna ja poistu fdiskistä

Komento (m antaa ohjeen): w

Nyt kun osiot on luotu voimme jatkaa tiedostojärjestelmien pariin.

4.d. Tiedostojärjestelmien luonti

Johdanto

Valmiille osioille voidaankin sitten sijoittaa tiedostojärjestelmät. Jos tiedostojärjestelmien valinta ei kiinnosta, voit käyttää käsikirjan oletusta ja jatkaa Tiedostojärjestelmien asettamiseen osioille. Muutoin jatka lukemista saatavilla olevista tiedostojärjestelmistä.

Tiedostojärjestelmät?

Linuxin ytimessä on tuki useille eri tiedostojärjestelmille. Tarkastelemme tässä ext2-, ext3-, ReiserFS-, XFS ja JFS-järjestelmiä.

ext2 on usein käytetyin Linux-tiedostojärjestelmä, mutta se ei tue metadatan kirjanpitoa, mistä seuraa että tiedostojärjestelmän käynnistyksenaikaiset rutiinitarkistukset ovat kovin aikaavieviä. Tiedostojärjestelmien uusi sukupolvi sisältää valikoiman kirjanpitotoiminnollisuuksia sisältäviä järjestelmiä, joiden tarkistaminen on hyvinkin vauhdikasta ja niitä suositaankin usein kirjaapitämättömien ylitse. Kirjanpito-ominaisuuksin varustetut tiedostojärjestelmät palautuvat käynnistyksessä epäkonsistentista tilasta ilman pidempiä taukoja.

ext3 on ext2:n journaloiva vastine. Käynnistystä nopeuttavan metadatan kirjanpidon lisäksi siinä on kehittyneempiä kirjanpitotoiminteita, kuten kaiken datan ja järjestetyn datan kirjanpito. Ext3 on laadukas ja luotettava tiedostojärjestelmä. Siinä on myös tuki b-puuhajauteindeksoinnille joka parantaa suorituskykyä lähes poikkeuksetta. Hakemistoindeksoinnin saa päälle valitsimella -O dir_index komennolle mke2fs. Lyhyesti sanottuna ext3 on mahtava tiedostojärjestelmä.

ReiserFS-tiedostojärjestelmä perustuu B*-puihin ja on hyvin suorituskykyinen. Pienten tiedostojen kanssa se päihittää ext2- ja ext3-järjestelmät jopa 10-15-kertasesti. ReiserFS on myös kiitollisesti skaalautuva ja sisältää metadatan kirjanpidon. Ytimen versiosta 2.4.18 lähtien ReiserFS on ollut vakaa ja käytännöllinen sekä yleisiin järjestelmiin että erityistapauksiin kuten suuriin tiedostojärjestelmiin, erittäin pieniä tai suuria tiedostoja sisältäviin järjestelmiin tai kymmenittäintuhansittain tiedostoja sisältäviin hakemistoihin.

XFS on virhesietoinen ja skaalautumaan optimoitu tiedostojärjestelmä. Tätä ratkaisua suositellaan lähinnä korkealuokkaisilla SCSI tai kuitukanavamassamuisteilla ja UPS:illä varustetuille järjestelmille. Koska XFS säilyttää tiedonsiirtodataa RAM-muistissa, huonosti suunnitellut ohjelmat (ne, jotka eivät tee varotoimenpiteitä ennen levyllekirjoittamista, eli aika huomattava määrä) voivat hävittää huomattavan määrän dataa jos järjestelmä sattuukin kaatumaan odottamattomasti.

JFS on IBM:n korkealaatuinen kirjanpitotoiminnot sisältävä tiedostojärjestelmä. Se on hiljattain päässyt tuotantokäytettävään vaiheeseen eikä sen yleisestä vakaudesta vielä ole tarpeeksi hyviä tai huonoja havaintoja.

Tiedostojärjestelmän asettaminen osiolle

Jokaisen tiedostojärjestelmän luomiseksi osioille on olemassa omat työkalunsa:

Tiedostojärjestelmä Luontikomento
ext2 mke2fs
ext3 mke2fs -j
reiserfs mkreiserfs
xfs mkfs.xfs
jfs mkfs.jfs

Jos esimerkiksi tehdään käynnistysosiosta (esimerkkimme /dev/hda1) ext2 ja juuriosiosta (esimerkkimme /dev/hda3) ext3, käytetään komentoja seuraavasti:

Koodilistaus 4.1: Tiedostojärjestelmän asettaminen osiolle

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

Luo nyt tiedostojärjestelmät uusille osioillesi (tai loogisille asemillesi).

Sivutusosion aktivointi

Komennolla mkswap alustetaan sivutusosiot:

Koodilistaus 4.2: Sivutusmerkinnän luonti

# mkswap /dev/hda2

Aktivointi tapahtuu komennolla swapon:

Koodilistaus 4.3: Sivutusosion aktivointi

# swapon /dev/hda2

Luo ja aktivoi omat sivutusosiosi nyt.

4.e. Asemien kiinnittäminen

Nyt kun osiot on alustettu ja niillä on tiedostojärjestelmä, ne voidaan kiinnittää komennolla mount. Muista liittää kaikki luomasi osiot vastaaviin hakemistoihin. Esimerkissä liitämme juuri- ja käynnistysosion:

Varoitus: e2fsprogseissa olevan bugin takia mountille pitää antaa erikseen parametri -t ext3 jos käytössä on ext3-tiedostojärjestelmä.

Koodilistaus 5.1: Osioiden liittäminen

# mount /dev/hda3 /mnt/gentoo
(Ext3-osiolle:)
# mount -t ext3 /dev/hda3 /mnt/gentoo

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

Huomaa: Jos /tmp on erillisellä osiolla, muista muuttaa sen käyttöoikeudet liittämisen jälkeen: chmod 1777 /mnt/gentoo/tmp. Sama pätee hakemistolle /var/tmp.

Lisäksi tarvitaan proc-tiedostojärjestelmä (joka on näennäisrajapinta ytimelle) liittetynä hakemistoon /proc. Mutta ensin tarvitsee siirtää tiedostot hakemistoihin.

Seuraavaksi jatketaan asentamalla Gentoon asennustiedostot.

5. Gentoon asennustietojen asentaminen

5.a. Stage-tarpaketin asennus

Päiväyksen asettaminen

Ennen kuin jatketaan koneen päiväys pitää tarkistaa. Väärää näyttävä kello voi johtaa outoihin ongelmiin!

Ajan tarkastamiseen käytetään komentoa date:

Koodilistaus 1.1: Päiväyksen tarkastaminen

# date
ma marraskuun 11. 03:43:18 EET 2004

Jos aika on väärä, sen voi päivittää syntaksia date MMDDhhmmYYYY vastaavalla komennolla (missä M on kuukaudet, D on päivät, h on tunnit, m on minuutit ja Y on vuosi). Jos vaikkapa asetettaisiin päiväykseksi 24. marraskuuta 2004, kello 16:21:

Koodilistaus 1.2: Päiväyksen asettaminen

# date 112416212004

Stage3:n hakeminen

Jos verkko on asetettu kuntoon, voidaan seurata ohjeesta vaihtoehtoa: hae stage3 verkosta. Muutoin jatketaan oletuksella: asennus-CD:n stage3:n käyttäminen.

5.b. Oletus: asennus-CD:n Stagen käyttö

Stage-paketin purkaminen

Staget sijaitsevat CD:llä hakemistossa /mnt/cdrom/stages. Komento ls listaa olemassaolevat paketit:

Koodilistaus 2.1: Stagejen listaaminen

# ls /mnt/cdrom/stages

Jos tämä aiheuttaa virheilmoituksen niin CD kannattaa liittää ensin:

Koodilistaus 2.2: CD:n liittäminen

# ls /mnt/cdrom/stages
ls: /mnt/cdrom/stages: Tiedostoa tai hakemistoa ei ole
# mount /dev/cdroms/cdrom0 /mnt/cdrom
# ls /mnt/cdrom/stages

Siirry nyt Gentoon liitoshakemistoon (todennäköisesti /mnt/gentoo):

Koodilistaus 2.3: Siirtyminen hakemistoon /mnt/gentoo

# cd /mnt/gentoo

Seuraavaksi puretaan valittu stage-tarpaketti. Työhön käytetään GNUn tar-työkalua. Muista käyttää samoja asetuksia (xvjpf)! X purkaa (engl. extract) tiedostoja arkistosta, v listaa monisanaisesti (engl. verbose) käsitellyt tiedostot (no, ehkei tämä ole täysin välttämätön), j suodattaa paketin bzip2:lla, p säilyttää (engl. preserve) käyttöoikeudet ja f lukee syötteen tiedostosta (engl. file) vakiosyötevirran asemesta. Kuitenkin v on valinnainen, eikä edes toimi kaikkialla. Esimerkissä puretaan stage-tarpaketti stage3-<arkkitehtuuri>-2005.1.tar.bz2. Muista korvata nimi omalla paketillasi.

Koodilistaus 2.4: stage-tarpaketin purku

# tar xvjpf /mnt/cdrom/stages/stage3-<arkkitehtuuri>-2005.1.tar.bz2

Nyt kun stage on asennettu voidaan jatkaa asentamalla Portage.

5.c. Vaihtoehto: Internetistä haetun Stagen asentaminen

Stagen lataaminen verkosta

Siirry Gentoon liitospisteeseen tiedostojärjestelmässäsi (todennäköisesti hakemisto /mnt/gentoo):

Koodilistaus 3.1: Gentoon osion tiedostojärjestelmään siirtyminen

# cd /mnt/gentoo

Asennusvälineestä riippuen voit käyttää muutamaa eri työkalua stagen lataamiseen. Jos links2 on mukana, voit surfata sillä Gentoon peilipalvelinlistaukseen. Valitse sieltä itseäsi lähin peilipalvelin (ainoa Suomessa kirjoitushetkellä listatuista on trumpetti.atm.tut.fi, muitakin löytynee joiltain korkeakouluilta).

Jos links2 ei ole käytettävissä, sen asemesta voi käyttää vaikkapa lynxiä. Jos käytössä on välipalvelimia, pitää ne kertoa muuttujilla http_proxy ja ftp_proxy:

Koodilistaus 3.2: Välipalvelinten kertominen lynxille

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

Oppaassa oletetaan tästä eteenpäin, että käytössä on links2.

Hakemisto josta paketti löytyy alkaa releases/-osalla, jonka jälkeen tulee Gentoon versio (2005.1) ja käytetty alusta (kuten x86/) ja lopulta stages/-hakemisto. Näkyvissä pitäisi olla kaikki alustan stage-tiedostot. Painamalla D ladataan tiedostoa ja selain sulkeutuu näppäimestä Q.

Koodilistaus 3.3: Peilipalvelinlistauksen avaaminen links2:lla

# links2 http://www.gentoo.org/main/en/mirrors.xml
(Välipalvelimella ja links2:lla)
# links2 -http-proxy proxy.example.com:8080 http://www.gentoo.org/main/en/mirrors.xml

Varmista että käytössä on stage3-paketti — stage1- ja stage2-asennuksia ei enää tueta käsikirjassa.

Ladatun paketin yhtäpitävyyden voi tarkastaa komennolla md5sum, joka vertaa MD5-tarkistussummia peilipalvelimelta löytyviin. Esimerkiksi x86-tarpaketin voi testata seuraavalla tavalla:

Koodilistaus 3.4: esimerkki stage-tarpaketin eheyden tarkastuksesta

# md5sum -c stage3-x86-2005.1-r1.tar.bz2.md5
stage3-x86-2005.1-r1.tar.bz2: OK

Stage-tarpaketin purkaminen

Seuraavaksi ladattu paketti puretaan järjestelmään. Tässä käytetään GNUn tar-komentoa, koska se lienee yksinkertaisin:

Koodilistaus 3.5: Stage-paketin purkaminen

# tar xvjpf stage3-*.tar.bz2

Muista käyttää täsmälleen samoja valitsimia (xvjpf). X purkaa (engl. extract) tiedostoja arkistosta, v listaa monisanaisesti (engl. verbose) käsitellyt tiedostot (no, ehkei tämä ole täysin välttämätön), j suodattaa paketin bzip2:lla, p säilyttää (engl. preserve) käyttöoikeudet ja f lukee syötteen tiedostosta (engl. file) vakiosyötevirran asemesta.

Nyt stage on asennettu ja voit jatkaa asentamalla Portagen.

5.d. Portagen asennus

Portagen purkaminen

Seuraavaksi pitää asentaa Portagen otos, kokoelma tiedostoja, jotka kertovat Portagelle mitä voi asentaa, mitä profiileita käyttää jne.

Otoksen asennus asennus-CD:ltä

Otokset löytyvät hakemistosta /mnt/cdrom/snapshots/:

Koodilistaus 4.1: /mnt/cdrom/snapshots-hakemistolistauksen katselu

# ls /mnt/cdrom/snapshots

Varmista että käytät purkaessasi oikeita tarin valitsimia. Tällä kertaa pitää myös antaa valitsin -C (suuraakkonen C). Seuraavassa esimerkissä käytetään tiedostonimeä portage-<päivä>.tar.bz2, korvaa tämä asennus-CD:n versiolla.

Koodilistaus 4.2: Portagen otoksen purkaminen

# tar xvjf /mnt/cdrom/snapshots/portage-<päivä>.tar.bz2 -C /mnt/gentoo/usr

Kopioi lähdekoodit mukaan

Myös lähdekoodit pitää kopioida Universal asennus-CD:ltä.

Koodilistaus 4.3: Lähdekoodin kopiointi

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

5.e. Käännösasetusten tekeminen

Johdanto

Gentoo-järjestelmän voi optimoida muutamalla Portagen käytökseen vaikuttavalla muuttujalla. Portage huomioi ympäristömuuttujat (joita asetetaan komennolla export), mutta ne ovat väliaikaisia. Pysyvät asetukset tehdään Portagen asetustiedostoon /etc/make.conf, jota muokataan seuraavaksi.

Huomaa: Kommentoitu listaus kaikista mahdollisista muuttujista löytyy tiedostosta /mnt/gentoo/etc/make.conf.example. Gentoon asentamiseksi et tarvitse kuin alta löytyviä muuttujia.

Käytä suosikkimuokkaintasi (oppaassa nano) optimointiasetusten muuttamiseksi.

Koodilistaus 5.1: /etc/make.conf-tiedoston avaus

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

Huomannet, että make.conf.example on järjestetty hyvin yleisellä tavalla: kommentit alkavat merkillä # ja muut rivit määrittävät muuttujia syntaksilla MUUTTUJA="sisältö". Alla muutamia käytetyistä muuttujista

Varoitus: Jos asennat stage3:lta ja GRP-asennuksella, älä muokkaa USE-muuttujaa. USE-asetuksia voidaan vaihtaa asennuksen jälkeen, mutta jos sitä muokataan varhemmassa vaiheessa vuorimaahiset murskaavat järjestelmäsi!

CHOST

CHOST-asetus määrittelee kohdeasennusjärjestelmän. Tämä muuttuja on valmiiksi asetettu oikeaan arvoon. CHOSTia ei saa muuttaa, koska se voi rikkoa asennetun järjestelmän. Jos CHOST on väärä, käytät väärää stage3-pakettia. The CHOST variable declares the target build host for your system. This

CFLAGS ja CXXFLAGS

CFLAGS- ja CXXFLAGS-muuttujat asettavat gcc:n C- ja C++-käännösten optimointiasetuksia vastaavasti. Vaikka ne määritellään tässä yleisesti niin jokainen ohjelma saavuttaa parhaan suorituskyvyn eri asetuksilla.

Tiedostoon make.conf kannattaa määritellä sellaiset optimointiasetukset jotka yleensä takaavat parhaan lopputuloksen. Älä käytä kokeellisia asetuksia täällä; liian tehokkaat optimoinnit saavat ohjelmat epävakaiksi (kaatuilemaan tai käyttäytymään viallisesti).

Tässä ei selvitetä kaikkia optimointiasetuksia, tarkempia tietoja kaikista löytyy GNU Online Manual(s)-sivuilta tai gcc:n infosivuilta (info gcc -komennolla täysimittaisessa toimivassa Linux-järjestelmässä) make.conf.example sisältää paljon esimerkkejä ja tietoa, lue se huolellisesti myös.

Ensimmäinen vastaantuleva asetus on -march=. Se määrittelee käytettävät arkkitehtuurioptimoinnit. Mahdolliset arvot on kuvattu make.conf.example-tiedoston kommenteissa. Esimerkiksi Athlon XP-suorittimelle:

Koodilistaus 5.2: GCC:n march-asetukset

# Niiden AMD64:n omistajien, jotka haluavat natiivin 64-bittisen
ympäristön, asettavat -march=k8
# EM64T:n käyttäjien pitää käyttää valitsinta -march=nocona
-march=athlon-xp

Toinen asetus on -O-valitsin (suuraakkonen O, ei nolla). Se kertoo gcc:lle optimointiluokan. Mahdolliset arvot ovat s (koon optimointiin), 0 (nolla optimointien poistamiseksi), 1, 2 tai 3 lisäoptimointien asettamiseksi (jokainen luokista siis sisältää edeltävän optimoinnit ja jotain lisää). Esimerkiksi luokan 2 optimoinnit asetetaan näin:

Koodilistaus 5.3: GCC:n O-asetus

-O2

Usein käytetään myös valitsinta -pipe (joka määrittelee putket käytettäviksi väliaikaistiedostojen asemesta käännettäessä).

Kannattaa huomata, että toinen suosittu, -fomit-frame-pointer (joka poistaa kehysosoittimen rekisteristä niissä funktioissa, joissa sitä ei tarvita) saattaa hankaloittaa ohjelmien vianetsintää.

CFLAGS- ja CXXFLAGS-valitsimissa kannattaa yhdistellä monia optimointikeinoja, kuten seuraavassa:

Koodilistaus 5.4: CFLAGS- ja CXXFLAGS-määrittelyt

CFLAGS="-march=athlon-xp -pipe -O2"
# AMD64:lle voidaan käyttää asetusta -march=k8
# EM64T:lle käytetään asetusta march=nocona
CXXFLAGS="${CFLAGS}"
# Käytetään samaa asetusta molemmissa muuttujissa

MAKEOPTS

MAKEOPTS määrittelee rinnakkaisten käännösprosessien määrän paketin asennuksessa. Suositeltu määrä on prosessorien lukumäärä lisättynä yhdellä.

Koodilistaus 5.5: MAKEOPTS yhden prosessorin järjestelmässä

MAKEOPTS="-j2"

Paikoillanne, valmiit, hep!

Päivitä ja tallenna tiedosto /mnt/gentoo/etc/make.conf. Nyt voit jatkaa chroottaamalla Gentoo-järjestelmään.

6. Gentoojärjestelmään chroottaminen

6.a. Chroot-ympäristön asettaminen

Valinnainen: Peilipalvelimen valinta

Jos käynnistit Gentoon asennus-CD:ltä, voit päivittää /etc/make.confin asetukset käyttämään nopeita peilipalvelimia Portagen ja lähdekoodien latauksessa komennolla mirrorselect (tämä tietenkin vaatii toimivan verkkoyhteyden):

Varoitus: Mirrorselectissä on ongelma joka saattaa johtaa roskan tulostumiseen GENTOO_MIRRORS-asetusen perään. Avaa /mnt/gentoo/etc/make.conf ja poista turhuudet GENTOO_MIRRORS-riviltä, jos se on tarpeen.

Koodilistaus 1.1: Nopean peilipalvelimen valinta

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

Jos mirrorselect ei toimikaan niin se ei haittaa. Sen käyttäminen on täysin valinnaista, virhetilanteissa oletusarvoilla pärjää kyllä.

DNS-osoitteiden kopiointi

Ennen uuteen ympäristöön menemistä pitää vielä kopioida DNS-palvelinten tiedosto tiedostosta /etc/resolv.conf. Tietoja tarvitaan, että verkkoympäristö toimii vielä uudessakin ympäristössä. /etc/resolv.conf sisältää tiedot käytettävistä nimipalvelimista.

Koodilistaus 1.2: DNS-tietojen kopiointi

(valitsin -L varmistaa, ettei kopio ole symbolinen linkki)
# cp /etc/resolv.conf /mnt/gentoo/etc/resolv.conf

Proc ja dev-tiedostojärjestelmien liittäminen

Jotta asennus voisi saada tietoa nykyisestä ytimestä chrootin sisältäkin, täytyy /proc liittää hakemistoon /mnt/gentoo/proc. Lisäksi pitää bindmountata /dev/:

Koodilistaus 1.3: /proc:n ja /dev:n liittäminen

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

Uuteen ympäristöön siirtyminen

Nyt kun kaikki osiot on alustettu ja perusjärjestelmä on asennettu, voidaan siirtyä chrootaamaan ympäristöä. Tämä tarkoittaa nykyisestä asennusympäristöstä (asennus-CD:ltä tai vastaavasta) siirtymistä uuteen asennusympäristöön (alustetuille osioille).

Chrootaus tehdään kolmessa osassa. Ensin vaihdetaan juurihakemisto chroot-komennolla /-hakemistosta (asennusvälineen) /mnt/gentoo-hakemistoksi (uusilla osioilla). Uusi ympäristö luodaan komennolla env-update, joka luo ympäristömuuttujat. Lopuksi muuttujat asetetaan komennolla source.

Koodilistaus 1.4: Uuden ympäristön chrootaus

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

Olet nyt Gentoo Linux -järjestelmässäsi. Asennusta on toki vielä paljolti jäljellä, kuten jäljellä olevien kappaleiden määräkin vihjaa :-)

Portagen välimuistin luonti

Kun Portage-puu on asennettu, kannattaa rakentaa Portagen välimuisti. Komento emerge --metadata luo välimuistin uudelle puulle.

Koodilistaus 1.5: Portagen välimuistin luonti

# emerge --metadata

6.b. USE-muuttujien asettaminen

Mikä on USE-muuttuja?

USE on yksi Gentoo-ympäristön tärkeimmistä muuttujista. Suureen osaan ohjelmista voidaan kääntää mukaan vaihtoehtoinen tuki tietyille asioille. Esimerkiksi joissakin ohjelmissa voi olla sekä gtk- että qt-tuki. Joihinkin voi saada valinnaisena SSL-tuen. Jotkin kääntyvät jopa framebuffer-tuella (svgalib) ilman X11:ä.

Useimmat jakelut kääntävät paketteihin mukaan tuen kaikelle mahdolliselle, mikä on omiaan lisäämään ohjelmien kokoa ja käynnistysaikaa riippuuvuuksien määrästä puhumattakaan. Gentoolla voit päättää mitkä asetukset käännetään mukaan. Tähän käytämme juuri USE-muuttujia.

USE-muuttujaan määritetään avainsanoja jotka tulkitaan sitten käännösasetuksiksi. Esimerkiksi ssl kääntää SSL-tuen jos ohjelmassa sellainen on ja -X poistaa X-palvelintuen käytöstä (äksän edessä on siis miinus). Asetuksella gnome gtk -kde -qt ohjelmat käännetään Gnome- ja gtk-tuen kanssa, mutta ilman kde- tai qt-tukea. Näin aikaansaataisiin täysin Gnome järjestelmä.

USEn muuttaminen

Varoitus: Älä tee muutoksia USE-muuttujaan jos käytät esikäännettyjä paketteja (GRP:stä). Tässä tapauksessa USEa voi muutella asentamisen jälkeen. Peikot hakkaavat koneesi säleiksi jos ohitat tämän varoituksen!

Oletusarvoiset USE-asetukset ovat profiilin make.defaults-tiedostoissa. make.defaultsit ovat löydettävissä symbolisen linkin /etc/make.profile osoittamassa hakemistossa ja kaikissa sen ylähakemistoissa aina profiilihakemistojen juurihakemistoon saakka. Itsetehdyt asetukset tiedostossa /etc/make.conf lisätään niiden päälle. Lisätty asetus lisätään oletusten listaan ja poistettu (asettamalla miinusmerkki asetuksen eteen) poistetaan listasta (jos se siellä oli alunperinkään). Hakemiston /etc/make.profile asetuksia ei saa muuttaa sillä se korvataan jokaisessa Portagen päivityksessä.

USE-järjestelmän täydempi kuvaus löytyy käsikirjan toisen osan kappaleesta 2: Use-muuttujat. Muuttujien kuvaukset majailevat järjestelmän tiedostossa /usr/portage/profiles/use.desc.

Koodilistaus 2.1: USE-kuvausten katselu

# less /usr/portage/profiles/use.desc
(Nuolinäppäimillä vieritetään ja q:lla lopetetaan)

Esimerkissä on USE-asetukset KDE-järjestelmälle DVD-, ALSA- ja CD:n polttotuella.

Koodilistaus 2.2: /etc/make.confin avaus

# nano -w /etc/make.conf

Koodilistaus 2.3: USE-asetukset

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

7. Ytimen asetusten tekeminen

7.a. Aikavyöhyke

Ensimmäisenä pitää varmistaa, että järjestelmä tietää millä aikavyöhykkeellä se sijaitsee. Aikavyöhykelistausta voi katsella hakemistosta /usr/share/zoneinfo. Sopiva aikavyöhyke kopioidaan tiedostoksi /etc/localtime komennolla cp:

Koodilistaus 1.1: Aikavyöhykkeen asettaminen

# ls /usr/share/zoneinfo
(Esimerkiksi käytetään Suomen vyöhykettä)
# cp /usr/share/zoneinfo/Europe/Helsinki /etc/localtime

7.b. Lähdekoodin asennus

Ytimen valinta

Kaikki distrot rakennetaan Linuxin ytimen(kernelin) ympärille. Ydin on laitteiston ja ohjelmiston välinen rajapinta. Gentoossa on mukana useita ydinvaihtoehtoja, täysimittainen listaus näistä on Gentoo Kernel Guidessa.

X86-järjestelmien keskeisin tuettu ydin on gentoo-sources. Tämä sisältää Linuxin viralliset lähteet, sekä joitain turvallisuus-, stabiilisuus-, yhteensopivuus ja virhekorjauspäivityksiä. Vaihtoehtoisesti voi käyttää tavallisia, muokkaamattomia ytimen lähteitä vanilla-sources-paketista.

Molemmat näistä ytimistä ovat 2.6-versioperhettä, jos tarvitaan 2.4-sarjaa, se pitää hakea Internetistä erikseen, sillä asennus-CD:iltä sitä ei löydy.

Valittu ytimen lähdekoodi asennetaan komennolla emerge. Tässä vaiheessa asennusta komentorivimuuttuja USE="-doc" on tarpeen, jottei X:ää tai muuta turhaa tulisi vielä asennettua ennen aikojaan. Symlink ei ole pakollinen, mutta se tekee automaattisesti symbolisen linkin /usr/src/linux osoittamaan juuri asennettuun versioon Linuxista.

Koodilistaus 2.1: Ytimen lähdekoodin asennus

# USE="-doc symlink" emerge gentoo-sources

Hakemistossa /usr/src pitäisi olla ytimen lähdekoodiin osoittava symbolinen linkki linux:

Koodilistaus 2.2: Ytimen linkin tarkastelu

# ls -l /usr/src/linux
lrwxrwxrwx  1 root root 12. loka 13 11:04 /usr/src/linux ->
linux-2.6.12-gentoo-r10

Nyt voidaan säätää ja asentaa ydin. Komennolla genkernel saadaan aikaan sellainen yleisluontoinen ydin jota asennus-CD:lläkin käytetään. Selitämme ensin kuitenkin ytimen asennuksen käsipelillä.

Jos haluat asentaa ytimen käsin, jatka kohtaan Oletus: Asetusten teko käsin. Jos taas käytät genkerneliä, lue Vaihtoehto: genkernelin käyttö.

7.c. Oletus: Asetusten teko käsin

Johdanto

Ytimen asennusta pidetään usein vaikeimpana asiana mihin Linuxin käyttäjä joutuu. Asia ei kuitenkaan aivan näin ole. Huomannet itsekin muutaman ytimen kääntämisen jälkeen, ettei se edes ollut vaikeaakaan ;)

Yksi asia täytyy kuitenkin muistaa: asennettaessa ydintä käsin täytyy tietää järjestelmän kokoonpano tarkkaan. Suuren osan tiedoista saa selville tarkastelemalla tiedostoa /proc/pci (tähän tarkoitetun komennon lspci:n löytää asentamalla paketin pci-utils komennolla emerge pci-utils). Lspci:n saattaa voida suorittaa myös suoraan chrootin ulkopuolelta asennus-cd:ltä. Myös lsmodin voi ajaa nähdäkseen mitä moduuleita asennus-CD on päättänyt käyttää (se tarjonnee hyvän vihjeen siitä mitä kannattaa valita).

Seuraavaksi siirrytään ytimen lähdekoodin hakemistoon suorittamaan komentoa make menuconfig. Näin saadaan käyttöön ncurses-pohjainen asetusvalikko.

Koodilistaus 3.1: Menuconfigin käynnistys

# cd /usr/src/linux
# make menuconfig

Vastaantulevassa valikossa on useita asetuskategorioita. Ensin tarkistamme asetukset jotka täytyy kääntää päälle (tai muuten Gentoo ei toimi ollenkaan, ainakaan ilman lisäsäätämistä).

Tarvittavien asetusten kääntäminen päälle

Varmista että käytössä on oikea prosessorityyppi ja aliarkkitehtuuri:

Koodilistaus 3.2: Prosessorityypin valinta


Processor type and features --->
    Subarchitecture Type (PC-compatible)  --->
    (Valitse prosessoriasi vastaava)
    (Athlon/Duron/K7) Processor family

Valikosta File Systems valitaan tuki käytettäville tiedostojärjestelmille. Älä tee niistä moduuleja tai Gentoo ei pysty liittämään osioitasi. Valitse myös Virtual memory ja /proc file system:

Koodilistaus 3.3: Tarpeellisten tiedostojärjestelmien valinta

General setup  --->
  [*] Support for hot-pluggable devices
File systems --->
  Pseudo Filesystems --->
    <*> /proc file system support
    <*> Virtual memory file system support (former shm fs)

(Seuraavista valitaan ne mitä järjestelmässä tarvitaan)
  <*> Reiserfs support
  <*> Ext3 journalling file system support
  <*> JFS filesystem support
  <*> Second extended fs support
  <*> XFS filesystem support

Muista lisätä DMA-asetukset asemillesi:

Koodilistaus 3.4: Activating DMA

Device Drivers --->
  ATA/ATAPI/MFM/RLL support --->
    [*] Generic PCI bus-master DMA support
    [*]   Use PCI DMA by default when available

Järjestelmissä, jotka yhdistävät nettiin PPPoE:llä tai modeemilla, tarvitaan seuraavia asetuksia:

Koodilistaus 3.5: PPPoE:lle tarvittavien ajurien valinta

Device Drivers --->
  Networking support --->
    <*> PPP (point-to-point protocol) support
    <*>   PPP support for async serial ports
    <*>   PPP support for sync tty ports

Pakkausasetuksista ei ole haittaa, vaikkei niitä kyllä tarvitakkaan. Myöskään PPP over Ethernet ei ole erityisen tarpeellinen, sitä käyttää vain rp-pppoe asettaessaan ytimen PPPoE-tukea.

Jos sinulla on verkkokortti, muista ottaa sen ajurit mukaan ytimeen.

Jos käytössä on uusi HyperThreadingiä tukeva Intelin prosessori tai useamman prosessorin järjestelmä Symmetric multi-processing support on tärkeä asetus:

Koodilistaus 3.6: SMP:n aktivointi

Processor type and features  --->
  <*> Symmetric multi-processing support

Jos käytät USB-syötelaitteita (kuten USB-näppistä tai -hiirtä), muista lisätä nekin mukaan:

Koodilistaus 3.7: USB-tuen aktivointi

Device Drivers --->
  USB Support --->
    <*>   USB Human Interface Device (full HID) support
    [*]   HID input layer support

Jos läppäriin tarvitse PCMCIA-tuen, se kannattaa kääntää mukaan ytimeen. Allaolevien asetusten lisäksi pitää valitatuki sille PCMCIA-asetukselle, mikä järjestelmästä löytyy (samasta valikosta).

Koodilistaus 3.8: PCMCIA-tuen aktivointi

Bus options (PCI, PCMCIA, EISA, MCA, ISA)  --->
  PCCARD (PCMCIA/CardBus) support  --->
    <*> PCCard (PCMCIA/CardBus) support
    (16-bittinen sopii vanhemmille PCMCIA-laitteille, mitä useimmat
    halunnevat.)
    <*>   16-bit PCMCIA support
    [*]   32-bit CardBus support
    (Valitse sopiva silta alta)
    --- PC-card bridges
    <*> CardBus yenta-compatible bridge support (NEW)
    <*> Cirrus PD6729 compatible bridge support (NEW)
    <*> i82092 compatible bridge support (NEW)
    <*> Databook TCIC host bridge support (NEW)

Käännös ja asennus

Nyt kun ytimen asetukset on kasassa voidaan kääntää ja asentaa se. Poistu asetusohjelmasta ja asenna se:

Koodilistaus 3.9: Ytimen kääntäminen

# make && make modules_install

Ytimen käännyttyä kopioi se hakemistoon /boot. Voit käyttää mitä tahansa nimeä ytimelle, mutta muista tulevissa esimerkeissä korvata <ydinversio> sillä:

Koodilistaus 3.10: Ytimen asennus

# cp arch/i386/boot/bzImage /boot/<ydinversio>

7.d. Vaihtoehto: genkernelin käyttö

Olet siis valinnut käyttäväsi genkernel-skriptiä ytimen asentamiseen.

Nyt kun ytimen lähdekoodi on asennettu, voidaan ydin kääntää automaattisesti genkernel-skriptillä. genkernel tekee ytimestä lähes identtisen asennus-CD:n ytimen kanssa. Tästä seuraa että genkernelillä tehdyt ytimet tunnistavat laitteiston käynnistyksessä kuten asennus-CD:kin. Koska genkerneliä käytettäessä ei tarvitse tehdä asetuksia käsin, se sopii niille käyttäjille jotka eivät usko pitävänsä ytimen oma-aloitteisesta kääntämisestä.

Ensin asennetaan genkernel ebuildista:

Koodilistaus 4.1: Genkernelin asennus

# emerge genkernel

Sitten käännetään ydin komennolla genkernel all. Huomaa, että koska genkernel kääntää ytimen, jolla lähes kaikki laitteisto toimisi, siinä kestää taas jokunen tovi.

Jollei käynnistysosiosi käytä ext2- tai ext3-tiedostojärjestelmää, käytä komentoa genkernel --menuconfig all sopivan tiedostojärjestelmän tuen lisäämiseksi kerneliin mukaan (ei siis moduuliksi). EVMS2:n tai LVM2:n käyttäjät halunnevat lisätä valitsimiin --evms2 tai --lvm2.

Koodilistaus 4.2: Genkernelin käyttäminen

# genkernel all

genkernelin lopetettua on käytössä ydin täydehköllä moduulivalikoimalla ja initial root disk (initrd). Tätä ydintä ja initrd:tä käytetään käynnistyslataimen asettamiseksi myöhemmin. Muista ottaa ylös ytimen ja initrd:n nimet, niitä tarvitaan käynnistyslataimen asetuksissa. Initrd suorittaa käynnistyksen jälkeen laitteiston tunnistuksen (kuten asennus-CD:lläkin. Sen jälkeen varsinainen järjestelmä käynnistyy.

Koodilistaus 4.3: Ytimen ja initrd:n nimen tarkastus

# ls /boot/kernel* /boot/initramfs*

Järjestelmän saa vielä enemmän asennus-CD:n kaltaiseksi, jos asentaa coldplugin Gentoon asennuksen jälkeen. Siinä missä initrd tunnistaa raudan joka tarvitaan järjestelmän käynnistyksessä, coldplug tunnistaa kaiken muun.

Koodilistaus 4.4: coldplugin asennus

# emerge coldplug
# rc-update add coldplug boot

7.e. Ytimen moduulien asetukset

Moduulien säätäminen

Automaattisesti latautuvat moduulit pitää listata tiedostoon /etc/modules.autoload.d/kernel-2.6 (tai kernel-2.4). Moduuleille voi myös antaa parametrejä.

Kaikki saatavilla olevat moduulit saa selville vaikkapa seuraavalla find-komennolla. Muista korvata <ytimen versio> ytimesi versiolla.

Koodilistaus 5.1: Moduulien hakeminen

# find /lib/modules/<ytimen versio>/ -type f -iname '*.o' -or -iname '*.ko'

Jos vaikka ladattaisiin automaattisesti 3c58x.o, se lisättäisiin tiedostoon kernel-2.6 (tai kernel-2.4).

Koodilistaus 5.2: /etc/modules.autoload.d/kernel-2.6:n muokkaus

(2.6-versio)
# nano -w /etc/modules.autoload.d/kernel-2.6

Koodilistaus 5.3: /etc/modules.autoload.d/kernel-2.6

3c59x

Seuraavaksi asennetaan järjestelmä.

8. Järjestelmän asetusten tekeminen

8.a. Tiedostojärjestelmän tiedot

Mikä on fstab?

Linuxissa tieto kaikista osioista on tiedostossa /etc/fstab. Tiedosto sisältää osioiden liitospisteet (sijainnin tiedostojärjestelmässä), liitosasetukset (erityisasetukset) ja liitostavan (automaattisesti, käyttäjien toimesta jne.).

/etc/fstabin luonti

Tiedoston /etc/fstab tiedoilla on oma syntaksinsa. Jokaisella rivillä on kuusi tyhjeiden (välilyöntien tai tabien) erottamaa kenttää. Jokaisella kentällä on merkityksensä:

  • Ensimmäisessä kentässä on osion kuvaus (laitetiedoston hakemistopolku).
  • Toisessa kentässä on liitospiste johon osio liitetään.
  • Kolmannessa kentässä on osion tiedostojärjestelmä.
  • Neljännessä kentässä on liitosasetukset joita mount käyttää liittäessään osion. Koska jokaisella tiedostojärjestelmällä on omat liitosasetuksensa kannattanee tutustua mountin man-sivuun (man mount) täyttä listausta varten. Useammat asetukset erotetaan pilkuin.
  • Viidettä kenttää käyttää dump tarkastaakseen pitääkö osio dumpata. Yleensä se kannattaa jättää nollaksi (0).
  • Kuudetta kenttää käyttää fsck selvittääkseen pitääkö tiedostojärjestelmä tarkistaa odottamattoman sammutuksen jälkeen. Juuren tiedostojärjestelmässä kannattaa käyttää arvoa 1 ja muilla arvoa 2 (tai 0 järjestelmissä joissa tarkistukset eivät ole tarpeen).

Gentoon oletusarvoinen /etc/fstab ei ole toimiva vaan esimerkki: käytä nanoa (tai suosikkieditoriasi) /etc/fstabin luomiseen.

Koodilistaus 1.1: /etc/fstabin avaus

# nano -w /etc/fstab

Tarkastelkaamme esimerkkinä /boot-osion asetuksia. Jollei järjestelmässäsi ole osiota /boot (esimerkiksi PPC on tällainen), älä kopioi asetuksia esimerkistä sellaisenaan.

Oletusarvoisessa x86-osiointimallissamme ext2-tiedostojärjestelmä /boot liittyi osioon /dev/hda1. Tämä järjestelmä pitää tarkistaa käynnistyksen yhteydessä, joten kirjoitamme seuraavaa:

Koodilistaus 1.2: esimerkki-/boot-osion rivi /etc/fstabissa

/dev/hda1   /boot     ext2    defaults        1 2

Jotkin käyttäjät eivät turvallisuussyistä halua osion kiinnittyvän tiedostojärjestelmään käynnistyksessä, tämän saa vaihtamalla defaultsin noautoksi; tällöin /boot pitää tietenkin erikseen liittää aina käytettäessä.

Suorituskyvyn parantamiseksi useimmat halunnevat käyttää noatime-asetusta. Se nopeuttaa järjestelmää, koska käsittelyaikoja ei tallenneta (niitä ei yleensä tarvita kuitenkaan):

Koodilistaus 1.3: Parannettu /boot-osion rivi /etc/fstabissa

/dev/hda1   /boot     ext2    defaults,noatime    1 2

Samalla tavalla jatkamalla saamme aikaan kolme riviä (osioille /boot ja / sekä sivutusosiolle):

Koodilistaus 1.4: Kolmirivinen /etc/fstab

/dev/hda1   /boot     ext2    defaults,noatime    1 2
/dev/hda2   none      swap    sw                0 0
/dev/hda3   /         ext3    noatime           0 1

Lopuksi lisätään säännöt hakemistolle /proc, tiedostojärjestelmälle tmpfs (pakollisia) ja cd-asemille (sekä muille vastaaville tietenkin):

Koodilistaus 1.5: Täysimittainen /etc/fstab-esimerkki

/dev/hda1   /boot     ext2    defaults,noatime    1 2
/dev/hda2   none      swap    sw                0 0
/dev/hda3   /         ext3    noatime           0 1

none        /proc     proc    defaults          0 0
none        /dev/shm  tmpfs   defaults          0 0

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

Asetuksella auto komento mount yrittää arvata tiedostojärjestelmän (mikä on hyödyllistä siirrettäville muisteille koska niissä olevat tiedostojärjestelmät vaihtelevat). Asetus user antaa käyttäjän liittää CD:itä tiedostojärjestelmään myös.

Ylläolevan esimerkin mukaan voit nyt luoda /etc/fstabin. SPARCin käyttäjien kannattaa lisätä seuraavakin rivi /etc/fstab:iin:

Koodilistaus 1.6: Openprom-tiedostojärjstelmän lisäys fstabiin

none        /proc/openprom  openpromfs    defaults      0 0

Tarkista /etc/fstab vielä kerran, tallenna ja lopeta muokkaus.

8.b. Verkkoasetuksia

Isäntänimi, domainnimi jne.

Käyttäjillä on mahdollisuus tietokoneidensa nimeämiseen. Tämän pitäisi olla helppoa, mutta monilla tuntuu olevan ongelmia kunnollisen nimen löytämisessä. Asioiden nopeuttamiseksi kerrottakoon että nimeä voi vaihtaa milloin tahansa. Tässä kutsutaan järjestelmää tuxiksi ja domainia kotiverkoksi.

Ensin asetetaan koneen nimi:

Koodilistaus 2.1: Isäntänimen asetus

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

(HOSTNAMEksi asetetaan koneen nimi)
HOSTNAME="tux"

Sitten domainnimi:

Koodilistaus 2.2: Domainnimen asetus

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

(DNSDOMAINiksi asetetaan domainnimi)
DNSDOMAIN="kotiverkko"

Jos käytössä on NIS-domain (jollet tiedä mikä se on et varmaankaan käytä sellaista) sekin pitää määrittää:

Koodilistaus 2.3: NIS-domainnimen asetus

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

(NISDOMAINiksi asetetaan NIS-domainnimi)
NISDOMAIN="oma-nisdomain"

Seuraavaksi liitetään domainname-skripti käynnistettäväksi default-runlevelillä:

Koodilistaus 2.4: Domainnamen lisääminen default-runlevelille

# rc-update add domainname default

Verkon asetus

Ennen kuin keksit, että ”tämähän on jo tehty aiemminkin”, muista, että alussa tehty verkon asettaminen oli vain asennusjärjestelmää varten. Nyt määritellään verkon asetukset pysyvälle Gentoo-järjestelmälle.

Huomaa: Lisätietoja verkkoasetuksista, mukaanlukien monimutkaisemmat järjestelmät, kuten bondaukset, siltaukset, VLANit ja langattomat verkot selitetään juurta jaksain käsikirjan Verkkoasetukset osiossa.

Tiedostosta /etc/conf.d/net löytyvät kaikki verkkoasetukset. Syntaksi lienee itsestäänselvä, joskaan ei kovin ilmeinen, jollei ole asentanut verkkoyhteyksiä käsin. Tässä selitetään kuitenkin kaikki tarkkaan. Kommentoitu esimerkki asetusvaihtoehdoista on tiedostossa /etc/conf.d/net.example.

DHCP:tä käytetään oletusarvoisesti, eikä sen säätämiseen tarvita muita asetuksia.

Jos tarvitaan erikoisia DHCP-asetuksia tai DHCP ei ole käytössä, pitää muokata tiedostoa /etc/conf.d/net editorilla (tässä käytetään nanoa):

Koodilistaus 2.5: /etc/conf.d/netin muokkaaminen

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

Tiedoston pitäisi olla seuraavanlainen:

Koodilistaus 2.6: Default /etc/conf.d/net

# This blank configuration will automatically use DHCP for any net.*
# scripts in /etc/init.d.  To create a more complete configuration,
# please review /etc/conf.d/net.example and save your configuration
# in /etc/conf.d/net (this file :]!).
# (suomeksi:)
# Tämä tyhjä asetustiedosto asettaa /etc/init.d:n skriptit
# käyttämään DHCP:tä. Täydemmät asetukset löytää tiedostosta
# /etc/conf.d/net.example, tarkista ne ja tallenna /etc/conf.d/netiksi
# (tämän tiedoston päälle :]!).

Jos IP-osoite, verkon peite ja gateway syötetään käsin, pitää asettaa sekä config_eth0 että routes_eth0:

Koodilistaus 2.7: IP-osoitteiden käsinsyöttö eth0:lle

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

DHCP-asetuksia varten pitää säätää config_eth0 ja dhcp_eth0:

Koodilistaus 2.8: Vain IP-osoitteen haku DHCP:llä

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

Tiedostossa /etc/conf.d/net.example on kaikki käytettävät asetukset.

Jos käytössä on useita rajapintoja, samat askeleet tehdään erikseen muuttujille config_eth1, config_eth2 jne.

Sitten tallennetaan asetukset ja poistutaan.

Verkon yhdistäminen käynnistyksessä

Verkorajapintojen ylösnostoon käynnistyksen yhteydessä tarvitsee lisätä sopiva palvelu default-runlevelille. Jos käytössä on PCMCIA-rajapintoja tätä ei kannata tehdä, sillä PCMCIA:n initskripti hoitaa asiat itse.

Koodilistaus 2.9: net.eth0:n lisäys default-runlevelille

# rc-update add net.eth0 default

Jos käytössä on useampia verkkorajapintoja niille tarvitaan vastaavat käynnistysskriptit net.eth1, net.eth2 jne. Nämä voi luoda ovelasti ln-komennolla:

Koodilistaus 2.10: Ylimääräisten käynnistysskriptien teko

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

Verkkoasetusten selvittäminen

Seuraavaksi Linuxille pitää kertoa verkon asetuksista. Tiedostossa /etc/hosts määritellään isäntänimien yhteyksiä IP-osoitteisiin niitä laitteita varten joita nimipalvelin ei tunne. Jos vaikkapa kotiverkossa on kolme konetta lassi (192.168.0.5), leevi (192.168.0.6) ja tux (192.168.0.7 - tämä kone) kirjoitetaan tiedostoon /etc/hosts seuraavasti:

Koodilistaus 2.11: /etc/hostsin avaaminen

# nano -w /etc/hosts

Koodilistaus 2.12: Tietojen syöttö

127.0.0.1     localhost
192.168.0.5   lassi.kotiverkko lassi
192.168.0.6   leevi.kotiverkko leevi
192.168.0.7   tux.kotiverkko tux

Jos lähiverkossa on vain yksi kone (tai siellä on lähiverkonkin tunteva nimipalvelin) yksi rivi asetuksia riittää. Jos vaikkapa haluat koneesi nimeksi tux:

Koodilistaus 2.13: /etc/hosts yksinäiselle PC:lle

127.0.0.1     localhost tux

Tallenna tiedosto ja poistu editorista.

Jollei järjestelmässä ole PCMCIA:ta, voidaan jatkaa Järjestelmän tietoihin. Seuraavassa osiossa kerrotaan PCMCIA:n asennukesesta.

Valinnainen: PCMCIA toimintakuntoon

Huomaa: pcmcia-cs on saatavilla vain x86-, amd64- ja ppc-järjestelmille.

PCMCIA:lle pitää ensin asentaa paketti pcmcia-cs. Tämä koskee myös 2.6-ytimen käyttäjiä, vaikkeivät he välttämättä tulekaan lopulta käyttämään tämän paketin ajureita. Asennettaessa tarvitaan asetusta USE="-X" ettei xorg-x11 vielä lähde asentumaan:

Koodilistaus 2.14: pcmcia-cs:n asennus

# USE="-X" emerge pcmcia-cs

pcmcia-cs:n asennuttua pcmcia pitää lisätä default-runlevelille:

Koodilistaus 2.15: pcmcia:n lisäys default runlevelille

# rc-update add pcmcia default

8.c. Järjestelmän tiedot

Pääkäyttäjän salasana

Rootin salasana asetetaan kirjoittamalla:

Koodilistaus 3.1: Rootin salasanan asettaminen

# passwd

Jos pääkäyttäjän tarvitsee kirjautua sisään sarjakonsolilta, lisätään tts/0 tiedostoon /etc/securetty:

Koodilistaus 3.2: tts/0:n lisääminen /etc/securetty:yyn

# echo "tts/0" >> /etc/securetty

Järjestelmän tiedot

Gentoossa yleiset järjestelmäasetukset sijaitsevat tiedostossa /etc/rc.conf. Avaa se ja nautiskele tehokkaasta kommentoinnista :)

Koodilistaus 3.3: /etc/rc.confin avaus

# nano -w /etc/rc.conf

Kuten voidaan huomata, tiedosto on hyvin kommentoitu asetusten tekoa varten. Ole tarkkana KEYMAP-asetuksen kanssa, sillä väärällä KEYMAPilla näppäimistön painelu antaa vääriä lopputuloksia.

Huomaa: USB-pohjaisissa SPARCeissa ja SPARC-klooneissa saattaa pitää käyttää i386-näppäinkarttaa (kuten fi-latin9) sunkeymapin asemesta. PPC:llä käytetään useimmiten x86-näppäinkarttoja. ADB-näppäinkarttojen käyttämiseksi pitää asettaa päälle ADB-näppäinkoodien lähettäminen kernelin asetuksista ja asettaa mac/ppc-näppäinkartta /etc/conf.d/keymapsiin.

Jos järjestelmän kello ei ole UTC-ajassa, pitää CLOCK="local" lisätä rc.confiin, muuten aika saattaa mennä väärin.

Kun /etc/rc.confin asetukset on tehty, tallenna ja lopeta.

Jollei käytössä ole IBM PPC64-järjestelmä, jatka järjestelmävehkeiden asennukseen.

Konsolin asetukset

Huomaa: Tämä koskee vain IBM PPC64-järjestelmiä.

Jos gentoota käytetään IBM PPC64:llä, /etc/inittabista pitää poistaa hvc-rivin kommentointi jotta virtuaalikonsoli spawnaa oikein kirjautumiskehotteen.

Koodilistaus 3.4: Hvc tai hvsi-tuen lisääminen /etc/inittabiin

hvc0:12345:respawn:/sbin/agetty -L 9600 hvc0
hvsi:12345:respawn:/sbin/agetty -L 19200 hvsi0

Muista myös tarkistaa että sopiva konsoli on tiedostossa /etc/securetty.

Sitten voidaan jatkaa Järjestelmätyökalujen asentamiseen.

9. Tarvittavien järjestelmätyökalujen asentaminen

9.a. Järjestelmäloki

Stage3 sisältää kaikki järjestelmätyökalut, joille ei ole vaihtoehtoisia toteutuksia. Nyt asennamme työkalut, joille on vaihtoehtoisia versioita.

Ensimmäisenä pitää päättää millaiset lokitoiminnot järjestelmään asennetaan. Unixeissa ja Linuxissa on perinteisesti ollut tehokas loggaus; parhaimmillaan voi lokeihin saada kirjoitetuksi kaiken järjestelmän toiminnan. Tätä toimintoa hoitaa järjestelmäloki.

Gentoossa on valittavana useita järjestelmälokeja. Perinteinen lokipalveluiden joukko on sysklogd, msyslog on muokkautuva modulaarinen loki, syslog-ng on eräs tehokas järjestelmäloki ja metalog on hyvin pitkälle säätyvä järjestelmäloki.

Jos asennat sysklogd:n tai syslog-ng:n, saatat haluta lisätä järjestelmään logrotaten jälkikäteen, sillä nuo palvelut eivät osaa kierrättää lokitiedostoja.

Järjestelmäloki asennetaan emergellä ja lisätään default-runlevelille komennolla rc-update. Seuraavassa asennetaan syslog-ng, korvaa se millä ikinä lokilla haluatkaan:

Koodilistaus 1.1: Järjestelmälokin asennus

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

9.b. Valinnainen: Cron-palvelu

Seuraavaksi cron-palvelun kimppuun. Vaikkei se aivan pakollinen ole se on hyvin tarpeellinen usein. Mutta mitä cron tekeekään? Sehän on palvelu jolla voimme ajastaa toimintoja. Sillä on näppärä suorittaa sääännöllisin väliajoin joitain komentoja (vaikkapa sitten päivittäin, viikoittain ja kuukausittain).

asennus-CD:llä on tarjolla vain vixie-cron verkottomille asennuksille. Muita voi asentaa jälkikäteen jos tarvitsee.

Koodilistaus 2.1: cron-palvelun asentaminen

# emerge vixie-cron
# rc-update add vixie-cron default

9.c. Valinnainen: Tiedostojen indeksointi

Jos haluat, että tiedostojärjestelmäsi tiedostot indeksoidaan niin, että niitä voi nopeasti hakea, kannattaa asentaa sys-apps/slocate, jossa on myös näppärä locate-työkalu tiedostohakuja varten.

Koodilistaus 3.1: slocaten asentaminen

# emerge slocate

9.d. Tiedostojärjestelmätyökalut

Jotkin asennetut tiedostojärjestelmät vaativat myös työkaluja mukaansa (esimerkiksi eheyden tarkistamiseen ja uusien tiedostojärjestelmien luontiin ja niin edelleen).

Seuraavaassa on taulukoituna tiedostojärjestelmäkohtaisesti tarvitut työkalut (huomaa kuitenkin, etteivät kaikki tiedostojärjestelmät ole saatavilla kaikille alustoille):

Tiedostojärjestelmä Työkalu Asennuskomento
XFS xfsprogs emerge xfsprogs
ReiserFS reiserfsprogs emerge reiserfsprogs
JFS jfsutils emerge jfsutils

Jos käytössä on EVMS pitää myös asentaa evms: If you are an LVM user, you also need to install lvm-user:

Koodilistaus 4.1: Evms:n asentaminen

# USE="-gtk" emerge evms

USE="-gtk" on välttämätön tässä asennusvaiheessa, ettei graafinen käyttöliittymä riippuvuuksineen tulisi asennettua ennen aikojaan. Evms:n voi halutessaan kääntää uudeelleen graafisen käyttöliittymän kanssa asennuksen loputtua.

Jollet tarvitse muita verkkotyökaluja (kuten rp-pppoe:tä tai dhcp-asiakasohjelmaa), jatka käynnistyslataimen asennuksella. Muutoin jatka Vaihtoehdon: verkkotyökalut parissa.

9.e. Verkkotyökalut

Valinnainen: DHCP-asiakkasohjelman asennus

Jos järjestelmä hakee IP-osoitteensa automaattisesti verkkorajapinnoille, tarvitaan dhcpcd-ohjelmaa (tai muuta DHCP-asiakasohjelmaa). Järjestelmä saattaa tulla asennuksen jälkeen kyvyttömäksi Internetiin yhdistämiseen, jollei tätä nyt asenneta!

Koodilistaus 5.1: dhcpcd:n asennus

# emerge dhcpcd

Valinnainen: PPPoE-asiakasohjelman asennus

Jos tarvitset rp-pppoe:n verkkoyhteyttä varten, aloita asentamalla se.

Koodilistaus 5.2: rp-pppoe:n asennus

# USE="-X" emerge rp-pppoe

Asetuksella USE="-X" estetään xorg-x11:ä asentumasta tässä vaiheessa (rp-pppoe sisältää graafisiakin työkaluja, jos tarvitset niitä voit uudelleenkääntää rp-pppoe:n myöhemmin tai asentaa sen X:n kanssa nyt. X:n asennuksessa kuitenkin kestää aika kauan.).

Jatka käynnistyslataimen asentamisella.

10. Käynnistyslataimen asetusten tekeminen

10.a. Käynnistyslataimen valinta

Johdanto

Nyt kun ydin ja asetukset on saatu kuntoon, asennetaan ohjelma jolla ydin ladataan käynnistyksen yhteydessä. Ohjelmaa kutsutaan käynnistyslataimeksi. X86-alustoille Gentoossa on tarjolla GRUB tai LILO. Ennen toisen näistä asennusta tarkastelemme framebufferin säätämistä (jos sellaista tarvitaan). Framebufferilla pystytään tuomaan komentojonoille joitain (rajoittuneita) graafisia ominaisuuksia (kuten Gentoon tyylikkään käynnistyskuvan).

Valinnainen: Framebuffer

Jos framebuffertuki on ytimessä mukana (tai ydin on tehty genkernelillä), voidaan käynnistyslataimen asetuksiin lisätä vga- tai video-määrite framebufferia varten.

Ensiksi täytyy selvittää minkätyyppinen framebufferi on käytössä. Kaikissa gentoo-pätsätyissä kerneleissä (kuten gentoo-sources-paketissa) on ollut mahdollisuus valita ajuriksi vesafb-tng kohdasta VESA driver type (mikä on oletusarvona). tässä tapauksessa käytössä on vesafb-tng, joka ei tarvitse vga-asetusta. Muissa tapauksissa käytössä on vesafb-ajuri, jolle pitää antaa vga-asetus.

Vga-asetus määrittelee framebufferin näyttötarkkuutta ja värisyvyyttä vesafb-ajurille. Kuten tiedostossa /usr/src/linux/Documentation/fb/vesafb.txt kerrotaan, asetukseen pitää panna VESAn tilanumero.

Alla on taulukoituna VESAn tilanumerot yleisimmille näyttötarkkuuksille ja värisyvyyksille.

640×480 800×600 1024×768 1280×1024
256 väriä 0x301 0x303 0x305 0x307
32 768 väriä 0x310 0x313 0x316 0x319
65 536 väriä 0x311 0x314 0x317 0x31A
16,7 miljoonaa väriä 0x312 0x315 0x318 0x31B

Arvo kannattaa ottaa muistiin, sitä tarvitaan piakkoin.

Video-asetus määrittelee framebufferin asetuksia. Siihen syötetään framebuffer-laitteen nimi (vesafb 2.6-kerneleille tai vesa 2.4-kerneleille) ja asetukset jotka lisätään. Luettelo asetusmuuttujista on tiedostossa /usr/src/linux/Documentation/fb/vesafb.txt, mutta alla on taulukoituna yleisimmät.

Asetus Kuvaus
ywrap Ajuri olettaa näyttödatan jatkuvan muistissa kuvan reunojen yli (so. rivin viimeinen näyttöpiste edeltää välittömästi seuraavan rivin ensimmäistä).
mtrr Ajuri käyttää mtrr-rekisterejä.
mode (vesafb-tng:lle vain)
Asettaa näyttötarkkuuden, värisyvyyden ja virkistystaajuuden. Esimerkiksi arvo 1024x768-32@85 vastaa näyttötarkkuutta 1024×768 näyttöpistettä, 32-bittistä värisyvyyttä ja 85 hertsin virkistystaajuus.

Lopputuloksena näistä kahdesta asetuksesta saataneen jotain tyyppiä vga=0x318 video=vesafb:mtrr,ywrap tai video=vesafb:mtrr,ywrap,1024x768-32@85 oleva asetus. Arvo kannattaa ottaa muistiin, sitä tarvitaan piakkoin.

Nyt voidaan jatkaa asentamalla GRUB tai LILO.

10.b. Oletus: GRUBin käyttö

GRUBin termistöä

Vaikein asia GRUBissa on sen tapa viitata kovalevyihin ja osioihin. Linux-maailman osio /dev/hda1 onkin todennäköisesti GRUBissa (hd0,0). Sulut kuuluvat ilmaisuun, niitä ei voi jättää pois.

Kovalevyjen laskeminen aloitetaan siis nollasta aan asemesta ja osiotkin alkavat nollasta eivätkä ykkösestä. Laitteista lasketaan vain kovalevyt eikä esimerkiksi atapi-ide-laitteita kuten cd-asemia tai -polttimia. SCSI-asemat käyttävät samaa muotoa kuin IDE-asematkin. (Niissä on usein korkeammat numerot kuin IDEllä, elleivät ne ole biosista määriteltyjä käynnistysasemia.) Lisäksi jos BIOSia käskee käynnistämään joltain tietyltä kovalevyltä, se on grubille aina (hd0, riippumatta missä johdossa se on kiinni.

Jos käytetään järjestelmää jossa on kovalevy /dev/hda, cd-asema /dev/hdb, polttava asema /dev/hdc ja toinen kovalevy /dev/hdd eikä SCSI-kovalevyjä, on /dev/hdd7 silloin (hd1,6). Saattaa kuulostaa hankalalta ja sitä se hieman onkin, mutta GRUB:pa tarjoileekin meille tabintäydennysmekanismia, joka on erittäin kätevä, jos numerointimalli pääsee muuten hämäämään.

Nyt kun meillä on tuntumaa käsitteisiin, voimme jopa asentaa GRUBin.

GRUBin asennus

GRUBin asennus aloitetaan emergellä:

Koodilistaus 2.1: GRUBin asentaminen

# emerge grub

Nyt GRUB on asennettu kohdalleen. Enää tarvitsee kehitellä asetustiedosto, joka viittaa uuteen ytimeemme. Luodaan /boot/grub/grub.conf nanolla (tai muulla editorilla):

Koodilistaus 2.2: /boot/grub.confin luonti

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

Seuraavassa kirjoitamme asetustiedoston grub.conf. Alla on kaksi vaihtoehtoista esimerkkiä oppaassa käytetylle osiointimallille. Vain ensimmäinen esimerkki on täysin kommentoitu.

  • Ensimmäinen grub.conf on käsin rakennetuille ytimille.
  • Toinen grub.conf on genkernelillä tehdyille ytimille.

Huomaa: Jos juuren tiedostojärjestelmä on JFS, pitää kernel-riville lisätä ” ro”, sillä JFS:n pitää suorittaa loki lävitse ennen kirjoitussuojaamattoman tilan liitosta.

Koodilistaus 2.3: grub.conf käsin asennetuille ytimille

# Oletusvalinta listauksista, numerointi alkaa nollasta
default 0
# Valintaruudun kesto sekunneissa ennen oletusvalinnan käynnistystä.
timeout 30
# Tyylikäs käynnistyskuva mausteeksi :-)
# kommentoi se pois jollei käytössä ole grafiikkakorttia
splashimage=(hd0,0)/boot/grub/splash.xpm.gz

title=Gentoon Linux 2.6.12-r10
# Osio jolla ydin sijaitsee
root (hd0,0)
kernel /boot/kernel-2.6.12-gentoo-r10 root=/dev/hda3

# Seuraavia kolmea riviä käytetään Windows-dualbooteissa.
# Tässä tapauksessa Windows on siis osiolla /dev/hda6.
title=Windows XP
rootnoverify (hd0,5)
makeactive
chainloader +1

Koodilistaus 2.4: grub.conf genkernel-ytimille

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

title=Gentoo Linux 2.6.12
root (hd0,0)
kernel /boot/kernel-2.6.12-gentoo-r10
root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/hda3 udev
# (kernel…udev yhdelle riville, mutta se on tässä katkottu
# useammalle, jotta näkyisi selaimissa ja tulosteissa)
initrd /initrd-2.6.12-gentoo-r10

# Vain dualbooteille
title=Windows XP
root (hd0,5)
makeactive
chainloader +1

Muita osiointeja varten mallia pitää muuttaa tarpeen mukaan. Varmista kuitenkin että kaikki hakemistot liittyvät valitun GRUB-osion (kuten (hd0,0)) juurihakemistoon eikä koko järjestelmän juureen. Siksi siis (hd0,0)/grub/splash.xpm.gz onkin oikeasti /boot/grub/splash.xpm.gz, sillä (hd0,0) liittyy hakemistoon /boot.

Jos käytössä on toisenlainen osiointimalli, jossa ei ole erillistä /boot-osiota, täytyy /boot kirjoittaa käynnistyslataimen asetuksiin. Jos erillinen /boot-osio on käytössä, voi sen jättää asetuksissa mainitsematta, mutta sen kirjoittaminen on suositeltavaa, sillä symbolisen linkin ansiosta se toimii molemmissa tapauksissa. Käytännössä siis /boot-osan kirjoittaminen asetuksiin toimii tapauksesta riippumatta.

Jos ytimelle pitää antaa lisäparametrejä, ne voi lisätä kernel-komennon loppuun. Esimerkissä annetaan jo parametri root=/dev/hda3 tai real_root=/dev/hda3, mutta useampiakin voidaan syöttää. Esimerkiksi aiemmin mainittua framebufferia tähän syötettäisiin vga- ja video-parametrit.

Jos olet asettanut kovalevyysi jumpperin rajoittamaan kokoa koska BIOSisi ei ymmärrä suuria kovalevyjä, merkkaa myös vastaavalle kovalevylaitteelle ydinasetus hdx=stroke.

genkernelillä käännetyt ytimet käyttävät samoja asetuksia kuin asennus-CD. Esimerkiksi SCSI-laitteita varten käytetään doscsi-parametriä.

Nyt tallenna grub.conf ja poistu. GRUB pitää vielä asentaa MBR:ään (Master Boot Record), jotta GRUB käynnistäisi koneen käynnistämisen yhteydessä.

Grubin kehittäjät suosittelevat komennon grub-install käyttämistä. Kuitenkin, jos grub-install ei jostain syystä toimikaan, voit silti yrittää asentaa sen käsinkin.

Jatka joko pitkin Oletusreittiä: Grubin asennus grub-installilla tai Vaihtoehtoa: Grubin asennus käsin.

Oletus: Grubin asennus grub-installilla

Grubin asentamiseen riittää grub-install-komento. Kuitenkin, grub-install ei toimi suoraan koska olemme vielä chroot-ympäristössä. Ensin pitää luoda /etc/mtab (tiedosto, joka sisältää tiedot liitetyistä tiedostojärjestelmistä): onneksi tämä on helppoa; kopioidaan vain /proc/mountsista kaikki paitsi rootfs /etc/mtabiksi:

Koodilistaus 2.5: /etc/mtabin teko

# grep -v rootfs /proc/mounts > /etc/mtab

Sitten voidaan asentaa grub:

Koodilistaus 2.6: Grub-installin suoritus

# grub-install /dev/hda

Lisätietoa GRUBista englanniksi löytyy GRUB FAQ:sta ja GRUB Manuaalista.

Seuraavaksi voidaan jatkaa uudelleenkäynnistyksellä.

Vaihtoehto: Grubin asennus käsin

Grubin asetuksia pääsee muuttamaan kirjoittamalla grub. Se tuo esiin grubin kehotteeen: grub>. Seuraavaksi kirjoitetaan komennot joilla Grub asentaa käynnistystietueen kovalevyllesi.

Koodilistaus 2.7: Grubin kehotteen avaus

# grub

Huomaa: Jollei järjestelmässäsi ole diskettiasemia, lisää valitsin --no-floppy grubin komentoon niin se ei käytä aikaa niiden paikantamiseen.

Esimerkissä asennamme Grubin lukemaan tiedot käynnistysosiolta /dev/hda1, ja asentamaan käynnistystietueen kovalevyn MBR:ään (master boot record). Tällainen järjestely käynnistää koneen oletusarvoisesti aina Grubilla. Tietenkin taas mukautat annettuja komentoja, jolleivät osiointisi vastaa ohjeen esimerkkiä

Grubissa on kehotteessa toimiva tabintäydennysmekanismi. Tämä toimii siten, että jos vaikkapa kirjoitat root ( ja painat tabulaattoria, grub näyttää listan laitteista (kuten hd0). Jos sitten kirjoitat root (hd0, ja painat tabia, saat vastaavasti listan ensimmäisen kovalevyn osioista.

Tabintäydennyksen kanssa Grubin säätäminen ei ole liian monimutkaista. Seuraavaksi laitetaan siis asetukset kuntoon.

Koodilistaus 2.8: Grubin asennus MBR:ään

grub> root (hd0,0)          (Osoita /boot-osion sijainti)
grub> setup (hd0)           (Asenna Grub MBR:ään)
grub> quit                  (Poistu Grubin kehotteelta)

Huomaa: Jos haluat asentaa Grubin jollekin osiolle MBR:n sijaan, voit muuttaa setup-komentoa osoittamaan oikeaan osioon. Esimerkiksi laitteelle /dev/hda3 sopiva komento on setup (hd0,2). Tällaista tarvinnee kuitenkin aika harvoin.

Lisätietoa Grubista saat GRUB FAQista tai GRUB Manualista.

Huomaa: Tästä lähin kun asennat uuden kernelin, ei tarvitse enää kopioida tiedostoja käynnistyshakemistoon käsin. Kernelin käännön jälkeen ne voi asentaa komennolla make install, joka huolehtii tiedostojen kopioinnista ja Grubin asetuksista.

Jatka järjestelmän uudelleenkäynnistyksellä.

10.c. Vaihtoehto: LILOn käyttäminen

LILOn asennus

LILO (LInuxLOader) on vanha ja vakaa Linuxin käynnistyslatain. Siitä puuttuu joitain GRUBin toimintoja (mistä syystä GRUB saavuttaakin suosiota). LILOa kuitenkin käytetään joissain järjestelmissä joissa GRUB ei toimi sekä vanhasta tottumuksesta. Joka tapauksessa, Gentoo toimii molemmilla ja tässä tarkastellaan LILOa.

LILOn asennus on näppärää, ei tarvitse kuin käskyttää emergeä.

Koodilistaus 3.1: LILOn asennus

# emerge --usepkg lilo

LILOn asetusten teko

LILOn asetuksia varten luodaan tiedosto /etc/lilo.conf. Käynnistä suosikkieditorisi (käsikirjassa käytetään nanoa)

Koodilistaus 3.2: /etc/lilo.confin luonti

# nano -w /etc/lilo.conf

Joitain kohtia aiemmin otettiin ylös ytimen nimi. Seuraavassa käytetään aiemmin kuvailtua osiointimallia. Esimerkissä on kaksi kohtaa:

  • käsin käännetyille ytimille
  • genkernelillä käännetyille ytimille.

Muista varmistaa tiedostonimien oikeellisuus oman järjestelmäsi mukaan.

Huomaa: Jos juuren tiedostojärjestelmä on JFS, pitää kernel-riville lisätä ” ro”, sillä JFS:n pitää suorittaa loki lävitse ennen kirjoitussuojaamattoman tilan liitosta.

Koodilistaus 3.3: /etc/lilo.conf-esimerkki

boot=/dev/hda             # Asennetaan LILO MBR:ään
prompt                    # Käynnistetään valintaruudulla
timeout=50                # Odotetaan valintaa 5 sekuntia
default=gentoo            # 5 sekunnin jälkeen käynnistetään gentoo-valinta


# Käsin käännetty ydin
image=/boot/kernel-2.6.12-gentoo-r10
  label=gentoo            # Ytimelle annettaan nimi
  read-only               # Aloitetaan juuriosio kirjoitussuojattuna. Pakollinen!
  root=/dev/hda3          # Juuriosion sijainti

# Genkernelillä käännetty ydin
image=/boot/kernel-2.6.12-r10
  label=gentoo
  read-only
  root=/dev/ram0
  append="init=/linuxrc real_root=/dev/hda3 udev"
  initrd=/boot/initrd-2.6.12-r10

# Tätä kohdetta käytetään vain Windows-dualbooteissa
# Tässä esimerkissä Windows on osiolla /dev/hda6.
other=/dev/hda6
  label=windows

Huomaa: Jos käytössä on jokin muu osiointi tai ydin, niin esimerkit korvataan niillä.

Jos ytimelle pitää antaa muita parametrejä, ne lisätään append-lausekkeella. Esimerkiksi framebufferin asetus vga annetaan seuraavasti:

Koodilistaus 3.4: Parametrien lisäys framebufferilla

image=/boot/kernel-2.6.12-gentoo-r10
  label=gentoo
  read-only
  root=/dev/hda3
  video=vesafb:mtrr,ywrap,1024x768-32@85

Jos käytössä on ytimen versio 2.6.7 tai sitä uudempi, ja olet asettanut kovalevyysi jumpperin rajoittamaan kokoa koska BIOSisi ei ymmärrä suuria kovalevyjä, merkkaa myös vastaavalle kovalevylaitteelle ydinasetus hdx=stroke.

genkernelillä käännetyt ytimet käyttävät samoja käynnistysparametreja kuin asennus-CD:kin. Esimerkiksi SCSI-laitteet käynnistetään lisäämällä doscsi ydinparametreihin.

Seuraavaksi tallenna tiedosto ja poistu editorista. Lilon asennus viimeistellään komennolla /sbin/lilo. Se tallentaa LILOn asetukset järjestelmään (eli kopioi lataimen levylle). Muista että /sbin/lilo pitää ajaa joka kerta kun uusi ydin asennetaan.

Koodilistaus 3.5: LILOn asennuksen viimeistely

# /sbin/lilo

Huomaa: Tästä lähin kun asennat uuden kernelin, ei tarvitse enää kopioida tiedostoja käynnistyshakemistoon käsin. Kernelin käännön jälkeen ne voi asentaa komennolla make install, joka huolehtii tiedostojen kopioinnista ja lilon asetuksista.

Seuraavaksi voidaan jatkaa uudelleenkäynnistyksellä.

10.d. Järjestelmän uudelleenkäynnistys

Poistu chroot-ympäristöstä ja irrota osioliitokset. Sitten voit kirjoittaa sen viimeisen taikasanan: reboot.

Koodilistaus 4.1: chrootista poistuminen, osioiden irrotus ja uudelleenkäynnistys

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

Muista tietenkin ottaa käynnistyvä cd pois asemasta, että käynnistys tapahtuisi uuteen järjestelmään cd:n asemesta.

Uudelleenkäynnistyksen jälkeen voitkin viimeistellä Gentoon asennuksesi.

11. Gentoo-asennuksen viimeistely

11.a. Käyttäjienhallinta

Käyttäjän lisäys normaalikäyttöä varten

Unix tai Linux-järjestelmissä on hyvin vaarallista käyttää pääkäyttäjän tunnusta ja sitä tuleekin välttää kun vain mahdollista. Suositellaan vahvasti, että lisäät tavan käyttäjän jokapäiväistä käyttöä varten.

Käyttäjän ryhmät määrittelevät joitain toimintoja, joita hän pystyy tekemään; alla on luettelo järjestelmän tärkeistä käyttäjäryhmistä, joita voi kannattanee käyttää:

Ryhmä Toiminto
audio voi käyttää audiolaitteita
cdrom voi käyttää cd-laitteita (ja muita vastaavia)
floppy voi käyttää diskettilaitteita
games voi käyttää pelejä
portage voi käyttää komentoa emerge --pretend
plugdev voi liittää ja käyttää mm. kameroita ja USB-muisteja
usb voi käyttää USB-laitteita
video voi käyttää videonkaappauslaitteita tai hyödyntää näytönajurin laitteistokiihdytystä
wheel voi käyttää komentoa su

Luodaan käyttäjä pekka ryhmien wheel, users ja audio jäsenenä. Mutta ensin kirjaudutaan pääkäyttäjäksi:

Koodilistaus 1.1: Käyttäjän lisääminen jokapäiväistä käyttöä varten

Login: root
Password: (pääkäyttäjän salasanasi)

# useradd -m -G users,wheel,audio -s /bin/bash pekka
# passwd pekka
Password: (Anna pekan salasana)
Re-enter password: (Anna salasasana uudelleen varmistukseksi)

Pekka voi nyt tarvitessaan suorittaa komentoja pääkäyttäjänä siirtymällä väliaikaisesti siihen tilaan komennolla su -. Toinen tapa toteuttaa sama toiminnallisuus on sudo-paketin avulla. Se on oikein käytettynä myös hyvin turvallinen.

11.b. Valinnainen: GRP-pakettien asennus

Tärkeää: Tämä osio on vain GRP-asennuksille. Muussa tapauksessa sen voi ohittaa ja jatkaa kohtaan mihin tästä edetään?.

Nyt kun uusi järjestelmäsi on käynnistynyt, kirjaudu sisään luomanasi käyttäjänä (esimerkiksi pekkana) ja ota pääkäyttäjän oikeudet käyttöön komennolla su -:

Koodilistaus 2.1: Pääkäyttäjän oikeuksien hankkiminen

$ su -
Password: (Anna pääkäyttäjän salasana)

Nyt pitää muuttaa Portagen asetuksia toisen cd:n (Gentoo Packages CD) esikäännettyjä paketteja varten. Aloitetaan liittämällä cd:

Koodilistaus 2.2: Packages CD:n liittäminen

(Aseta Gentoo Packages CD asemaan)
# mount /mnt/cdrom

Nyt säädetään Portage käyttämään hakemistoa /mnt/cdrom esikäännettyjen pakettien hakuun:

Koodilistaus 2.3: Portagen säätäminen käyttämään /mnt/cdromia

# ls /mnt/cdrom

(Jos cd:llä on hakemisto /mnt/cdrom/packages:)
# export PKGDIR="/mnt/cdrom/packages"

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

Nyt voit asentaa haluamasi paketit. Packages CD:llä on useita esikäännettyjä paketteja, kuten KDE tai Gnome:

Koodilistaus 2.4: Gnomen asennus

# emerge --usepkg gnome

Käytössä olevat paketit saa selville listaamalla tiedostot hakemistossa /mnt/cdrom/All. Esimerkiksi jos halutaan katsoa mitä KDE:stä voi asentaa:

Koodilistaus 2.5: KDE:n asennettavuuden tarkastelu

# ls /mnt/cdrom/All/kde*

Muista asentaa kaikki esikäännetyt binääripaketit tässä vaiheessa. Sen jälkeen, kun olet seuraavan kerran päivittänyt Portagen komennolla emerge --sync (mistä lisää myöhemmin), esikäännetyt binäärit eivät välttämättä vastaa tuoreimman portagen ebuildeja. Tätä ongelmaa voi yrittää kiertää käyttämällä komentoa emerge --usepkgonly komennon emerge --usepkg sijaan.

Jatka pohtimalla minne tästä mennään, niin opit lisää Gentoosta.

12. Minne seuraavaksi?

12.a. Dokumentointi

Onnea! Nyt käytössäsi on täysin toiminnallinen Gentoo. Mutta mitä seuraavaksi? Mitä vaihtoehtoja on tarjolla? Mihin kannattaa tutustua ensimmäisenä? Gentoo tarjoaa käyttäjilleen mahdollisuuksia ja siten paljon dokumentoituja (ja vähemmän dokumentoituja) ominaisuuksia.

Kannattaa ehdottomasti vilkaista Gentoo-käsikirjan seuraavaa osaa Gentoon käyttäminen. Siinä selitetään kuinka ohjelmisto pidetään ajan tasalla, kuinka lisäohjelmisto asennetaan, mitä USE-asetukset ovat, kuinka Gentoon Init toimii, jne.

Jos olet kiinnostunut järjestelmän optimoimisesta työpöytäkäyttöön tai haluat asentaa täysimittaisen työpöytäaseman, lue lisää työpöytäoppaistamme.

Tietoturvasta kiinnostuneiden kannattanee vilkaista laajahkoa Gentoo Security Handbook -opasta, joka tosin on vielä suomentamatta.

Täysi listaus dokumenteista löytyy dokumentti-indeksistä.

12.b. Gentoo verkossa

Olet tietenkin tervetullut Gentoon foorumeille (joilla on myös suomenkielinen osio!) sekä Gentoon irkkikanaville.

Käytettävissä on myös useita kaikille avoimia postituslistoja. Liittymisohjeet löytyvät sivulta.

12.c. Muutoksia sitten 2005.1:n

Muutoksia?

Gentoo on nopeasti kehittyvä distro. Seuraavassa muutoksia, joita Gentoossa on tapahtunut sen jälkeen kun 2005.1 julkaistiin. Tässä vain ne, jotka vaikuttavat kaikkiin asennuksiin, ei yksittäisten pakettien sisäisiä muutoksia.

Ei muutoksia.

B. Gentoon käyttäminen

1. Johdanto Portageen

1.a. Johdanto Portageen

Portage lienee Gentoon merkittävimpiä keksintöjä. Koska se on niin mukautuva ja sisältää paljon toimintoja, monet pitävät sitä Linux-järjestelmien parhaana ohjelmistonhallintatyökaluna.

Portage on kirjoitettu Pythonilla ja Bashilla. Se on molempien skriptauskielten käyttäjien käytettävissä.

Useimmat käyttäjät hyödyntävät Portage emergen läpi. Tässä kappaleessa ei aiota toistaa tietoja, jotka on saatavilla emergen man-sivulta. Täysimittainen listaus emergen mahdollisuuksista on vain man-sivulla:

Koodilistaus 1.1: Emerge man-sivun tarkastelu

$ man emerge

1.b. Portagepuu

Ebuildit

Kun ohjeessa puhutaan paketeista, sillä useimmiten tarkoitetaan ohjelmia, jotka ovat Gentoon käyttäjien saatavilla Portagepuun kautta. Portagepuu on kokoelma ebuildeja, tiedostoja, jotka sisältävät Portagen tarvitsemat ohjelman ylläpito-ohjeet (asennukseen, hakemiseen, jne.). Nämä sijaitsevat oletusarvoisesti hakemistossa /usr/portage.

Kun Portagelta kysytään ohjelmiin liittyviä toimintoja, se käyttää järjestelmän ebuildeja pohjatietonaan. On tärkeää, että ebuildit päivitetään tarpeeksi säännöllisesti, että Portage tietäisi uusista ohjelmista, turvallisuuspäivityksistä ja niin edelleen.

Portagepuun päivitys

Portagepuuta päivitetään tyypillisesti rsyncillä. Rsync on nopea ja tehokas tiedostojensiirtokäytäntö. Kun käyttää emergeä apuna, päivitys on helppoa:

Koodilistaus 2.1: Portagepuun päivitys

# emerge --sync

Jos rsyncin käyttö ei onnistu palomuurin takia, voi Portagepuun silti päivittää päivittäisistä otostarrapalloista. Komento emerge-webrsync hakee ja asentaa tuoreimman otoksen järjestelmään:

Koodilistaus 2.2: Emerge-webrsyncin suoritus

# emerge-webrsync

1.c. Ohjelmiston ylläpito

Ohjelmien etsiminen

Portagepuuta voi hakea läpi emergen hakutoiminnoilla. Oletuksena komento emerge --search hakee paketit, joiden nimissä on annettu hakutermi.

Esimerkiksi näin etsittäisiin paketteja, joiden nimessä esiintyy pdf:

Koodilistaus 3.1: Pdf-pakettien haku

$ emerge --search pdf

Haun saa myös käymään läpi pakettien kuvaukset valitsimella --searchdesc (lyhyesti -S):

Koodilistaus 3.2: Pdf:iin liittyvien pakettien haku

$ emerge --searchdesc pdf

Tulosteessa on paljon tietoja. Kentät on selkeästi otsikoitu, joten emme selitä niistä sen enempää:

Koodilistaus 3.3: Ote emerge searchin tulosteesta

*  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

Ohjelmien asentaminen

Sopivia ohjelmia on hyvin helppo asentaa tarvitessa, käytetään vain komentoa emerge ja paketin nimeä. Esimerkiksi gnumeric asennettaisiin näin:

Koodilistaus 3.4: Gnumericin asennus

# emerge gnumeric

Monet ohjelmat tosin tarvitsevat toisia ohjelmia tai kirjastoja toimiakseen; tällaista asennettaessa saattaa asentua useita riippuvuuksia mukana. Näistä ei kuitenkaan yleensä tarvitse huolehtia, sillä Portage osaa hoitaa riippuvuudet hyvin. Tarkastellaksesi mitä Portage aikoo asentaa jonkin paketin ohella, käytä valitsinta --pretend. Esimerkiksi:

Koodilistaus 3.5: Gnumericin asennuksen tarkastelu

# emerge --pretend gnumeric

Kun Portagella asentaa pakettia, se hakee lähdekoodit Internetistä (jos tarpeen) ja tallentaa ne oletusarvoisesti hakemistoon /usr/portage/distfiles. Tämän jälkeen se purkaa, kääntää ja asentaa paketin. Jos halutaan Portagen vain hakevan paketin asentamatta sitä, pitää antaa valitsin --fetchonly komennolle emerge:

Koodilistaus 3.6: Gnumericin lähdekoodin lataus

# emerge --fetchonly gnumeric

Asennettujen ohjelmien dokumentit

Monet paketeista sisältävät myös dokumentaationsa. Joskus tätä varten on valinnainen doc-USE-asetus. USE-asetuksen voi tarkistaa komennolla emerge -vp <paketti>.

Koodilistaus 3.7: doc-asetuksen tarkastelu

(alsa-lib on vain hyvä esimerkki.)
# emerge -vp alsa-lib
[ebuild  N    ] media-libs/alsa-lib-1.0.14_rc1  -debug 698 kB

USE-asetusta on järkevintä käyttää pakettikohtaisesti tiedostossa tai hakemistossa /etc/portage/package.use. Järjestelmänlaajuisena asetuksena se voi aiheuttaa ongelmia riippuvuuksien kanssa. Käsikirjan USE-asetuskappaleessa on lisää USE-asetuksista.

Kun paketti on asennettu, sen dokumentaatio yleensä löytyy hakemiston /usr/share/doc paketin nimeä vastaavasta alihakemistosta. Kaikki paketin asennetut tiedostot näkee myös equery-työkalulla, joka kuuluu pakettiin app-portage/gentoolkit (ks. Gentoolkit documentation).

Koodilistaus 3.8: Paketin dokumentaation etsintä

# 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

(Vaihtoehtoisesti equeryllä:)
# 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
...ja niin edelleen

Ohjelmien poistaminen

Paketit poistetaan järjestelmästä komennola emerge --unmerge. Tämä käskee Portagen poistamaan kaikki paketin asentamat tiedostot paitsi asetustiedostot, joita on muutettu asennuksen jälkeen. Asetustiedostojen säilyttäminen helpottaa ohjelman käyttämistä, jos se asennetaan joskus uudelleen.

On kuitenkin erittäin tärkeää huomata, että Portage ei tarkasta onko poistettava paketti tarpeellinen jollekin muulle paketille. Se varoittaa kuitenkin, jos poistetaan pakettia, joka on tarpeellinen koko järjestelmälle.

Koodilistaus 3.9: Gnumericin poistaminen

# emerge --unmerge gnumeric

Pakettia poistettaessa, sen mukana asennetut riippuvuudet eivät poistu. Portage osaa hakea kaikki riippuvuudet jotka voisi poistaa emergen komennolla --depclean, tästä kerromme lisää myöhemmin.

Järjestelmän päivittäminen

Jotta järjestelmä pysyisi kunnossa (ja tietoturvakin ajan tasalla), sitä pitää päivittää säännöllisesti. Koska Portage tarkistaa päivitykset Portagepuun ebuildeista, täytyy ensimmäisenä päivittää Portagepuu. Kun Portagepuu on päivitetty, järjestelmän voi päivittää komennolla emerge --update world. Seuraavassa komennossa käytetään myös valitsinta --ask, joka kysyy ennen muutosten tekemistä:

Koodilistaus 3.10: Järjestelmän päivittäminen

# emerge --update --ask world

Tällä komennolla Portage etsii uudet versiot ohjelmista, jotka on asennettu. Tämä kuitenkin vaikuttaa vain ohjelmiin, jotka on erikseen pyydetty asennettaviksi (so. ohjelmat tiedostossa /var/lib/portage/world), ei niiden kaikkiin riippuvuuksiin. Jos tarvitaan päivittää jokainen paketti järjestelmässä, pitää lisätä valitsin --deep:

Koodilistaus 3.11: Koko järjestelmän päivittäminen

# emerge --update --deep world

Koska tietoturvapäivitykset usein osuvat paketteihin, joita ei ole erikseen asennettu koneelle, vaan vain muiden ohjelmien riippuvuuksina, tämän komennon käyttöä aika ajoin suositellaan vahvasti.

Jos joitain USE-asetuksia on muutettu, voi olla järkevää lisätä myös valitsin --newuse joukkoon. Tällöin Portage tarkastaa jos muutkoset vaativat pakettien uudelleenasennusta.

Koodilistaus 3.12: Koko järjestelmän täydellinen päivittäminen

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

Metapaketit

Portagepuussa on joitain paketteja, joilla ei ole varsinaista sisältöä, vaan pikemminkin ne asentavat joukkoja paketteja. Esimerkiksi kde asentaa täyden KDE-ympäristön järjestelmään hakien tarpeelliset KDE-liittyvät paketit riippuvuuksina.

Tällaista pakettia poistaessa emerge --unmerge ei paljoa auta, sillä riippuvuudethan jäävät järjestelmään.

Portage osaa poistaa myös orpoutuneet riippuvuudet, mutta koska ohjelmat riippuvat toisistaan myös dynaamisesti, pitää koko järjestelmä päivittää ensin, mukaanlukien USE-asetuspohjaiset muutokset. Tämän jälkeen voi suorittaa emerge --depclean poistaakseen orvot riippuvuudet. Kun tämä on tehty, pitää uudelleenasentaa ohjelmat, jotka oli dynaamisesti linkitetty näihin poistettuihin, mutta jotka eivät tarvitse niitä enää.

Kaikki tämä onnistuu kätevästi kolmella komennolla:

Koodilistaus 3.13: Orpojen riippuvuuksien poisto

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

Revdep-rebuild kuuluu pakettiin gentoolkit: muista asentaa se ensin:

Koodilistaus 3.14: Gentoolkitin asentaminen

# emerge gentoolkit

1.d. Kun Portage antaa virheilmoituksia

Virheilmoitukset SLOTeista, Virtualeista, Brancheista, Architectureista ja Profileista

Kuten aiemmin sanottiin, Portage on hyvin tehokas ja siinä on paljon ominaisuuksia.

Portagessa samasta paketista voi olla useita versioita yhtä aikaa asennettuana. Kun muissa distroissa paketin nimissä ilmoitetaan versionumero (kuten freetype vs. freetype2), Portage käyttää tähän SLOTeja. Ebuildit kertovat ohjelmien SLOTin versioittain. Ebuildit, joissa on määritetty eri SLOTti, voidaan asentaa samaan aikaan järjestelmälle. Esimerkiksi freetypellä on ebuildeja joissa on määritelty SLOT="1" ja SLOT="2".

Lisäksi on joukoittain pakettia, jotka tekevät samaa asiaa, mutta eri toteutuksella. Esimerkiksi metalogd, sysklogd ja syslog-ng ovat kaikki järjestelmälokeja. Ohjelmat, jotka riippuvat tällaisesta toiminnallisuudesta, eivät voi valita riippuvuudekseen vaikkapa metalogd:tä, sillä muutkin toimisivat yhtä hyvin. Portage ratkaisee tämän virtuaaleilla: jokainen järjestelmäloki sisältää virtuaalin virtual/syslog, johon muut sovellukset voivat merkitä riippuvuuden.

Ohjelmisto Portagepuussa jaotellaan useisiin eri haaroihin. Oletusarvoisesti järjestelmään asennetaan vain paketteja, jotka Gentoon kehittäjien mielestä ovat stabiileja. Useimmat uudet ohjelmat liitetään aluksi testaushaaraan, joka tarkoittaa että niitä pitää testata, ennen kuin ne uskaltaa merkitä stabiileiksi. Vaikka näitä paketteja pystyy katselemaan Portagepuusta, niitä ei voi asentaa, ennen kuin ne on sijoitettu stabiiliin haaran.

Jotkut ohjelmat on tehty vain muutamille arkkitehtuureille, toiset vain eivät toimi joillain, tai tarvitsevat lisää testausta. Joissain tapauksissa ohjelman Portagepuuhun lisännyt kehittäjä ei pysty testaamaan ohjelman vakautta muilla alustoilla.

Gentoo-asennukset seuraavat tiettyjä profiilitietoja, joissa on luettelo tarvittavista järjestelmäpaketeista ja muutakin.

Blokatut paketit

Koodilistaus 4.1: Portagen virheilmoitus blokatusta paketista (--pretend-vaiheessa)

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

Koodilistaus 4.2: Portagen varoitus blokatusta paketista asennettaessa

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

Ebuildeissa on tietoa riippuvuuksista. Riippuvuuksia on kahta luokkaa: asennusaikaisia ja ajonaikaisia, jotka määritellään vastaavasti muuttujissa DEPEND ja RDEPEND. Jos näissä on merkitty jotakin, jota ei voi asentaa, se johtaa blokkaamiseen.

Blokkaamisen voi ratkaista joko jättämällä paketin asentamatta tai poistamalla blokaavan paketin. Annetussa esimerkissä voi joko jättää postfixin asentamatta tai poistaa ssmtp:n ensin.

Joskus blokkaukset voivat olla versiokohtaisia, kuten <media-video/mplayer-bin-1.0_rc1-r2. Tällöin pelkkä päivitys saattaa ratkaista ongelman.

Joskus voi myös käydä niin, että kaksi asentamatonta pakettia blokkaavat toisensa. Tällaisessa tapauksessa pitää ottaa selvää miksi molempien asennus on tarpeellinen. Yleensä ongelma ratkeaa asentamalla vain toisen paketeista, mutta jollei, raportoi asiasta englanniksi Gentoon bugzillaan.

Peitetyt paketit

Koodilistaus 4.3: Portagen varoitus peitetystä paketista

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

Koodilistaus 4.4: Portagen selitys peitetystä paketista

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

Jos pitää asentaa paketti, joka ei nykyiselle järjestelmälle ole saatavilla, tulee jokin virheilmoituksista. Tällöin kannattaisi kokeilla toista samanlaista pakettia, tai odottaa että tarvittava paketti tulee saataville. Pakettien peittämiselle on aina erittäin pätevä syy:

  • ~arch keyword tarkoittaa, että sovellusta ei ole vielä testattu tarpeeksi sen merkitsemiseksi stabiiliksi. Odottele muutamia viikkoja ja yritä uudelleen.
  • -arch keyword tai -* keyword tarkoittaa, että sovellus(versio) ei toimi tällä arkkitehtuurilla. Jos olet toista mieltä, kirjoita aiheesta sopiva englanninkielinen ilmoitus bugzillaan.
  • missing keyword tarkoittaa, ettei sovellusta ole testattu koko arkkitehtuurilla vielä. Pyydä arkkitehtuurin ylläpitoa testaamaan, tai kerro omista testituloksista englanniksi bugzillaan.
  • package.mask tarkoittaa, että paketti on viallinen, epästabiili, tai jotain pahempaa, ja kehittäjä on merkannut sen käyttökelvottomaksi.
  • profile tarkoittaa, että paketti ei sovi tämän järjestelmän profiiliin. Sovellus saattaa rikkoa tämän järjestelmän asennettuna, tai sitten se ei vain sovi käytettyyn profiiliin.

Puuttuvat riippuvuudet

Koodilistaus 4.5: Portagen varoitus puuttuvasta riippuvuudesta

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

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

Sovellus, jota asennetaan, vaatii sovelluksen, jota ei ole saatavilla tähän järjestelmään. Selaa bugzillaa, josko tämä olisi tunnettu virhe, ja jollei ole, tee siitä vikailmoitus. Jollet käytä useampia versiohaaroja (testausta ja stabiilia) sekaisin, tämän virheen ei pitäisi esiintyä, ja se on siis ilmoitettava bugi.

Monimerkityksiset ebuildien nimet

Koodilistaus 4.6: Portagen varoitus monimerkityksisistä nimistä

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

    dev-libs/aterm
    x11-terms/aterm

Asennettava sovellus on saman niminen kuin joku toinenkin paketti. Tällöin sille pitää määritellä myös kategoria. Portage kertoo mahdolliset vaihtoehdot joista valita.

Edestakaiset riippuvuudet

Koodilistaus 4.7: Portagen varoitus edestakaisista riippuvuuksista

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

Asennettavista sovelluksista kaksi tai useampi riippuu toisistaan, eikä niitä voi asentaa. Tämä on todennäköisesti ongelma Portagepuussa. Koeta uudelleen-rsyncata ja asentaa uudelleen. Voit myös selata läpi bugzillaa, josko ongelma olisi tiedossa, ja ilmoitta, jollei ole.

Haku epäonnistui

Koodilistaus 4.8: Portagen varoitus epäonnistuneesta hausta

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

Portage ei saanut haettua lähdekoodeja ja yrittää jatkaa asennusta ilman (jos mahdollista). Tämä virhe johtuu usein siitä, että peilipalvelimet eivät ole ajan tasalla, tai että ebuild osoittaa väärään paikkaan. Myös lähdekoodeja majoittavassa palvelimessa saattaa olla ongelmia.

Koeta uudelleen tunnin päästä nähdäksesi jos ongelma jatkuu.

Järjestelmäprofiilin suojaus

Koodilistaus 4.9: Portagen varoitus profiilisuojatuista paketeista

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

Yritetään poistaa pakettia, joka kuuluu järjestelmän välttämättömiin paketteihin. Tällainen paketti on merkitty profiiliin, eikä sitä pitäisi koskaan poistaa järjestelmästä.

Digestin varmennusvirheet

Joskus paketin asennus epäonnistuu seuraavalla virheilmoituksella:

Koodilistaus 4.10: Digest-virhe

>>> Verifying ebuild Manifests...

!!! Digest verification failed:
!!! /usr/portage/virtual/c++-tr1-memory/c++-tr1-memory-0.ebuild
!!! Reason: Failed on MD5 verification
!!! Got: cccc4738cc08ac3c67b14932c85d7cb2
!!! Expected: cccc4738cc08ac3c67b14932c85d7cb3

Tämä tarkoittaa, että Portage-puussa on jotain vialla, yleensä niin, että kehittäjä on tehnyt virheen paketin lisäämisessä puuhun.

Varmennusvirheen tapahtuessa ei kannata yrittää korjata ongelmaa itse. Komento ebuild foo digest ei korjaa ongelmaa, vaan tekee sen pahemmaksi.

Sen sijaan kannattaa odottaa tunti tai pari. Yleensä tällaiset virheet huomataan välittömästi, mutta korjauksen eteneminen puuhun asti saattaa kestää tovin. Odottaessa kannattaa selailla Bugzillasta, josko joku muu olisi huomannut ja ilmoittanut vian. Jollei, kannattaa tehdä uusi bugi-ilmoitus siitä.

Kun vika on korjattu, tarvitsee vain synkata puu uudestaan.

Tärkeää: Edes tämän vian sattuessa ei ole sallittua synkata puuta useampaa kertaa päivässä! Rsync-käytännön mukaan (se viesti emerge --syncin alussa) useasti päivässä synkkaavat käyttäjät bännätään. Kannattaa siis odottaa seuraavaan synkkauskertaan.

2. USE-asetukset

2.a. Mitä USE-asetukset ovat?

USE-asetusten tarkoitus

Gentoota (kuten muita distroja tai käyttöjärjestelmiäkin) asennettaessa tehdään valintoja käyttöympäristön mukaan. Palvelimen asetukset ovat erilaiset kuin työaseman ja pelikone näyttää erilaiselta kuin 3D-kehittäjän kone.

Tämä vaikuttaa paitsi asennettuihin paketteihin myös pakettien ominaisuuksiin. Jos OpenGL:lle ei ole tarvetta, ei varmaankaan ole järkevää pitää kaikissa sovelluksissa OpenGL-tukea mukana. Jos KDE ei ole käytössä, et varmasti myöskään halua kääntää KDE-tukea mukaan paketteihin, jotka eivät välttämättä sitä tarvitse.

Auttaaksemme käyttäjiä valitsemaan asennettavat paketit ja aktivoitavat toiminnallisuudet haluamme käyttäjän määrittelevän käyttöympäristönsä yksinkertaisella tavalla. Käyttäjän tarvitsee valita mitä haluaa helpottaakseen Portagea, paketinhallintajärjestelmäämme, tekemään järkeviä päätöksiä.

USE-asetusten määritelmä

Tutustukaamme USE-asetuksiin. Jokainen asetus on totuusarvoinen avainsana joka sisältää tiedon jonkin käsitteen tuista ja riippuvuuksista. Valitessasi USE-asetuksen kerrot Portagelle haluavasi tuen avainsanan tarkoitteelle. Tämä tietenkin vaikuttaa paketin riippuvuustietoihinkin.

Tarkastelkaamme asioita esimerkin kde avulla. Jollei tätä avainsanaa ole määritetty USE-muuttujissasi, kaikki paketit joissa on valinnainen KDE-tuki kääntyvät ilman sitä. Samoin kaikki paketit jotka vaihtoehtoisesti ovat riippuvaisia KDE:stä jättävät KDE:n vaihtoehtoiset kirjastoriipuvuudet asentamatta. Jos taas kde-avainsana on määritelty, KDE-tuki käännetään mukaan ja KDE-kirjastot asennetaan riippuvuuksien mukaan.

Oikein määritellyillä avainsanoilla saadaan aikaan järjestelmä joka on tarkalleen räätälöity tarpeitasi varten.

Mitä USE-asetuksia on olemassa?

USE-asetuksia on kahta lajia: globaaleja ja paikallisia.

  • Globaalit USE-asetukset ovat useampien pakettien käytössä järjesetelmänlaajuisesti. Näitä useimmat käyttäjät pitävät USE-asetuksin.
  • Paikalliset USE-asetukset ovat vain yhden paketin käytössä pakettikohtaisia asetuksia varten.

Listaus käytössä olevista USE-asetuksista on saatavilla verkosta tai paikallisen järjestelmän tiedostosta /usr/portage/profiles/use.desc.

Luettelo paikallisista USE-asetuksista on tiedostossa /usr/portage/profiles/use.local.desc.

2.b. USE-asetusten käyttäminen

Pysyvien USE-asetusten määritteleminen

Nyt kun olet toivottavasti vakuuttunut USE-asetusten tärkeydestä, opastamme USE-asetusten määrittelyssä.

Kuten aiemmin huomattiin, USE-asetukset määritellään USE-muuttujaan. Helpottaaksemme käyttäjien tehtävää USE-asetusten valinnassa olemme valmiiksi tarjonneet oletusasetuksia. Oletusasetuksiin on valittu kokoelma USEja joita uskomme valtaosan Gentoon käyttäjistä käyttävän. Nämä oletukset löytyvät profiilihakemistojen tiedostoista make.defaults. 2004.3 asetukset näyttivät tältä:

Koodilistaus 2.1: /usr/portage/profiles/default-linux/x86/2004.3/make.defaultsin koottu USE-muuttuja

(Tämä esimerkki saattaa olla muuttunut sen ottamisen jälkeen)
USE="x86 oss apm arts avi berkdb crypt cups encode foomaticdb gdbm gif gpm gtk
     imlib jpeg kde gnome libg++ libwww mad mikmod motif mpeg ncurses nls
     oggvorbis opengl pam pdflib png python qt3 qt4 quicktime readline sdl slang
     spell ssl svga tcpd truetype X xml2 xmms xv zlib"

Voinet huomata että muuttujaan on jo määritelty aika monia avainsanoja. Älä käytä mitään tiedostoja make.defaults muuttaaksesi USE-asetuksia; nämä muutokset häviävät Portagen päivitysten mukana!

Oletusasetusten muuttaamiseksi tulee poistaa avainsanoja USE-muuttujasta. Järjestelmänlaajuisesti tämän voi tehdä muuttamalla USE-muuttujaa tiedostossa /etc/make.conf. Tähän muuttujaan voi lisätä tarvittuja USE-asetuksia tai poistaa niitä joita ei haluta, poistaminen tapahtuu lisäämällä miinus ’-’ avainsanan eteen.

Jos esimerkiksi halutaan poistaa KDE- ja QT-tuki mutta lisätä ldap, merkitään USE-muuttuja tiedostoon /etc/make.conf seuraavasti:

Koodilistaus 2.2: Esimerkki USE-asetuksesta tiedostossa /etc/make.conf

USE="-kde -qt3 -qt4 ldap"

USE-asetusten määrittely pakettikohtaisesti

Joskus on järkevää määritellä jokin USE-asetus vain muutamalle paketille, muttei suinkaan kaikille. Tällöin on parasta luoda hakemisto /etc/portage, jollei sitä ole vielä, ja lisätä hakemistoon tai tiedostoon /etc/portage/package.use. Lisätietoja tästä löytyy ohjesivulta man portage. Seuraavat esimerkit olettavat package.use-tiedoston.

Koodilistaus 2.3: /etc/portage/package.usen paikallinen asetuslisäys

dev-db/mysql berkdb

On myös mahdollista poistaa joitain USE-asetuksia pakettikohtaisesti, esimerkiksi poistetaan java PHP:stä:

Koodilistaus 2.4: /etc/portage/package.usen paikallinen asetuspoisto

dev-php/php -java

Väliaikaisten USE-asetusten tekeminen

Joskus on tarve käyttää USE-muuttujaa vain kerran. Sen sijaan että tässä tapauksessa joutuisi muokkaamaan tiedostoa /etc/make.conf kahdesti (asetuksen lisäämiseksi ja poistamiseksi), voidaan USE-muuttuja määritellä ympäristömuuttujana.

Esimerkkinä poistamme hetkellisesti javan USE-asetuksista Mozillan asentamisen ajaksi.

Koodilistaus 2.5: USEn käyttäminen ympäristömuuttujalla

# USE="-java" emerge seamonkey

Tärkeysjärjestys

Tietenkin näillä eri USE-muuttujilla on tietty prioriteettijärjestys, eikä ole järkevää sanoa USE="-java" vain nähdäkseen että java kuitenkin on päällä korkeampiarvoisen asetuksen takia. Asetukset luetaan siis seuraavassa tärkeysjärjestyksessä (ensimmäisenä vähiten tärkeä):

  1. Oletusasetukset profiilin tiedostoissa make.defaults
  2. käyttäjän määrittelemät asetukset tiedostossa /etc/make.conf
  3. käyttäjän määrittelemät USE-asetukset ympäristömuuttujassa.

Nähdäksesi lopullisen USEn muodon käytä komentoa emerge info. Se antaa listauksen kaikista Portagelle merkittävistä muuttujista (ml. USE-asetukset) nykyisine sisältöineen.

Koodilistaus 2.6: emerge infon suorittaminen

# emerge --info

Järjestelmä mukauttaminen uusiin USE-asetuksiin

Kokonainen järjestelmä pystytään päivittämään vastaamaan täysin muutettuja USE-asetuksia emergen valitsimella --newuse:

Koodilistaus 2.7: Järjestelmän uudelleenkääntäminen

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

Seuraavaksi Portagen depclean-toiminnolla poistetaan ne vaihtoehtoiset riippuvuudet mitkä kuuluivat vanhaan järjestelmääsi mutta eivät sisälly nykyisiin USE-asetuksiin.

Varoitus: emerge depclean on vaarallinen komento ja sitä käytettäessä on noudatettava varovaisuutta. Varmista että annettu lista "vanhentuneista" paketeista ei sisällä paketteja jotka ovatkin tarpeellisia. Seuraavassa esimerkissä käytetään valitsinta -p listauksen tuottamiseen ilman varsinaista poistotoimintoa.

Koodilistaus 2.8: Vanhentuneiden pakettien poisto

# emerge -p --depclean

Depclean-toiminnon loputtua päivitä dynaamisesti äskettäin päivittyneitä kirjastoja vastaan linkittyvät sovellukset komennolla revdep-rebuild. Tämä komento on osa gentoolkit-pakettia, joten se pitää tietenkin asentaa ennen käyttämistä.

Koodilistaus 2.9: Revdep-rebuildin suorittaminen

# revdep-rebuild

Tämän jälkeen järjestelmä onkin täysin tuoreiden USE-asetusten mukainen.

2.c. Pakettikohtaiset USE-asetukset

Mahdollisten USE-asetusten tarkastelu

Otetaan esimerkiksi seamonkey, mitä USE-asetuksia se totteleekaan? Selvittääksemme annamme komennolle emerge valitsimet --pretend (teeskentelemme asennusta tekemättä mitään) ja --verbose (katselemme monisanaista tulostetta):

Koodilistaus 3.1: USE-asetusten katselu

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

Calculating dependencies ...done!
[ebuild  N    ] net-www/seamonkey-1.7.12-r2 USE="crypt gnome java mozsvg ssl
truetype xprint -debug -ipv6 -ldap -mozcalendar -mozdevelop -moznocompose
-moznoirc -moznomail -moznoxft -postgres -xinerama" 0 kB

emergen lisäksi on myös muita työkaluja tätä varten. Itse asiassa equery on jopa pääasiallisesti tarkoitettu pakettien tiedon tarkasteluun. Se sijaitsee gentoolkit-paketista. Ensin siis asennetaan gentoolkit:

Koodilistaus 3.2: gentoolkitin asennus

# emerge gentoolkit

Komento equery argumentilla uses näyttää nyt annetun paketin USE-muuttujat. Esimerkiksi katsomme gnumericia:

Koodilistaus 3.3: Using equery to view used USE-flags

# 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. Portagen ominaisuudet

3.a. Portagen ominaisuudet

Portagessa on muutamia ominaisuuksia, joiden avulla Gentoota on mukavampi käyttää. Monet näistä liittyvät joihinkin työkaluohjelmiin, joilla saadaan järjestelmän suorituskykyä, luotettavuutta, turvallisuutta ja niin poispäin parannettua.

Portagen ominaisuuksia muutetaan tiedoston /etc/make.conf FEATURES-muuttujalla, johon ominaisuudet kirjoitetaan välilyönnein eroteltuna. Toisinaan joudutaan myös asentamaan erillinen työkaluohjelma, johon ominaisuus liittyy.

Kaikkia Portagen ominaisuuksia ei luetteloida täällä; täyden ajantasaisehkon luettelon löydät make.confin man-sivuilta:

Koodilistaus 1.1: make.confin man-sivujen tarkastelu

$ man make.conf

Komennolla emerge --info voi tarkastella myös nykyisiä FEATURES-asetuksia. Etsi tulosteesta rivi FEATURES tai hae se vaikkapa grepin avulla.

Koodilistaus 1.2: Nykyisten FEATURES-arvojen tarkastelu

$ emerge --info | grep FEATURES

3.b. Rinnakkaisjärjestelmien käyttö kääntämisessä

Distcc:n käyttö

distcc on ohjelma joka osaa jakaa käännökset useammalle, jopa erilaiselle, verkotetulle koneelle. distcc-asiakasohjelma lähettää tarpeelliset tiedot kaikille saatavilla oleville distcc-palvelimille (käynnistetyille distccd-palveluille), jotta ne voivat kääntää osia koodista asiakkaan puolesta. Tästä netotaan yleensä vähemmän käännösaikaa.

Tarkemmin tietoa distcc:stä (ja sen käytöstä Gentoo-järjestelmissä) löydät erillisestä Gentoo Distcc-dokumentistamme.

Distcc:n asennus

Distcc:n mukana tulee graafisia valvontaohjelmia joilla voi tarkastella lähetettyjä käännöksiä. Jos käytät Gnomea, lisää gnome USE-asetuksiisi. Jollet käytä Gnomea ja tarvitset silti valvontaohjelmaa, käytä USE-asetusta gtk.

Distcc:n asennus on helppoa kuten kaikkien muidenkin Gentoon ohjelmistojen:

Koodilistaus 2.1: Distcc:n asennus

# emerge distcc

Portagen tuen aktivointi

Aloita avaamalla tiedosto /etc/make.conf ja lisää muuttujaan FEATURES arvo distcc. Sitten muuta muuttujaa MAKEOPTS siten, että siinä sanotaan -jX, missä X on verkossa olevien distccd:tä ajavien prosessorien määrä (nämä mukaanlukien) lisättynä yhdellä:

Koodilistaus 2.2: /etc/make.confin MAKEOPTS-asetus

# Oletetaan kaksi yhden prosessorin järjestelmää tämän
lisäksi:
MAKEOPTS="-j4"

Seuraavaksi lisää distcc-configilla käytettävät DistCC-palvelimet. Esimerkissä käytämme palvelimia osoitteissa 192.168.1.102 (tämä kone), 192.168.1.103 ja 192.168.1.104 (kaksi etäkonetta):

Koodilistaus 2.3: Distcc:n asettaminen etäkoneita varten

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

Älä tietenkään unohdaa käynnistää itse distccd-palvelua:

Koodilistaus 2.4: Distccd-palvelun käynnistäminen

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

3.c. Cachettava käännösprosessi

Yleistä ccachesta

ccache on nopea kääntäjän välimuisti. Ohjelmaa käännettäessä se tallentaa tulokset jotta saman ohjelman uusien kääntöjen ajat nopeutuisivat. Yleisissä käännöksissä nopeutus on jotain viisin-, kymmenkertaisen luokkaa.

Jos haluat tietää tarkemmin ccachen käyttäytymisestä, vieraile ccachen kotisivuilla.

ccachen asennus

Ccache asennetaan Gentooseen käyttämällä emergeä:

Koodilistaus 3.1: ccachen asennus

# emerge ccache

Ccachen lisäys Portageen

Avaa tiedosto /etc/make.conf ja lisää muuttujaan FEATURES arvo ccache. Lisää myös muuttuja CCACHE_SIZE tiedostoon ja aseta arvoksi vaikkapa 2G:

Koodilistaus 3.2: CCACHE_SIZEn muokkaus tiedostossa /etc/make.conf

CCACHE_SIZE="2G"

Jos epäilet ccachen toimivuutta, komennolla ccache -s saa näkyviin joitain statistiikkatietoja. Koska Portagella on oma ccachen kotihakemistonsa, se pitää asettaa CCACHE_DIR-muuttujaan:

Koodilistaus 3.3: ccachen statistiikkatietojen katselu

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

/var/tmp/ccache on Portagen oletusarvo ccache-hakemistolle, tätä voi muuttaa asettamalla muuttujan CCACHE_DIR tiedostossa /etc/make.conf.

Kuitenkin ccachea ajettaessa sen oma oletus on ${HOME}/.ccache. Tämän takia muuttuja CCACHE_DIR pitää olla asetettuna kun Portagen ccache-tilastoja katsellaan.

Ccachen käyttö Portagen ulkopuolella C-koodin kanssa

Jos aiot käyttää ccachea Portagen ulkopuolella kääntäessäsi itse C-kielistä koodia, lisää /usr/lib/ccache/bin polkumuuttujan PATH alkuun (erityisesti ennen kohtaa /usr/bin). Tähän päästään muokkaamalla tiedostoa ~/.bash_profile, joka on yksi mahdollisuus ympäristömuuttujien säätämiseen:

Koodilistaus 3.4: ~/.bash_profilen muokkaus

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

3.d. Binääripaketit

Esikäännettyjen binääripakettien luonti

Portagessa on tuki esikäännettyjen pakettien asentamiselle. Vaikka Gentoo-projekti ei tarjoa esikäännettyjä paketteja itse (pl. GRP-otokset), Portage voidaan määrätä tekemään ja käyttämään näitä.

Esikäännetyn paketin voi tehdä komennolla quickpkg, jos paketti on jo asennettu järjestelmään, tai emergen valitsimilla --buildpkg tai --buildpkgonly.

Jos haluat Portagen luovan esikäännetyt paketit kaikista asennetuista ohjelmista, lisää buildpkg FEATURES-muuttujaan.

Laajempi tuki esikäännetyille paketeille on catalystissä. Lisätietoa tästä saat Catalyst Reference Manual ja Catalyst Howto -sivuilta.

Esikäännettyjen pakettien asentaminen

Vaikkei Gentoolla ole omaa esikäännetyjen pakettien palvelinta, voit tehdä sellaisen itsellesi pakettien säilyttämiseen. Käyttääksesi tällaista palvelinta sinun täytyy kertoa Portagelle sen osoitteesta muuttujalla PORTAGE_BINHOST. Esimerkiksi jos esikäännetyt pakettisi ovat osoitteessa ftp://keskuspalvelin/gentoo:

Koodilistaus 4.1: PORTAGE_BIHOSTin asettaminen /etc/make.confiin

PORTAGE_BINHOST="ftp://buildhost/gentoo"

Kun asennat esikäännetyn paketin, lisää valitsin --getbinpkg emergen komentoon --usepkg-valitsimen kaveriksi. Ensimmäinen käskee emergeä lataamaan esikäännetyt paketit aiemmin mainitulta palvelimelta ja toinen koettamaan asentaa esikäännettyä pakettia ennen ryhtymistä kääntämiseen.

Esimerkiksi gnumeric asennettaisiin esikäännettynä näin:

Koodilistaus 4.2: Esikäännetyn Gnumericin asentaminen

# emerge --usepkg --getbinpkg gnumeric

Lisätietoa esikäännetyistä paketeista on emergen man-sivuilla.

Koodilistaus 4.3: Emergen man-sivun tarkastelu

$ man emerge

3.e. Tiedostojen haku

Rinnakkaishaku

Kun asennetaan useita paketteja, Portage voi hakea seuraavan paketin tiedostoja edellistä asennettaessa, joka lyhentää kokonaisasennusaikaa. Tämän saa päälle FEATURES-asetuksella ”parallel-fetch”.

Userfetch

Kun Portagea suoritetaan roottina, FEATURES="userfetch" saa Portagen tiputtamaan rootin oikeudet haun ajaksi. Tämä parantaa hieman tietoturvatasoa.

4. Initskriptit

4.a. Runlevelit

Järjestelmän käynnistys

Järjestelmän käynnistyessä liuta tekstiä soljunee ohitse. Jos katsot tarkkaan, ilmoitukset ovat samoja joka kerta. Tätä toimintojen sarjaa kutsutaan käynnistyssekvenssiksi ja se on (enimmäkseen) staattisesti määrätty.

Ensimmäisenä käynnistyslatain lataa asetustenmukaisen ytimen muistiin, jonka jälkeen suorittimelle annetaan käsky ytimen ajamisesta. Ytimen latauduttua se käynnistää omat rakenteensa ja ajaa init-prosessin.

Tämä prosessi varmistaa (/etc/fstabissa) määriteltyjen tiedostojärjestelmien liitokset ja käyttäkelpoisuuden. Tämän jälkeen suoritetaan hakemistossa /etc/init.d sijaitsevia palveluita jotka ovat käynnistykselle välttämättömiä.

Kun kaikki skriptit on vihdoin ajettu, init aktivoi terminaalit (yleensä, virtuaalikonsolit jotka löytyvät näppäilemällä Alt-F1, Alt-F2, jne.) liittämällä agetty-prosessin niihin. Tämä prosessi huolehtii kirjautumismuodollisuuksista ajamalla komennon login.

Initskriptit

init ei tietenkään suorita satunnaisesti skriptejä hakemistosta /etc/init.d. Se ei edes suorita kaikkia /etc/init.d:n skriptejä, vaan vain ne jotka on määrätty. Suoritettaviksi määrätyt skriptit löytyvät hakemistosta /etc/runlevels.

Ensiksi init ajaa kaikki /etc/runlevels/bootiin linkitetyt skriptit hakemistosta /etc/init.d. Yleensä suoritusjärjestys noudattaa aakkostusta, mutta joissakin skripteissä on riippuvuustietoja jotka käskevät järjestelmää käynnistämään muita ennen itseään.

Huomaa: Aakkosjärjestys jota noudatetaan on useissa tilanteissa POSIX-määritelmän mukainen, siis ääkköset eivät ole järjestyksessä ja aakkoset a-z esiintyvät tunnetussa järjestyksessä.

Kun kaikki /etc/runlevels/bootin skriptit on suoritettu, init jatkaa ajamalla skriptejä joihin on linkit hakemistossa /etc/runlevels/default. Järjestys vastaa jälleen aakkostettua riippuvuustietojen muokkaamaa käynnistyssarjaa.

Kuinka init toimii?

Tietenkään init ei päätä kaikkea itsestään. Se käyttää asetustiedostoja ratkaistessaan mitä toimintoja tulee suorittaa. Asetustiedosto löytyy sijainnista /etc/inittab.

Jos muistelet mitä käynnistyssekvenssistä kerrottiin äsken, niin ensimmäisenähän init liitti kaikki tiedostojärjestelmät. Tämän määrää asetustiedoston /etc/inittab seuraavannäköinen rivi:

Koodilistaus 1.1: Järjestelmän alustus tiedostossa /etc/inittab

si::sysinit:/sbin/rc sysinit

Rivillä käsketään initiä ajamaan komento /sbin/rc sysinit järjestelmän alustamiseksi. Skripti /sbin/rc pitää pitkälti huolen alustuskuvioista, joten voisi sanoa ettei initille jää paljoakaan tehtävää -- sehän vain delegoi alustustoiminnot muille prosesseille.

Seuraavaksi init suoritti kaikki ne skriptit joihin oli symboliset linkit hakemistossa /etc/runlevels/boot. Tästä toiminnosta määrää rivi:

Koodilistaus 1.2: Jatkoa järjestelmän alustukselle

rc::bootwait:/sbin/rc boot

Taas kutsutaan rc-skriptiä tekemään tehtäviä. Huomaa, että rc:lle annettu parametri (boot) on sama kuin /etc/runlevels:in alihakemisto jota käytetään.

Seuraavaksi init etsii asetustiedostosta runlevelin joka ajetaan. Tästä kerrotaan /etc/inittabissa rivillä:

Koodilistaus 1.3: Initdefault-rivi

id:3:initdefault:

Tässä tapauksessa (kuten valtaosassa Gentoita yleensä) runlevelin tunnus on 3. Tämän tiedon avulla init voi tarkastaa mitä tarvitaan runlevel 3:n käynnistämiseksi:

Koodilistaus 1.4: Runlevelien määritelmät

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

Kolmatta leveliä määrittävä rivi, jälleen kerran, käyttää rc-skriptiä palveluiden käynnistämiseen (tällä kertaa parametriksi tarjoillaan default). Jälleen huomaa että rc:n parametri on /etc/runlevelsin alihakemisto

rc:n lopetettua init päättää aktivoitavat virtuaalikonsolit ja niillä suoritettavat komennot:

Koodilistaus 1.5: Virtuaalikonsolien määritelmät

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

Mikä on runlevel?

Edellä huomattiin että init käyttää numeroita runlevelien tunnistamiseen. Runlevel on tila jota järjestelmä suorittaa, ja se sisältää joukon skriptejä (runlevel-skriptejä tai initskriptejä) jotka täytyy suorittaa tiloihin tullessa ja poistuttaessa.

Gentoossa on seitsemän runleveliä: kolme sisäiseen käyttöön ja neljä käyttäjän määriteltäviksi. Sisäiset ovat sysinit, shutdown sekä reboot ja ne toimivat kuten nimet antavat ymmärtää: käynnistävät järjestelmän, sammuttavat koneen ja uudelleenkäynnistävät.

Käyttäjän määrittelemät ovat ne, joihin liittyy /etc/runlevelsin alihakemistot: boot, default, nonetwork ja single. boot käynnistää kaikki järjestelmälle tarpeelliset palvelut joita muut runlevelitkin käyttävät. Jäljellä olevat kolme käynnistävät eri joukot palveluita: default liittyy päivittäiseen käyttöön, nonetwork verkottomaan ja single järjesetelmän korjailemiseen.

Initskriptien käsitteleminen

rc:n käynnistämiä skriptejä kustutaan initskripteiksi. Kaikki hakemiston /etc/init.d skriptit ymmärätävät parametreja start, stop, restart, pause, zap, status, ineed, iuse, needsme, usesme ja broken.

Palvelun käynnistämiseen, pysäyttämiseen ja uudelleenkäynnistämiseen käytetään parametreja start, stop ja restart vastaavasti:

Koodilistaus 1.6: Postfixin käynnistys

# /etc/init.d/postfix start

Huomaa: Vain palvelut jotka tarvitsevat (need) tätä palvelua pysähtyvät tai uudelleenkäynnistyvät. Muut riippuvaiset palvelut (ne jotka käyttävät (use) tätä palvelua) jäävät koskematta.

Pysäyttääksesi vain yhden palvelun jättäen siitä riippuvat palvelut käyntiin käytät komentoa pause:

Koodilistaus 1.7: Postfixin pysäytys pysäyttämättä riippuvia palveluja

# /etc/init.d/postfix pause

Jos haluat nähdä missä tilassa jokin palvelu on (käynnissä, pysäytetty, pause, ...), käytä komentoa status:

Koodilistaus 1.8: Postfixin tila

# /etc/init.d/postfix status

Jos tila näyttää siltä että palvelu olisi käynnissä vaikka tiedät sen olevan poissa päältä, voit nollata tilatiedon pysähtyneeksi komennolla zap:

Koodilistaus 1.9: Postfixin tilatiedon nollaus

# /etc/init.d/postfix zap

Riippuvuuksia saa selville parametreillä iuse ja ineed. ineed kertoo toiminnalle välttämättömät riippuvuudet, iuse taas palvelut joita voi käyttää hyväksi, mutta jotka eivät ole välttämättömiä.

Koodilistaus 1.10: Postfixin välttämättömien riippuvuuksien tarkastelu

# /etc/init.d/postfix ineed

Samoin voidaan katsella mitkä palvelut tarvitsevat annettua palvelua (needsme) tai mitkä voivat käyttää sitä (useme):

Koodilistaus 1.11: Postfixia tarvitsevien palvelujen tarkastelu

# /etc/init.d/postfix needsme

Lopulta voidaan tarkstella mitkä tarpeelliset riippuvuudet puuttuvat:

Koodilistaus 1.12: Postfixin puuttuvien riippuvuuksien tarkastelu

# /etc/init.d/postfix broken

4.b. Rc-updaten käyttäminen

Mikä on rc-update?

Gentoon käynnistysjärjestelmä käyttää riippuvuuspuuta päättääkseen palvelujen käynnistysjärjestyksen. Tehtävä on hankala, joten käyttäjiltä on säästetty sen tekemisen vaivaa; tekemämme työkalut helpottavat runlevelien ja initskriptien ylläpitoa.

Komennolla rc-update voit lisätä ja poistaa initskriptejä runleveliltä. rc-update päivittää riippuvuuspuun automaattisesti komennolla depscan.sh.

Palveluiden lisäys ja poisto

Asennuksen aikaan olet jo lisännyt default-runlevelille joitain initskriptejä. Silloin defaultin merkitys ei kai ollut vielä selvä, mutta nyt varmaan tiedetään tarkemmin mitä se tekee. rc-updaten toiseksi komennoksi pitää antaa toiminnon nimi: add, del tai show.

Skriptin lisäyksessä ja poistossa rc-updatelle annetaan komennot add ja del, vastaavasti, ja perään skriptin nimi ja runlevelin nimi. Esimerkiksi:

Koodilistaus 2.1: Postfixin poisto default runlevelistä

# rc-update del postfix default

Komennolla rc-update -v show saadaan esiin listaus initskripteistä ja niihin liitetyistä runleveleistä:

Koodilistaus 2.2: Initskriptien tietojen tarkastelu

# rc-update -v show

Komennolla rc-update show ilman -v:tä näkee päällä olevat initskriptit runleveleineen.

4.c. Palvelujen asettaminen

Mihin tarvitaan ylimääräisia asetuksia?

Initskriptit voivat olla kovinkin monimutkaisia. Siksi ei varmaankaan ole mielekästä ihmisten suoraan niitä editoida, se lisäisi virhealttiuttakin huomattavasti. On kuitenkin tärkeää että palvelun asetuksia voi muuttaa, esimerkiksi niille voi tarvita antaa lisäparametreja.

Toinen syy erillisiin asetustiedostoihin on initskriptien päivitettävyyden mahdollistaminen sotkematta käyttäjän asetuksia.

Hakemisto /etc/conf.d

Gentoossa palvelujen asetukset on helppo tehdä: jokaisella asetettavissa olevalla skriptillä on asetustiedosto hakemistossa /etc/conf.d. Esimerkiksi apache2:n initskripti (/etc/init.d/apache2) tottelee asetuksia tiedostossa /etc/conf.d/apache2, mikä sisältää Apache 2 -palvelimelle meneviä käynnistysasetuksia:

Koodilistaus 3.1: Muuttuja tiedostossa /etc/conf.d/apache2

APACHE2_OPTS="-D PHP5"

Tällainen asetustiedosto sisältää vain ja ainoastaan muuttujia (aivan kuten /etc/make.conf), joten sitä on erittäin helppo säätää. Se myöskin mahdollistaa muuttujien toiminnan informatiivisen kommentoinnin.

4.d. Initskriptien kirjoittaminen

Onko se pakollista?

Skriptejä ei täydy kirjoittaa. Gentoo tarjoaa valmiiksi käyttöön jo skriptit kaikilla käytetyillä palveluille, joten omien kirjoittaminen ei useinkaan ole tarpeen. Kuitenkin, jos vaikkapa asensit palvelun Portagen ulkopuolelta saattaa olla tarpeellista luoda sille initskripti.

Älä käytä palvelujen omia initskriptejä jollei niitä ole erikseen kirjoitettu Gentoota varten; Gentoon initskriptit eivät ole yhteensopivia muiden jakeluiden initskriptien kanssa!

Sisällöt

Initskriptin perussisältö näyttää seuraavalta:

Koodilistaus 4.1: Initskriptin perussisältö

#!/sbin/runscript

depend() {
  (Tiedot riippuvuuksista)
}

start() {
  (Käynnistyskomennot)
}

stop() {
  (Sulkemiskomennot)
}

restart() {
  (Uudelleenkäynnistyskomennot)
}

Kaikissa initskripteissä pitää olla start()-funktio. Muut ovat vapaaehtoisia.

Riippuvuudet

Voidaan määritellä kahdentyyppisiä riippuvuuksia: use ja need. Kuten aiempana mainittiin, need on tiukempi vaatimus kuin use. Tällä riippuvuudella määritellään tarvittu palvelu tai virtuaalinen riippuvuus.

Virtuaalinen riippuvuus on sellainen jonka jokin palvelu täyttää, mutta sen täyttäviä palveluita on olemassa useampia. Initskripti voisi olla riippuvainen järjestelmälokista, mutta niitä on useita (metalogd, syslog-ng, sysklogd, ...). Koska ei ole mahdollista tarvita (need) jokaista niistä (eihän missään järjestelmässä kaikkia järjestelmälokeja ole käytössä), nämä palvelut varmasti tarjoavat (provide) sopivan virtuaalisen riippuvuuden.

Katsokaamme esimerkiksi postfixin riippuvuuksia.

Koodilistaus 4.2: Postfixin riippuvuudet

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

Kuten näet, postfix:

  • vaatii toimivan (virtuaalisen) net-riippuvuuden (jonka voi tarjota vaikkapa /etc/init.d/net.eth0)
  • käyttää (virtuaalista) logger-riippuvuutta (jonka esimerkiksi /etc/init.d/syslog-ng tarjoaa)
  • käyttää (virtuaalista) dns-riippuvuutta (jonka esimerkiksi /etc/init.d/named tarjoaa)
  • tarjoaa (virtuaalisen) mta riippuvuuden (joka liittyy kaikkiin postipalvelimiin)

Järjestyksen määrittäminen

Joissain tapauksissa ei ole tarpeellista vaatia jotain palvelua, vaan saada vain se käynnistämään ennen (before) tai jälkeen (after) määrättyä palvelua, jos sellainen järjestelmästä löytyy (ja vain jos löytyy - kyseessä ei ole enää riippuvuus), ja jos se on samalla runlevelillä (ja vain jos runlevel on sama - muihin ei puututa). Nämä tiedot voidaan laittaa asetuksiin before ja after.

Esimerkkinä tarkastelemme Portmapin asetuksia:

Koodilistaus 4.3: Portmapin depend()-funktio

depend() {
  need net
  before inetd
  before xinetd
}

Jokerimerkillä "*" valitaan kaikki samalla runlevelillä olevat toiminnot, tämän käyttö ei kuitenkaan ole suositeltavaa.

Koodilistaus 4.4: Initskriptin ajaminen runlevelin ensimmäisenä

depend() {
  before *
}

Standardifunktiot

Seuraavaksi toiminnallisuuden depend() jälkeen täytyy määritellä start()-funktio. Se sisältää kaikki palvelun käynnistämiseen tarvittavat komennot. On järkevää kertoa käyttäjälle tapahtumista käskyillä ebegin ja eend:

Jos palvelun pitää kirjoittaa levylle, se tarvitsee localmountin. Jos palvelu kirjoittaa /var/runiin jotain, kuten pidin, se käynnistetään bootmiscin jälkeen:

Koodilistaus 4.5: depend()-esimerkki

depend() {
  need localmount
  after bootmisc
}

Koodilistaus 4.6: start()-esimerkki

start() {
  ebegin "Palvelu käynnistyy"
  start-stop-daemon --start --quiet --exec /hakemisto/polku/palveluun
  eend $?
}

Valitsimet --exec ja --pidfile yleensä tarvitaan sekä startissa että stopissa. Jos palvelu ei kirjoita pidiään tiedostoon, valitsin --make-pidfile auttaa, mutta tämä kannattaa testata varmuuden varaksi. Muussa tapauksessa ei kannata käyttää pid-tiedostoja. start-stop-daemonille voi myös antaa valitsimen --quiet, mutta tämä ei ole suositeltavaa, ellei palvelu tulosta suurta määrää tietoja. --quiet-valitsimen käyttö haittaa vianetsintää, jos palvelu ei käynnisty.

Huomaa: Varmista, että --exec osoittaa palveluun, eikä esimerkiksi kuoriskriptiin, joka käynnistää palvelun ja loppuu, sillä se on initskriptin tehtävä.

Lisäesimerkkejä start()-funktion toteutuksista löytyy valmiista skripteistä hakemistossa /etc/init.d/.

Muut määriteltävät funktiot ovat stop() ja restart(). Näitä ei ole pakko määritellä! Init-järjestelmämme pystyy täyttämään nämä kohdat itsekin jos komentoa start-stop-daemon on käytetty.

Vaikka stop() ei ole pakollinen, tässä on esimerkki:

Koodilistaus 4.7: stop()-esimerkki

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

Jos palvelu suorittaa muita skriptejä (vaikkapa bashia, pythonia tai perliä) ja skripti muuttaa nimeään (vaikkapa foo.py:stä fooksi), lisää valitsin --name start-stop-daemonille. Täsää kerrotaan nimi, joksi skripti muuttuu. Tässä esimerkissä palvelu käynnistyy foo.pynä ja muuttuu fooksi.

Koodilistaus 4.8: Palvelu joka käyttää foo-skriptiä

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

Start-stop-daemonilla on loistava ohje-sivu:

Koodilistaus 4.9: Start-stop-daemonin ohjesivun lukeminen

$ man start-stop-daemon

Gentoon initskriptit ovat syntaksiltaan lähinnä bashia (Bourne Again Shell), joten niissä voi käyttää bashmaisia rakenteita missä vain.

Mukailtujen asetusten lisäily

Jos tarvitset initskriptiin enemmän parametrejä kun mihin me olemme törmänneet, lisää nimi opts-muuttujaan ja tee nimeä vastaava funktio. Esimerkiksi tuki restartdelay-komennolle lisättäisiin seuraavasti:

Koodilistaus 4.10: Tuki restartdelay-komennolle

opts="${opts} restartdelay"

restartdelay() {
  stop
  sleep 3    # Odota uudelleenkäynnistysta 3 sekuntia
  start
}

Palvelujen asetusmuuttujat

Hakemistossa /etc/conf.d sijaitsevien asetustietojen tukemiseen ei tarvita mitään muuta: kun initskripti käynnistyy nämä tiedostot sourcetetaan (eli niiden muuttujat tulevat käytettäviksi):

  • /etc/conf.d/<initskriptisi>
  • /etc/conf.d/basic
  • /etc/rc.conf

Lisäksi jos initskripti tarjoaa virtuaalisen riippuvuuden (kuten netin), siihen liittyvä tiedostokin (kuten /etc/conf.d/net) sourcetetaan.

4.e. Runlevelin toiminnan muuttaminen

Kuka tällaisesta hyötyisi?

Useille kannettavien käyttäjille tuttu tilanne: kotona ollessa pitää saada käyntiin net.eth0 kun taas matkoilla ei (kun ei verkkoakaan ole saatavilla). Gentoossa runleveleitä voi muokata mielensä mukaan.

Esimerkiksi voisi luoda toisen käynnistyvän default-runlevelin, joka ajaisi erilaiset initskriptit. Sitten käynnistysaikaisesti voisi valit minkä runlevelin haluaa.

Softlevelin käyttö

Aloita tekemällä runlevel toista defaulttia varten. Esimerkkinä käytämme offlineä:

Koodilistaus 5.1: Runlevel-hakemiston luonti

# mkdir /etc/runlevels/offline

Lisää tarvittavat initskriptit uusille runleveleille. Esimerkiksi yksityiskohtainen kopio nykyisestä defaultista ilman net.eth0:aa saadaan aikaan näin:

Koodilistaus 5.2: Tarvittavien initskriptien lisäys

(Kopioi kaikki palvelut oletusrunleveliltä offlineen)
# cd /etc/runlevels/default
# for service in *; do rc-update add $service offline; done
(Poista tarpeettomat)
# rc-update del net.eth0 offline
(Katso offlinen aktiiviset palvelut)
# rc-update show offline
(Pätkä esimerkkitulostetta)
               acpid | offline
          domainname | offline
               local | offline
            net.eth0 |

Vakka net.eth0 ei ole offline-runlevelillä, udev yrittää käynnistää sen joka tapauksessa kun huomaa laitteen. Siksi on tarpeellista lisätä verkkolaitteet, joita ei käynnistetä (sekä muut asiat, joita ei käynnistä udeviltä) tiedostoon /etc/conf.d/rc seuraavasti:

Koodilistaus 5.3: Palvelujen poisto tiedostosta /etc/conf.d/rc

RC_COLDPLUG="yes"
(Kirjoitetaan palvelut, joita ei käynnistetä)
RC_PLUG_SERVICES="!net.eth0"

Huomaa: Lisätietoja palveluista on tiedoston kommenteissa.

Seuraavaksi editoidaan käynnistyslataimen asetustiedostoon kohta offline-runlevelille. Esimerkiksi tiedostoon /boot/grub/grub.conf:

Koodilistaus 5.4: Offlinen lisäys

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

Ja sitten kaikki olikin valmista. Jos nyt uudelleenkäynnistät järjestelmän ja valitset uuden valikkokohdan, offline-runlevel ajetaan defaultin asemesta.

Bootlevelin käyttö

bootleveliä käytetään täysin samoin kuin softleveliäkin. Ainoa ero on että tässä määriteltäisiin toinen boot-runlevel eikä toista defaulttia.

5. Ympäristömuuttujat

5.a. Ympäristömuuttujat

Mitä ne ovat?

Ympäristömuuttujat ovat nimettyjä olioita jotka sisältävät yhden tai useamman ohjelmiston käyttämää tietoa. Monet käyttäjistä (etenkin Linuxiin aiemmin tutustumattomat) pitävät näitä outoina ja hankalasti hallittavina, mutta ovat kuitenkin väärässä: ympäristömuuttujilla voi helposti ja kätevästi muuttaa ohjelman tai ohjelmien asetuksia.

Tärkeitä esimerkkejä

Seuraavassa taulukossa on muutamia Linux-järjestelmien muuttujia selityksineen. Esimerkkiarvot ovat taulukon alla.

Muuttuja Kuvaus
PATH Tässä muuttujassa on kaksoispistein eroteltu listaus hakemistoista joista suoritettavia tiedostoja etsitään. Kun suoritettavan komennon nimi annetaan (sellainen kuten ls, rc-update tai emerge), mutta vastaavaa tiedostoa ei löydy listatuista hakemistoista, sitä ei voida suorittaa (ellei suorituksessa nimetty ohjelman koko polkua, kuten /bin/ls).
ROOTPATH tämä muuttuja on muuten sama kuin PATH, mutta sen hakemistot tarkastetaan vain kun pääkäyttäjä antaa komentoja
LDPATH tämä muuttuja on kaksoispistein eroteltu lista hakemistoista, joista dynaaminen linkitin etsii kirjastotiedostoja
MANPATH tämä muuttuja on kaksoispistein eroteltu lista hakemistoista, joilta man-komento etsii ohjesivuja
INFODIR Tämä muuttuja on kaksoispistein eroteltu lista hakemistoista, joista info-komento etsii infosivuja
PAGER tämä muuttuja kertoo tiedostojen sisältöjen katselemiseen tarkoitetun ohjelman (kuten less tai more) täyden hakemistopolun
EDITOR tämä muuttuja kertoo tiedostojen sisältöjen muokkaamiseen tarkoitetun ohjelman (kuten nano tai vi) täyden hakemistopolun
KDEDIRS tämä muuttuja on kaksoispistein eroteltu lista hakemistoista, joista löytyy KDE-keskeistä tietoa.
CONFIG_PROTECT Tämä muuttuja on välilyönnein eroteltu lista hakemistoista, joita Portage ei automaattisesti päivitä
CONFIG_PROTECT_MASK Tämä muuttuja on välilyönnein eroteltu lista hakemistoista, jotka Portage kuitenkin päivittää automaattisesti.

Alla esimerkki näiden muuttujien arvoista.

Koodilistaus 1.1: Esimerkkimäärittelyjä

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. Muuttujien järjestelmänlaajuinen määrittäminen

Hakemisto /etc/env.d

Näiden muuttujien keskittämiseen Gentoossa on kehitetty hakemisto /etc/env.d. Tässä hakemistossa on joukko tiedostoja, kuten esimerkiksi 00basic, 05gcc jne., mitkä sisältävät muuttujia nimetyn sovelluksen käytettäväksi.

Esimerkiksi gcc:n asennuksessa ebuildi loi tiedoston 05gcc, joka sisältää seuraavat muuttujat:

Koodilistaus 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"

Muissa Linux-jakeluissa ympäristömuuttujia määritellään tiedostossa /etc/profile tai muissa paikoissa. Gentoossa taas muuttujien ylläpito on tehty käyttäjälle (ja Portagelle) helpoksi kun ei tarvitse kiinnittää huomiota kaikkiin mahdollisiin ympäristömuuttujia sisältäviin tiedostoihin.

Esimerkiksi gcc:n päivittäminen päivittää myös tiedoston /etc/env.d/05gcc ilman käyttäjän vuorovaikutusta.

Tästä on hyötyä Portagen lisäksi käyttäjälle. Toisinaan on tarve asettaa joitain järjestelmänlaajuisia muuttujia. Esimerkkinä käytämme http_proxyä, sitä varten luodaan uusi tiedosto (/etc/env.d/99local) johon sisällytetään määritelmä:

Koodilistaus 2.2: /etc/env.d/99local

http_proxy="proxy.example.com:8080"

Kun käytetään samaa tiedostoa kaikille omille muuttujille, niitä voidaan kätevästi tarkastella ja muuttaa yhdessä näkymässä.

Skripti nimeltä env-update

Useat tiedostot hakemistossa /etc/env.d määrittelevät polkumuuttujan PATH. Siinä ei ole mitään virheellistä; komento etc-update yhdistää moninkertaiset määrittelyt ympäristömuuttujia päivittäessään, joten pakettien (ja käyttäjien) on helppo lisäillä omia muuttujiaan välittämättä siitä onko se jo määritetty muualla.

Yhdistely ei koska kaikkia muuttujia, vain seuraavia: KDEDIRS, PATH, LDPATH, MANPATH, INFODIR, INFOPATH, ROOTPATH, CONFIG_PROTECT, CONFIG_PROTECT_MASK, PRELINK_PATH ja PRELINK_PATH_MASK. Muista käytetään viimeiseksi mainittua (eli /etc/env.d:stä aakkosjärjestyksessä poimittuna viimeistä).

env-udpate yhdistää muuttujat hakemiston /etc/env.d tiedostonimien mukaan numerojärjestyksessä. Tiedostonimien on alettava kahdella numerolla.

Koodilistaus 2.3: env-updaten päivitysjärjestys

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

Komento env-update luo kaikki ympäristömuuttujat tiedostoon /etc/profile.env (jonka /etc/profile puolestaan lataa). Se myös hakee tiedot muuttujasta LDPATH ja luo niistä tiedoston /etc/ld.so.conf, minkä jälkeen suoritetaan ldconfig dynaamisen linkittäjän tiedoston /etc/ld.so.cache luomiseksi.

Jos haluat nähdä env-updaten muutokset välittömästi, suorita seuraava komento ympäristön päivittämiseksi. Ne jotka asensivat Gentoon itse muistanevat tämän asennusohjeista:

Koodilistaus 2.4: Ympäristön päivitys

# env-update && source /etc/profile

Huomaa: Ylläolevat komennot päivittävät vain nykyisen terminaalin, uusien konsolien ja niiden lapsiprosessien muuttujat. Jos siis X11 on käytössä, pitää source /etc/profile kirjoittaa jokaiselle avatulle terminaalille tai uudelleenkäynnistää X, jotta uudet terminaalit saavat muuttujat. Jos käytössä on kirjautumisohjelma, uudelleenkäynnistys tapahtuu komennolla /etc/init.d/xdm restart, muutoin pitää kirjautua ulos X:stä ja takaisin sisään.

Tärkeää: Kuoren muuttujia ei voi käyttää osana muita muuttujia, eli tyyppiä FOO="$BAR" olevat määrittelyt eivät toimi, jossa $BAR olisi kuoren muuttuja.

5.c. Paikallisten muuttujien määrittely

Käyttäjäkohtaiset

Joskus ympäristömuuttujia ei haluta määritellä järjestelmänlaajuisiksi. Esimerkiksi käyttäjä voisi lisätä hakemiston /home/kayttaja/bin ja nykyisen hakemiston polkumuuttujaan PATH, mutta tätä eivät varmaankaan muut käyttäjät halua omiin polkuihinsa. Paikallinen ympäristömuuttuja määritellään tiedostossa ~/.bashrc tai ~/.bash_profile:

Koodilistaus 3.1: PATHin paikallinen laajennus tiedostossa ~/.bashrc

(Ylimääräinen kaksoispiste lasketaan viittaukseksi aina nykyiseen
hakemistoon)
PATH="${PATH}:/home/my_user/bin:"

PATH-muuttuja päivittyy seuraavassa sisäänkirjautumisessa.

Istuntokohtaiset

Joskus tarvitaan vieläkin tarkempia määritelmiä. Esimerkiksi käyttäjä voisi haluta suorittaa komentoja luomastaan väliaikaishakemistosta muuttamatta tiedostoa ~/.bashrc niiksi hetkiksi kun väliaikaista hakemistoa käytetään.

Tällöin voidaan määrittää PATH nykyistä istuntoa varten komennolla export. Silloin PATH-muuttuja säilyttää arvonsa uloskirjautumiseen saakka.

Koodilistaus 3.2: Istuntokohtaisen muuttujan määrittely

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

C. Portagen käyttö

1. Tiedosto ja hakemistot

1.a. Portagen käyttämät tiedostot

Asetukset

Portagen oletusasetukset ovat tiedostossa /etc/make.globals. Katsellessasi sitä huomannet, että Portagen kaikki asetukset määrittellään muuttujina. Portagen käyttämät muuttujat eritellään myöhempänä merkityksineen.

Koska jotkin asetukset vaihtelevat arkkitehtuureittain, Portagessa on myös eräs oletusasetusto profiilissa, johon symbolinen linkki /etc/make.profile osoittaa. Portagen asetukset ovat tiedostoissa make.defaults profiilihakemiston ja yliprofiilien hakemistojen varrella. Profiileista lisää tuonnempana, silloin myös kerromme mikä hakemisto /etc/make.profile oikein on.

Jos aioit muuttaa asetuksia, älä koskaan muokkaa tiedostoja /etc/make.globals tai make.defaults. Tiedosto /etc/make.conf on oikeampi ratkaisu, ja sillä on myös korkeampi arvo päällekkäisten asetusten ratkonnassa. Samasta paikasta löytyy myös tiedosto /etc/make.conf.example, joka nimensä mukaisesti sisältää esimerkkejä. Portage ei itse käytä tätä tiedostoa; siinä on vain esimerkkejä luettavaksi.

Portagen asetuksia voi muuttaa myös saman nimisillä ympäristömuuttujilla, mutta tällaista tapaa ei suositella.

Profiilikohtainen tieto

Törmäsimme jo aiempana hakemistoon /etc/make.profile directory. Tarkkaanottaenhan tämä tosin ei ole hakemisto, vaan symbolinen linkki profiilihakemistoon, joka oletusarvoisesti on jossakin hakemistossa /usr/portage/profiles, mutta on toki mahdollista luoda myös oma profiili ja linkittää siihen. Portage käyttää tämän profiilin osoittamaa hakemistoa.

Profiilissa on arkkitehtuurikohtaista tietoa Portagelle. Tähän lukeutuvat luettelo paketeista, jotka kuuluvat profiilin ydinjärjesetelmään, luettelo paketeista, jotka eivät toimi tällä alustalla (tai ovat muutoin estettyjä), ja niin edelleen.

Ohjelmakohtaiset asetukset

Kun jonkin ohjelman asentamiseksi pitää muuttaa Portagen käytöstä, on parasta muokata hakemiston /etc/portage tiedostoja. Suositellaan erittäin vahvasti, että käytät hakemiston /etc/portage tiedostoja, etkä käytä ympäristömuuttujia asetusten ylikirjoittamisessa.

Hakemistoon /etc/portage voi tehdä ainakin seuraavia tiedostoja:

  • package.maskiin luetellaan paketit, joita Portagen ei haluta asentavan ollenkaan
  • package.unmaskiin luetellaan paketit, jotka Portagen halutaan asentavan, vaikka Gentoon kehittäjät ovat tämän tarkoituksellisesti estäneet
  • package.keywords:iin luetellaan paketit, jotka Portegen halutaan asentavan, vaikka pakettia ei ole merkitty sopivaksi käytetylle alustalle tai järjestelmälle (vielä)
  • package.use:iin luetellaan USE-asetukset pakettikohtaisesti, sikäli kun ne järjestelmänlaajuisista USE-asetuksista poikkeavat.

Lisää tietoa hakemistosta /etc/portage ja täysi ajantasainen luettelo sen tiedostomahdollisuuksista on Portagen man-sivuilla:

Koodilistaus 1.1: Portagen man-sivun katselu

$ man portage

Portagen hakemistojen ja tiedostojen sijaintien muuttaminen

Edellisen kappaleen asetustiedostoja ei voida tallentaa muualle: Portage etsii niitä aina vain samoista paikoista. On kuitenkin olemassa muita hakemistoja ja sijainteja, joita Portage käyttää erinäisiin tarkoituksiin: buildaushakemisto, lähdekoodivarasto, ohjelmistohakemisto, ...

Kaikille näille on tunnetut oletussijainnit, mutta niitä voi mukauttaa maun mukaan asetustiedostossa /etc/make.conf. Loppukappale erittelee Portagen erityiset hakemistot, ja miten niiden sijaintia pystytään muuttamaan.

Tämä dokumentti ei ole kuitenkaan täysimittainen referenssi, jos haluat sellaista, katsele Portagen ja make.confin man-sivuja:

Koodilistaus 1.2: Portagen ja make.confin man-sivujen tarkastelu

$ man portage
$ man make.conf

1.b. Tiedostojen säilytys

Portagepuu

Portagepuun oletushakemisto on /usr/portage. Tämän kertoo PORTDIR-muuttuja. Jos Portagepuuta siirretään muualle (muuttujaa muokkaamalla). pitää symbolinen linkki /etc/make.profile päivittää vastaavasti.

Jos PORTDIR-muttujaa muutetaan, seuraaviakin kannattanee tarkistaa, jotta ne varmasti ovat selvillä muutoksesta. Tämä johtuu Portagen muuttujien käsittelystä: PKGDIR, DISTDIR ja RPMDIR.

Esikäännetyt binäärit

Vaikkei Portagen esikäännettyjen binäärien tuki ole oletusarvoisesti päällä, se on toki saatavilla. Kun Portagea käsketään käyttämään esikäännettyjä paketteja, se etsii niitä hakemistosta /usr/portage/packages. Tätä voidaan muuttaa muuttujalla PKGDIR.

Lähdekoodit

Ohjelmien lähdekoodeja säilytetään hakemistossa /usr/portage/distfiles oletusarvoisesti. Tätä voidaan muuttaa muuttujalla DISTDIR.

Portagen tietokanta

Portage tallentaa järjestelmän tilan (asennetut paketit tiedostotietoineen jne.) tiedostoon /var/db/pkg. Älä muuta tätä tiedostoa käsin, sillä se saattaa sotkea Portagen!

Portagen välimuisti

Portage pitää välimuistinaan (tiedostojen muuttamisajat, näennäispaketit ja riippuvuudet jne.) tiedostoa /var/cache/edb. Tämä tiedosto on tosiaan vain väliaikainen: sen voi tyhjätä sen milloin vain kun portagen sovelluksia ei ole käynnissä.

1.c. Ohjelmistojen buildaus

Portagen väliaikaistiedostot

Portagen väliaikaistiedostoja säilytetään hakemistossa /var/tmp oletusarvoisesti. Tätä voidaan muuttaa muuttujalla PORTAGE_TMPDIR.

Jos muutat PORTAGE_TMPDIR-muuttujaa, saattaa pitää tarkistaa myös seuraavia, jotta ne huomaisivat PORTAGE_TMPDIRin muutoksen. Tämä johtuu tavasta, jolla Portage käsittelee muuttujia: BUILD_PREFIX.

Buildaus-hakemisto

Portage luo pakettikohtaiset build-hakemistot jokaiselle emergen asennuskomennolle hakemiston /var/tmp/portage alle. Tätä voidaan muuttaa muuttujalla BUILD_PREFIX.

Käytettävän tiedostojärjestelmä sijainti

Oletusarvoisesti Portage asentaa kaiken nykyiseen tiedostojärjestelmään (/). Tätä voidaan muuttaa muuttujalla ROOT, ja vain ympäristömuuttujana. Sen pääasiallinen tarkoitus on uusien otosten luominen.

1.d. Lokiominaisuudet

Ebuildien loggaus

Portage luo ebuild-kohtaisesti lokitiedostoja, mutta vain jos PORT_LOGDIR-muuttuja on asetettu siten, että se osoittaa paikkaan, johon Portage (portage-käyttäjätunnus) voi kirjoittaa. Oletusarvoisesti tämä muuttuja on tyhjä, eli kytketty pois päältä. Jos PORT_LOGDIRiä ei ole asetettu, lokeja ei tehdä ollenkaan. Kuitenkin elogilta tulevia tietoja saattaa olla saatavilla. Jos PORT_LOGDIR on olemassa ja, elogilta tulevat viestit tallennetaan myös kuten jäljempänä on kuvattu.

Portagessa on tehokas lokiominaisuus, jota kutsutaan elogiksi:

  • PORTAGE_ELOG_CLASSES: Muuttuja määrittää mitä viestejä otetaan talteen. Mahdolliset arvot ovat välein eroteltuja yhdistelmiä luokista info, warn, error, log ja qa:
    • info: einfo-viestit
    • warn: ewarn-viestit
    • error: eerror-viestit
    • log: elog-viestit
    • qa: QA Notice -viestit
  • PORTAGE_ELOG_SYSTEM: Muuttuja määrittää moduulit, joilla loki hoidetaan. Tyhjä arvo poistaa lokin käytöstä. Muut mahdolliset arvot ovat välilyönnein eroteltuja yhdistelmiä arvoista save, custom, syslog, mail, save_summary ja mail_summary. Ainakin yhtä pitää käyttää, että elog toimisi.
    • save: Tallentaa tiedostoja hakemistoon $PORT_LOGDIR/elog, tai hakemistoon /var/log/portage/elog jos $PORT_LOGDIR on asettamatta.
    • custom: Lähettää lokitiedot komennolle $PORTAGE_ELOG_COMMAND, jonka käytöstä lisää tuonnempana.
    • syslog: Lähettää lokidataa syslogille.
    • mail: Lähettää lokit viestien muodossa osoitteeseen $PORTAGE_ELOG_MAILURI, josta lisää tuonnempana. Tämä ominaisuus on uusi Portageissa >=portage-2.1.1.
    • save_summary: kuten save, mutta kerää kaikki viestit tiedostoon $PORT_LOGDIR/elog/summary.log, tai /var/log/portage/elog/summary.log, jos $PORT_LOGDIR ei ole määritelty.
    • mail_summary: kuten mail, mutta lähettää vain yhden viestin emergen lopuksi.
  • PORTAGE_ELOG_COMMAND: Tätä käytetään jos custom on valittu lokiasetuksista. Tässä määritellään komento, joka osaa käsitellä lokiviestit. Komennolle voi antaa kaksi muuttujaa: ${PACKAGE} on paketin nimi ja ${LOGFILE} on absoluuttinen tiedostonimi. Esimerkiksi:
    • PORTAGE_ELOG_COMMAND="/hakemisto/lokijuttu -p '\${PACKAGE}' -f '\${LOGFILE}'"
  • PORTAGE_ELOG_MAILURI: sisältää mail-asetuksen asetukset: osoitteen, käyttäjä, salasanan, palvelimen ja portin. Oletusasetus on root@localhost localhost.
  • Esimerkiksi smtp-palvelin, jolla on käyttäjätunnus ja salasana eri portissa kuin oletuksessa 25:
    • PORTAGE_ELOG_MAILURI="user@some.domain username:password@smtp.some.domain:995"
  • PORTAGE_ELOG_MAILFROM: sisältää käytetyn viestin lähettäjän eli From-otsakkeen tiedot. Oletusarvo on portage.
  • PORTAGE_ELOG_MAILSUBJECT: sisältää käytetyn viestin aiheen eli Subject-otsakkeen tiedot. Tässä on mahdollista käyttää kahta muuttujaa: ${PACKAGE} on paketin nimi ja versio ja ${HOST} FQDN, jolta Portagea ajetaan. Esimerkkinä:
    • PORTAGE_ELOG_MAILSUBJECT="Paketti \${PACKAGE} päivitetty koneella \${HOST}"

Tärkeää: Jos käytit enotice-sovellusta vanhan Portagen kanssa, se pitää poistaa, sillä se ei toimi elogin kanssa.

2. Asetusten säätäminen muuttujilla

2.a. Portagen asetukset

Kuten aiemmin on huomattu, Portage voi säätää muuttujilla, jotka majailevat tiedostossa /etc/make.conf. Lisää tietoja näistä löytyy make.confin man-sivuilta:

Koodilistaus 1.1: make.confin man-sivujen tarkastelu

$ man make.conf

2.b. Buildikohtaiset asetukset

Configuren ja kääntäjän asetukset

Kun Portage kääntää sovelluksia, seuraavia muuttujia välitetään kääntäjälle ja configure-skriptille:

  • CFLAGS ja CXXFLAGS antavat valitsimia ja parametrejä C- ja C++-kääntäjille vastaavasti.
  • CHOST antaa laitteistotiedot sovelluksen configure-skriptille.
  • MAKEOPTS antaa valitsimia ja parametrejä make-ohjelmalle. Sitä tyypillisesti käytetään määrittelemään rinnakaiskääntämisprosessit. Lisää tietoa tästä ja muista mahdollisuuksista löytyy maken man-sivuilta.

USE-muuttujaa käytetään myös valitsemaan sekä configuren että käännösten valitsimia, mutta siitä kerrottiinkin jo edellisissä kappaleissa.

Asennusasetukset

Portagen asennettua uuden version jostakin ohjelmasta, se poistaa vanhentuneet tiedostot järjestelmästä. Ennen poistamista Portage antaa 5 sekunnin miettimisajan. Tämä 5 sekunnin aika määritellään muuttujassa CLEAN_DELAY.

Voit asettaa emergelle oletusasetuksia muuttujaan EMERGE_DEFAULT_OPTS. Hyviä valintoja ovat esim. --ask, --verbose tai --tree.

2.c. Asetustiedostojen suojaaminen

Portagen suojaukset

Portage ylikirjoittaa tiedostot uudemmilla versioilla ohjelman päivityksissä, ellei niitä ole suojattu sijainnin perusteella. Suojatut hakemistot määritellään CONFIG_PROTECT-muuttujassa, ja niiksi valitaan tyypillisesti asetustiedostojen sijainteja. Hakemistolistauksen hakemistot erotellaan toisistaan välilyönnein.

Jos Portage joutuisi ylikiroittamaan tiedoston tällaisesta hakemistosta, uusi versio uudelleennimetään ja käyttäjää tiedotetaan (oletetun) asetustiedoston muutoksesta.

Tämänhetkisen CONFIG_PROTECT-arvon saa emerge --infon tulosteesta:

Koodilistaus 3.1: CONFIG_PROTECTin tarkastelu

$ emerge --info | grep 'CONFIG_PROTECT='

Lisää tietoa Portage asetustiedostosuojauksesta on saatavilla ohjesivulla man emerge osassa CONFIGURATION FILES:

Koodilistaus 3.2: Asetustiedostosuojausohjeen tarkastelu

$ man emerge

Hakemistojen poisjättäminen suojauksesta

Suojattujen hakemistojen alihakemistoja voi poistaa suojauksen alta muuttujan CONFIG_PROTECT_MASK avulla.

2.d. Tiedostojen latausasetukset

Palvelinten sijainnit

Kun tarvittavaa dataa ei ole paikallisella koneella, Portage hakee sitä oletusarvoisesti Internetistä. Palvelinten sijainnit erilaisten asioiden hakemiseksi määritellään seuraavilla muuttujilla:

  • GENTOO_MIRRORS luetteloi palvelimet, joilta lähdekoodit voi hakea (ns. distfilesit)
  • PORTAGE_BINHOST kertoo palvelimen, jolta tälle järjestelmälle sopivat esikäännetyt paketit voi hakea.

Kolmas asetus liittyy portagepuun päivityksen rsync-palvelimeen:

  • SYNC kertoo palvelimen, jolta Portage hakee portagepuunsa.

GENTOO_MIRRORS- ja SYNC-muuttujat voi asettaa automaattisesti mirrorselect-sovelluksella. Aluksi pitää tietenkin asentaa se komentalla emerge mirrrorselect. Mirrorselectin sisäänrakenettu ohjetoiminto kertoo lisätietoja:

Koodilistaus 4.1: Mirrorselectin ohjeiden tarkastelu

# mirrorselect --help

Jos käyttöympäristösi tarvitsee välipalvelinta, pitää määritellä HTTP_PROXY-, FTP_PROXY- ja RSYNC_PROXY-muuttujat tämän mukaisiksi.

Tiedostojen hakukomento

Oletusarvoisesti Portage käyttää wget-sovellusta lähdekoodien hakemiseen verkosta. Tämän voi vaihtaa FETCHCOMMAND-muuttujalla.

Portage osaa jatkaa keskeytynyttä tiedostonhakua. Oletuksena tähänkin käytetään wgetiä, mutta tätä voi muuttaa RESUMECOMMAND-muuttujalla.

Varmista, että FETCHCOMMAND- ja RESUMECOMMAND-ohjelmat tallentavat lataukset oikeaan paikkaan. Muuttujuen sisällä tulee käyttää ilmauksia \${URI} ja \${DISTDIR} osoittamaan haettavan tiedoston verkko-osoitteeseen ja tallennuspaikkaan vastaavasti.

Tiedostojen hakukomennot väi määritellä myös yhteyskäytännöittäin (protokollittain), muuttujat ovat tällöin muotoa FETCHCOMMAND_HTTP, FETCHCOMMAND_FTP, RESUMECOMMAND_HTTP, RESUMECOMMAND_FTP, ja niin pois päin.

Rsync-asetukset

Portagen käyttämää rsync-komentoa ei voi muokata, mutta sille voi antaa joitain parametreja:

  • PORTAGE_RSYNC_OPTS sisältää oletusasetukset. Näitä ei pidä muuttaa, jollei tiedä mitä niiden tarkalleen pitää tehdä. Joitakin aivan välttämättömiä rsync-asetuksia käytetään vaikka PORTAGE_RSYNC_OPTS jätettäisiin tyhjäksi.
  • PORTAGE_RSYNC_EXTRA_OPTSiin lisätään käyttäjän asetuksia rsyncille:
    • --timeout=<luku>: määritä aikakatkaisun odotusaika sekunneissa. Oletusarvona on 180, mutta hitaan yhteyden tai tietokoneen kanssa saattaa kannattaa käyttää 300:aa tai suurempaa
    • --exclude-from=/etc/portage/rsync_excludes: määritä tiedosto, jossa on tiedostot, joita ei päivitetä. Tässä tapauksessa käytettäisiin tiedostoa /etc/portage/rsync_excludes. Lue lisää aiheesta Portagen puun mukauttaminen -kappaleesta.
    • --quiet: vähennä tulosteita
    • --verbose: tulosta kaikki tiedostot
    • --progress: näytä edistymispalkki joka tiedostolle
  • PORTAGE_RSYNC_RETRIES sisältää montako kertaa rsync yrittää päästä SYNCin määrittelemälle peilille ennen lopettamista. Oletusarvo on 3.

Lisätietoja ohjesivulta man rsync.

2.e. Gentoon asetukset

Ohjelmistohaarojen valinta

Oletusversiohaaraa voi vaihtaa muuttujalla ACCEPT_KEYWORDS. Sen oletusarvona on arkkitehtuurin stabiili haara. Lisätietoa eri haaroista on käsikirjan seuraavassa kappaleessa.

Portagen ominaisuudet

Portagen eri ominaisuuksia muutellaan FEATURES-muuttujalla. Näistä ominaisuuksista on kerrottu jo edellisissä kappaleissa, kuten kappaleessa Portagen ominaisuudet.

2.f. Portagen käyttäytyminen

Järjestelmäresurssien hallinta

PORTAGE_NICENESS-muuttujalla voi säätää Portage-prosessien niin kutsuttua nice-arvoa. PORTAGE_NICENSS-muuttujan arvo ynnätään nykyiseen nice-arvoon.

Lisätietoa nice-arvosta löytyy nicen man-sivulta:

Koodilistaus 6.1: Nicen man-sivun katselu

$ man nice

Ulkoasun säätäminen

NOCOLOR-muuttuja, joka on oletuksena "false" (epätosi), kertoo, josko Portagen pitäisi olla käyttämättä värejä tulosteissa vai ei. Värit saa pois päältä arvolla "true".

3. Ohjelmistohaarojen sekoittaminen

3.a. Yhdessä versiohaarassa pysyminen

Stabiili haara

ACCEPT_KEYWORDS-muuttuja kertoo, mitä ohjelmistohaaraa käytetään. Sen oletusarvona on järjestelmän arkkitehtuurin stabiili haara, kuten x86.

Stabiili haara on suositeltavin ratkaisu, kuitenkin, jollei vähän epävakaampi järjestelmä haittaa, ja haluat auttaa Gentoon kehittämisessä lähettämällä virheistä tiedon vianhallintajärjestelmään http://bugs.gentoo.org, jatka lukemista.

Testaushaara

Jos haluat välttämättä käyttää kaikkein tuoreimpia saatavilla olevia versioita, voit koettaa testaushaaraa. Portagen saa käyttämään testaushaaran ohjelmaversioita lisäämällä merkin ~ arkkitehtuurimäärittelyn eteen.

Testaushaara on, kuten voisi arvata, testaamista varten. Paketit ovat testauksessa silloin, kun ylläpitäjä on nähnyt ne toimiviksi, muttei ole vielä testannut täysin. Tällaisista paketeista löytynee bugeja, jotka ilmoitetaan englanniksi bugzillaan.

Muista kuitenkin, että tässä haarassa voi olla vakausongelmia, virheellisiä paketteja (rikkinäisillä ja puutteellisilla riippuvuustiedoilla), paljon päivittelyä, ja rikkinäisiä paketteja. Jollet tiedä miten Gentoo toimii tai osaa ratkoa ongelmia kannattaa käyttää vakaata haaraa.

Esimerkiksi x86-arkkitehtuurilla muokattaisiin tiedostoa /etc/make.conf seuraavasti:

Koodilistaus 1.1: ACCEPT_KEYWORDSin muuttaminen

ACCEPT_KEYWORDS="~x86"

Jos tämän jälkeen ryhdyt päivittämään järjestelmääsi, huomannet, että paljon paketteja tulee päivittymään. Pidä kuitenkin mielessä, että kun järjestelmä on kerran päivitetty testaushaaraan, takaisin stabiiliin haaraan on huomattavan vaikeaa päästä (ellei käytä varmuuskopio-otosta vaikkapa).

3.b. Molempien haarojen rinnakkaiskäyttö

Package.keywords

Portage on mahdollista asettaa käyttämään stabiilia haaraa valtaosalle paketeista, mutta testaushaaraa joillekin harvoille valituille. Tämä toteutetaan lisäämällä paketin kategoria ja nimi tiedostoon /etc/portage/package.keywords. Asetustiedostoja on myös mahdollista luoda useampia vapaasti nimettyinä hakemiston /etc/portage/package.keywords/ alle. Esimerkiksi gnumericin testausversion saa käyttöön tällaisella rivillä:

Koodilistaus 2.1: /etc/portage/package.keywords gnumericille

app-office/gnumeric ~x86

Yksittäisen ohjelmaversion testaus

Tarvittaessa on myös mahdollista käyttää stabiilissa ympäristössä vain jotain tiettyä testausversiota jostain paketista, mutta ei sen päivitettyjä testausversioita. Tämä toteutetaan lisäämällä versionumerointi tiedostoon tai hakemistoon package.keywords. Tällaisissa tapauksissa on pakko käyttää operaattoria = ohjelmiston edessä. Käytettävissä ovat myös operaattorit <=, <, > tai >= vastaaville versiojoukoille.

Joka tapauksessa, jos versionumerointi lisätään, silloin on pakko käyttää jotain operaattorimerkinnöistä. Jos versionumerointia ei käytetä, silloin ei myöskään operaattoreita saa käyttää.

Seuraavalla esimerkillä tiedostossa package.keywords Portage hyväksyy vain tämän version testausversion.

Koodilistaus 2.2: Tietyn gnumericin version valinta

=app-office/gnumeric-1.2.13 ~x86

3.c. Peitettyjen pakettien käyttäminen

Package.unmask

Näiden tiedostojen käyttöä ei tueta erityisesti. Niiden käytössä tulee olla varovainen, ja huomata, ettei moniin niistä johtuviin apupyyntöihin tulla vastaamaan tukikanavilla.

Jos haluat käyttää Gentoon kehittäjien peittämää pakettia välittämättä syystä, joka mainitaan tiedostossa package.mask (hakemistossa /usr/portage/profiles/ oletusarvoisesti), lisää täsmälleen siitä tiedostosta löytyvä rivi tiedostoon /etc/portage/package.unmask (tai johonkin vapaasti nimettyyn tiedostoon hakemistossa /etc/portage/package.unmask/).

Esimerkiksi, jos =net-mail/hotwayd-0.8 olisi peitetty, se poistettaisiin lisäämällä tiedostoon tai hakemistoon package.unmask rivi:

Koodilistaus 3.1: /etc/portage/package.unmaskin muokkaus

=net-mail/hotwayd-0.8

Package.mask

Jos haluat estää Portagea asentamasta jotain pakettia, tai sen jotain versioita, peitä se lisäämällä sopiva rivi tiedostoon /etc/portage/package.mask (tai vapaasti nimettyyn tiedostoon hakemistossa /etc/portage/package.mask/).

Jos et vaikkapa halua versiota 2.6.8.1 uudempia kernelin lähdekoodeja vanilla-sources-paketista, voit lisätä tiedostoon tai hakemistoon package.mask seuraavan rivin:

Koodilistaus 3.2: /etc/portage/package.maskin muokkaus

>sys-kernel/vanilla-sources-2.6.8.1

4. Muut Portagen työkalut

4.a. Etc-update

Etc-updatella yhdistellään asetustiedostoja muotoa ._cfg0000_<nimi>. Se mahdollistaa vuorovaikutteisen vanhan ja uuden tiedoston yhdistelyn ja osaa myös automaattisesti yhdistellä triviaalit muutokset. ._cfg0000_<nimi>-tiedostot ovat Portagen CONFIG_PROTECTilla suojattujen asetustiedostojen päivityksiä.

Komennon etc-update käyttäminen on yksinkertaista:

Koodilistaus 1.1: Etc-updaten suorittaminen

# etc-update

Kun yksiknkertaisimmat päivitykset on yhdistelty, etc-update tarjoaa listan tiedostoista, joihin on merkitseviä päivityksiä. Listan lopussa on ohje mahdollisista toiminnoista:

Koodilistaus 1.2: Etc-updaten toiminnot

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

Komennolla -1, etc-update lopettaa tekemättä enää muutoksia. Komennolla -3 tai -5 kaikki listatut tiedostot päivitetään. On tärkeää, että poimit listasta pois ensin ne, jotka eivät saa päivittyä. Tämä onnistuu antamalla tiedoston listausnumero, joka tulostetaan sen tiedostonimen vasemmalle puolelle.

Esimerkissä käsittelemmäe tiedostoa /etc/pear.conf:

Koodilistaus 1.3: Asetustiedoston päivittäminen

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

Etc-update näyttää muutokset kahden tiedoston välillä. Jos ne näyttävät järkeviltä ja voi yhdistää sellaisenaan, paina 1. Jos päivitykset ovat turhia tai haitallisia, paina 2. Jos haluat valikoida muutoksia vuorovaikutteisesti, paina 3.

Vuorovaikutteisen yhdistelyn läpikäyntiä ei ole järkevää opastaa tässä. Täydellisyyden vuoksi ohessa on lista mahdollisista komennoista, joita voi yhdistellessään käyttää. Yhdistelytila näyttää koko ajan kahta riviä, alkuperäistä ja uutta, ja pyytää valitsemaan jotain seuraavista:

Koodilistaus 1.4: Vuorovaikutteisen yhdistelyn komentaminen

ed:     Edit then use both versions, each decorated with a header.
eb:     Edit then use both versions.
el:     Edit then use the left version.
er:     Edit then use the right version.
e:      Edit a new version.
l:      Use the left version.
r:      Use the right version.
s:      Silently include common lines.
v:      Verbosely include common lines.
q:      Quit.

Kun tärkeät asetustiedostot on päivitetty, voidaan loput päivittää automaattisesti. Etc-update lopettaa kun se ei enää löydä päivitettävää.

4.b. Dispatch-conf

Dispatch-confilla voi yhdistellä asetustiedostojen päivitykset ja pitää kirjaa kaikista muutoksista. Se osaa säilyttää muutokset asetustiedostoon pätseinä tai käyttää RCS-muutoksenhallintajärjestelmää.

Kuten etc-updatellakin, dispatch-confilla voi asentaa päivitykset sellaisenaan, pitää vanhan tiedoston, muokata nykyistä tai yhdistellä tiedostoja vuorovaikutteisesti. Sen lisäksi dispatch-confissa on joitain lisäominaisuuksia:

  • asetustiedostojen automaattinen kommentointimuutosten päivittäminen
  • asetustiedostojen automaattinen tyhjemuutosten päivittäminen.

Muista muokata asetustiedostoa /etc/dispatch-conf.conf ensin ja päivittää archive-dir-muuttujan arvo.

Lisätietoja läytyy dispatch-confin man-sivulta:

Koodilistaus 2.1: Dispatch-confin man-sivun tarkastelu

$ man dispatch-conf

4.c. Quickpkg

Quickpkg:llä voi luoda arkistoja asennetuista paketeista. Näitä voi sitten käyttää esikäännettyinä paketteina. Quickpg:tä on helppo käyttää: parametreiksi annetaan vain ohjelmien nimet.

Näin paketoitaisiin curl, arts ja procps:

Koodilistaus 3.1: Quickpkg:n käyttäminen

# quickpkg curl arts procps

Esikäännetyt paketit tallennetaan hakemistoon $PKGDIR/All. Näihin osoittavat symboliset linkit ovat hakemistoissa nimeltä $PKGDIR/<kategoria>.

5. Portagepuun mukauttaminen ja ohitus

5.a. Portagepuun osajoukon käyttäminen

Pakettien ja kategorioiden poisjättö

Paketteja ja kategorioita voi päivittää valikoivasti. Tämä onnistuu pyytämällä rsynciä ohittamaan paketit ja kategoriat emerge --sync -komennossa.

Tiedoston /etc/make.confissa valitsimella --exclude-from määritellään muuttuja RSYNC_EXCLUDEFROM, joka osoittaa tiedostoon, jossa on ohitettavat tiedostot ja hakemistot merkittynä.

Koodilistaus 1.1: Ohitettavien kohteiden luettelotiedoston määrittäminen

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

Koodilistaus 1.2: Pelien poistaminen tiedostolla /etc/portage/rsync_excludes

games-*/*

Huomaa kuitenkin, että tämän käyttäminen saattaa johtaa riippuvuusongelmiin, jos käytetyt paketit tarvitsevat poisjätettyjä.

5.b. Epävirallisen ebuildin käyttäminen

Oman ohjelmistohakemiston antaminen Portagelle

Portage voi käyttää ebuildeja myös virallisen Portagepuun ulkopuolelta. Tätä varten tehdään uusi hakemisto (esimerkiksi /usr/local/portage), jossa muita ebuildeja säilytetään. Hakemiston sisältörakenne on sama kuin Portagepuunkin.

Lisäksi pitää määritellä muuttuja PORTDIR_OVERLAY tiedostossa /etc/make.conf osoittamaan äsken luotuun hakemistoon. Nyt Portage ottaa myös tämän hakemiston ebuildit huomioon, muttei ylikirjoita tai sotke tätä hakemistoa emerge --syncin aikana.

Useiden ohjelmistohakemistojen käyttö

Paketissa app-portage/gentoolkit-dev on tehokäyttäjille ohjelma nimeltä gensync, jonka avulla voi pitää useita ohjelmistohakemistoja ajan tasalla. Tämä helpottaa epävirallisten pakettine testaamista useista lähteistä.

Gensyncillä voi päivittää kaikki ohjelmistohakemistot kerralla, tai vaikka vain osan niistä. Jokaista hakemistoa kohden pitää olla .syncsource-tiedosto /etc/gensync/-hakemistossa. Tiedosto sisältää ohjelmistohakemiston osoitteen, nimen, tunnisteen jne.

Esimerkiksi kahta lisäohjelmistohakemistoa nimeltä java (java-kehitysversioille) ja entapps (yrityksen sisäisille ohjelmistoille) voisi hallita seuraavalla komennolla:

Koodilistaus 2.1: Ohjelmistohakemistojen päivitys gensyncillä

# gensync java entapps

5.c. Portagen ulkopuoliset ohjelmistot

Portagen käyttö muun ohjelmiston kanssa

Joskus saattaa tarvita säätää, asentaa ja ylläpitää ohjelmistoja ilman Portagen apua, vaikka Portagessa olisikin näiden ohjelmien versioita. Tyypillisiä tapauksia ovat kernelin lähdekoodit ja nvidian ajurit. Portagen voi säätää niin, että se tietää paketin olemassaolosta, vaikkei ole itse sitä asentanut. Tätä toimintoa sanotaan paketin injektioksi ja toteutetaan asetustiedostolla /etc/portage/profile/package.provided.

Esimerkiksi, jos haluat kertoa Portagelle itse noudetusta gentoo-sources-2.6.11.6-ytimestä, lisää tiedostoon /etc/portage/profile/package.provided rivi:

Koodilistaus 3.1: package.provided-esimerkki

sys-kernel/gentoo-sources-2.6.11.6

6. Ebuild-sovellus

6.a. Emerge ja Ebuild

Ebuild-sovellus on alemman tason rajapinta Portageen. Sillä voi käyttää ebuild-tiedostojen yksittäisiä toimintoja. Mahdollista on vaikkapa asentaa koko sovellus askel askeleelta.

Ebuild-sovellus on ensisijaisesti järjestelmän kehittäjille; lisätietoja ebuildista löytyykin Developers Handbookista. Selvitämme tässä kuitenkin mitä ebuild-tomintoja Portage käyttää asennusprosessissa, ja miten käyttää jälkiasennustoiminnalisuuksia, joita joissain ebuildeissa saattaa olla.

6.b. Ohjelmiston asennus käsin

Lähdekoodin nouto ja oikeellisuustarkastus

Kun komennolle ebuild antaa jonkun .ebuild-tiedoston, se tarkastaa kaikkien liittyvien tiedostojen tarkastussummat, jotka on annettu Manifest- ja files/digest-<name>-<version>-tiedostoissa. Tämä tehdään lähdekoodien noutamisen jälkeen.

Ebuildilla voi noutaa lähdekoodit seuraavasti:

Koodilistaus 2.1: Lähteiden noutaminen

# ebuild path/to/ebuild fetch

Jos ebuildin md5-tarkistussumma ei täsmää Manifestissa ilmoitettuun tai ladattujen tiedostojen summat eivät täsmää files/digest-<paketti>-tiedoston sisältämiin, saat seuraavan virheilmoituksen:

Koodilistaus 2.2: Ebuildin tarkastussumman virheilmoitus

!!! File is corrupt or incomplete. (Digests do not match)
>>> our recorded digest: db20421ce35e8e54346e3ef19e60e4ee
>>>  your file's digest: f10392b7c0b2bbc463ad09642606a7d6

Seuraavat rivit kertovat ongelmallisen tiedoston.

Jos haettujen lähteiden ja ebuildin oikeellisuus on varmaan, uuden Manifestin ja digest-<paketti>-tiedoston voi tehdä ebuildilla:

Koodilistaus 2.3: Uuden manifestin ja digestin luonti

# ebuild path/to/ebuild digest

Lähdekoodin purkaminen

Lähdekoodien puretaan hakemistoon /var/tmp/portage (tai muuhun vastaavaan asetustiedostossa /etc/make.conf määriteltyyn) ebuildia käyttämällä:

Koodilistaus 2.4: Lähdekoodien purkaminen

# ebuild path/to/ebuild unpack

Tämä toiminto suorittaa ebuildin src_unpack()-funktion (joka oletusarvoisesti vain purkaa tiedostot, jollei sitä ole erikseen annettu). Tässä vaiheessa ebuild myös lisää kaikki tarvittavat pätsit.

Lähdekoodin kääntäminen

Seuraavassa vaiheessa käännetään koodia. Ebuildin kääntötoiminto käyttää tähän ebuildin src_compile()-funktiota. Tähän vaiheeseen liittyy myös configuren suoritus, jos aiheellista.

Koodilistaus 2.5: Lähdekoodien kääntäminen

# ebuild path/to/ebuild compile

Käännöstä muuttakseen ebuildien src_compile()-funktiota kannattaa muokata. Voit myös huijata Portagea luulemaan, että ebuild on kääntänyt jo lähdekoodit: suorita kaikki käännökset itse ja lisää hakemistoihin tyhjät tiedosto nimellä .compiled työhakemistoon:

Koodilistaus 2.6: Valmistuneiden käännösten kertominen Portagelle

# touch .compiled

Tiedostojen asennus väliaikaishakemistoon

Seuraavassa Portage asentaa kaiken väliaikaishakemistoon. Tämä hakemisto sisältää kaikki tiedostot, jotka siirretään oikeaan järjestelmään. Siirtäminen tapahtuu ebuildin asennustoiminnolla, joka suorittaa ebuildin src_install()-funktion.

Koodilistaus 2.7: Tiedostojen asennus

# ebuild path/to/ebuild install

Tiedostojen siirto oikeaan järjestelmään

Viimeisenä kaikki tiedostot siirretään käytössä olevaan tiedostojärjestelmään ja rekisteröidään ne Portagelle. Ebuildissa tämän toiminnon nimi on "qmerge" ja siihen liittyy seuravaa:

  • suorita pkg_preinst(), jos sellainen on
  • kopioi tiedosto järjestelmään
  • rekisteröi tiedostot Portagelle
  • suorita pkg_postinst(), jos sellainen on.

Suorittamalla ebuildin qmergen toteutat nämä:

Koodilistaus 2.8: Tiedostojen siirto oikeaan järjestelmään

# ebuild path/to/ebuild qmerge

Väliaikaishakemiston siivous

Lopulta, väliaikaishakemiston voi siivota ebuildin puhdistustoiminnolla:

Koodilistaus 2.9: Väliaikaishakemiston siivoaminen

# ebuild path/to/ebuild clean

6.c. Muita ebuildin ominaisuuksia

Asennuskomentojen suoritus

Ebuildin asennustoiminnot, eli hakemisen, purkamisen, kääntämisen, asennuksen ja qmergen voi suorittaa myös yhdellä käskyllä:

Koodilistaus 3.1: Ohjelmiston asentaminen

# ebuild path/to/ebuild merge

Asetustoimintojen suorittaminen

Jotkin ohjelmat sisältävät ohjeet paketin tarkempaan säätämiseen järjestelmää varten. Nämä ohjeet voivat olla vuorovaikutteisia, jonka takia niitä ei suoriteta automaattisesti. Kaikki asetustoiminnot, jos sellaisia on, saa suoritettua ebuildin asetustoiminnolla:

Koodilistaus 3.2: Paketin asetusten säätäminen

# ebuild path/to/ebuild config

Pakettien tai RPM:ien tekeminen

Portagen saa tekemään binääripaketteja, tai jopa RPM-paketteja, ebuildeistaan. Ebuildin paketti- ja rpm-toiminnot kattavat tämän toiminnallisuuden. Niiden käytöksessä on kuitenki eroja:

  • Pakettitoiminto käyttäytyy pitkälti kuin asennustoimintokin: suorittaa tarpeelliset toiminnot (hakemisen, purkamisen, käännön, asennuksen) ennen paketin luontia.
  • Rpm-toiminto tekee RPM-paketin tiedostoista, jotka luodaan ebuildin asennustoiminnon jälkeen.

Koodilistaus 3.3: Pakettien luominen

(Portage-tyylisille binääripaketeille)
# ebuild path/to/ebuild package

(RPM-paketeille)
# ebuild path/to/ebuild rpm

RPM-paketti ei kuitenkaan sisällä niitä riippuvuustietoja, mitä ebuild sisältäisi.

6.d. Lisää tietoa!

Man-sivuilta löytyy paljon tietoa Portagesta, ebuild-sovelluksesta ja ebuild-tiedostoista:

Koodilistaus 4.1: Man-sivujen tarkastelu

$ man portage    (Portagen man-sivu)
$ man emerge     (Emerge-komennon man-sivu)
$ man ebuild     (Ebuild-komennon man-sivu)
$ man 5 ebuild   (Ebuild-tiedoston syntaksin man-sivu)

Tietenkin lisää Gentoon kehitystietoa on myös käsikirjassa Developers Handbook.

D. Gentoon verkkoasetukset

1. Aloittaminen

1.a. Aluksi

Huomaa: Tässä ohjeessa oletetaan, että ydin on jo asennettu, ja laitteistolle sopivat ajurit on mukana. Myös rajapinnan nimi pitää tietää, oppaassa oletetaan eth0, mutta se voi olla yhtä hyvin eth1, wlan0 tai jotain muuta.

Verkkokortin asetukset aloitetaan kertomalla Gentoon RC-järjestelmälle siitä. Tämä hoituu luomalla linkki net.eth0 osoittamaan net.lo:hon hakemistossa /etc/init.d.

Koodilistaus 1.1: eth0-skriptin linkkaus

# cd /etc/init.d
# ln -s net.lo net.eth0

Gentoon RC-järjestelmä tunnistaa tästä rajapinnan. Lisäksi pitää kertoa rajapinnan asetukset. Verkkorajapinnat asetetaan tiedostossa /etc/conf.d/net. Alla on esimerkki DHCP:stä ja kiinteästä osoitteesta.

Koodilistaus 1.2: /etc/conf.d/net:n asetusten esimerkkejä

# DHCP:lle
config_eth0="dhcp"

# Kiinteä IP CIDR-merkinnöin
config_eth0="192.168.0.7/24"
routes_eth0="default via 192.168.0.1"

# Kiinteä IP verkon peitteellä merkittynä
config_eth0="192.168.0.7 netmask 255.255.255.0"
routes_eth0="default gw 192.168.0.1"

Huomaa: Jos mitään ei määritellä, oletusarvo on DHCP.

Huomaa: CIDR viittaa Classless InterDomain Routingiin. Alunperin IPv4-osoitteet oli luokiteltu luokkiin A, B ja C. Luokittelujärjestelmässä ei osattu arvata Interneti suurta suosiota, joten tapa on aiheuttamassa IP-osoitteiden loppumista. CIDR:ssä yksi IP-osoite viittaa moneen osoitteeseen. CIDR-tyyppinen IP näyttää muutoin tavalliselta, mutta siinä on perässä kauttaviiva ja luku, kuten 192.168.0.0/16. CIDR-standardi on kuvattu kannanottopyynnössä RFC 1519.

Kun rajapinta on asetettu, sen voi käynnistää tai sammuttaa seuraavin komennoin:

Koodilistaus 1.3: Verkon käynnistys ja sammutus

# /etc/init.d/net.eth0 start
# /etc/init.d/net.eth0 stop

Tärkeää: Verkon ongelmia selvitettäessä kannattaa katsoa tiedostoa /var/log/rc.log, joka sisältää käynnistyksenaikaista lokia, jollei tiedostossa /etc/rc.conf ole asetusta rc_logger="NO".

Nyt kun verkko käynnistyy ja sammuu kunnollisesti, sen voi lisätä vaikkapa järjestelmän käynnistykseen automaattiseksi. Toinen rc-komento käynnistää kaikki nykyisen runlevelin palvelut, jotka eivät vielä ole käynnissä:

Koodilistaus 1.4: Verkkorajapinnan käynnistymisen lisääminen järjestelmän käynnistykseen

# rc-update add net.eth0 default
# rc

2. Erikoisasetukset

2.a. Erikoisasetukset

Asetus config_eth0 määrittelee keskeisen osan rajapinnan asetuksista. Se on korkean tason määritys rajapinnalle eth0. Jokainen komento siinä suoritetaan järjestyksessä. Rajapinnan katsotaan olevan pystyssä, jos yksikin kommenoista on onnistunut.

Tässä luettelo komentovaihtoehdoista.

Komento Kuvaus
null Ei tee mitään
noop Jos rajapinta on pystyssä ja sillä on osoite, peruuta onnistuneesti.
IPv4- tai IPv6-osoite Lisää osoite rajapintaan
dhcp, adsl tai apipa (tai mukailtu komento jostain ulkoisesta moduulista) Käynnistä moduuli joka tarjoaa komennon. Dhcp käynnistää jonkin moduuleista joka tarjoaa toiminnon dhcp, eli dhcpcd:n, dhclientin tai pumpin.

Jos komento epäonnistuu, on mahdollista määritellä varakomento. Varakomentojen rakenne vastaa täsmälleen configin rakennetta.

Näitä komentoja voi ketjuttaa yhteen, tässä on esimerkiksi joitain käytettyjä asetuksia:

Koodilistaus 1.1: Asetusesimerkkejä

# IPv4-osoitteiden lisäys
config_eth0=(
    "192.168.0.2/24"
    "192.168.0.3/24"
    "192.168.0.4/24"
)

# IPv4-osoitteen ja IPv6-osoitteiden lisäys
config_eth0=(
    "192.168.0.2/24"
    "4321:0:1:2:3:4:567:89ab"
    "4321:0:1:2:3:4:567:89ac"
)

# Pidetään ytimen antama osoite kunnes se lakkaa toimimasta,
# Tämän jälkeen haetaan DHCP:llä. Jos DHCP ei onnistu haetaan sopiva
# kiinteä osoite APIPAlla
config_eth0=(
    "noop"
    "dhcp"
)
fallback_eth0=(
    "null"
    "apipa"
)

Huomaa: Jos käytössä on ifconfig-moduuli ja asetataan useampia osoitteita, niille luodaan rajapinta-aliakset. Ylläolevissa esimerkeissä tehdään rajapinnat eth0, eth0:1 ja eth0:2. Näillä rajapinnoilla ei voi tehdä mitään suurempia, sillä ydin ja ohjelmat käsittelevät eth0:1:tä ja eth0:2:ta kuten eth0:aa.

Tärkeää: Fallback-komennon järjestys on merkityksellinen! Jos ensimmäinen komento ei olisi null, apipa ajettaisiin vain jos noop ei toimi.

Huomaa: APIPAsta ja DHCP:stä kerrotaan lisää tuonnempana

2.b. Verkkoriippuvuudet

Initskriptit /etc/init.d:ssä voivat riippua tietyistä verkkorajapinnoista tai vain netistä. Kaikki rajapinnat ovat Gentoon initissä mitä net-asetus määrittää.

Jos tiedostossa /etc/rc.conf asetus rc_depend_strict="YES" on päällä, kaikki verkkorajapinnat pitää käynnistää ennen kuin riippuvuusasetus net täyttyy. Jos rajapinnat net.eth0 ja net.eth1 ovat molemmat olemassa ja initskripti riippuu netistä, molempien pitää olla ylhäällä.

Jos asetus on rc_depend_strict="NO", riippuvuus net täyttyy heti, kun ainakin yksi verkkorajapinta on ylhäällä.

Mutta jos net.br0 riippuu net.eth0:sta ja net.eth1:stä? Net.eth1 saattaa olla langaton tai ppp-yhteys, joka pitää asettaa ennen siltausta. Tätä ei voi tehdä /etc/init.d/net.br0:lla, koska se on vain linkki net.lo:hon.

Ratkaisuna voi käyttää rc_need-asetusta /etc/conf.d/netissä.

Koodilistaus 2.1: net.br0:n riippuvuuden asettaminen /etc/conf.d/netiin

rc_need_br0="net.eth0 net.eth1"

Tarkemmat selitykset riippuvuuksista löytyvät, Käsikirjan initskriptiosiosta. Lisätiedot rc.conf-asetuksista löytyvät tiedostosta itsestään.

2.c. Muuttujien nimet ja arvot

Muuttujien nimet ovat dynaamisia. Ne vastaavat yleensä rakennetta muuttuja_${rajapinta|mac|essid|apmac}. Esimerkiksi dhcpcd_eth0 on rajapinnan eth0 dhcpcd-asetusmuuttuja ja dhcpcd_essid on minkä tahansa essid:tä käyttävän rajapinnan dhcpcd-asetukset.

Kuitenkaan ei ole olemassa mitään sääntöä, että rajapintanimien pitäisi olla muotoa ethN. Esimerkiksi monet langattomat rajapinnat ovat wlanN tai raN ethN:n lisäksi. Käyttäjien rajapinnatu kuten sillat ovat myös usein vapaasti nimettyjä. Lisäksi langattomien AP-nimet voivat sisältää muitakin kuin aakkosia ja numeroita, tämä on tärkeää huomata, koska on mahdollista asettaa ESSID-kohtaisia verkkoasetuksia.

Huonona puolena Gentoo käyttää bashin muuttujia verkkoasetuksiin, ja bash ei voi käyttää muita kuin englantilaisia aakkosia ja numeroita. Tämän ohittamiseksi kaikki muut kirjaimet pitää muuttaa alaviivoiksi _.

Toinen haittapuoli bashissa on, että muuttujien arvoissa olevia merkintöjä pitää joskus merkitä escape-merkinnöin. Tähän tarkoitukseen käytetään takakenoviivaa \. Merkit " ' ja \ pitää merkitä aina escape-merkinnöillä.

" ' \

Esimerkiksi jos käytämme ESSID:tä joka sisältää erikoismerkkejä:

My "\ NET

Koodilistaus 3.1: Muuttujan nimiesimerkki

(Toimii, paitsi domainnimi on virheellinen)
dns_domain_My____NET="My \"\\ NET"

(Ylläoleva asettaa domainiksi My \" NET kun langattomalla
yhdistetään AP:hen jonka ESSID on My \" NET)

3. Modulaariset verkkoasetukset

3.a. Verkkomoduulit

Nykyisissä verkkoskripteissä on tuet eri moduuleille, joten siihen voi lisätä helposti uusia rajapintatyyppejä ilman että vanhoja tarvitsee päivittää.

Moduulit latautuvat automaattisesti jos niiden tarvitsemat paketit on asennettu. Kun moduulia, jonka tarvitsemat paketit eivät ole asenettu, yritetään käyttää, tulostuu näytölle virheilmoitus, jossa kerrotaan, mikä paketti pitää asentaa. Moduuliasetuksia ei yleensä tarvitse käyttää muutoin, kun jos on asennettu kaksi saman toiminnon tarjoavaa pakettia ja niistä pitää valita sopivampi.

Huomaa: Kaikki muutokset tehdään /etc/conf.d/netiin jollei toisin sanota.

Koodilistaus 1.1: Moduulien valitseminen

# iproute2 ennen ipconfigia
modules="iproute2"

# Myös rajapinnoille voi valita moduuleja
# tässä valitaan udhcpc ennen dhcpcd:tä
modules_eth0=( "udhcpc" )

# Moduulien käytön voi myös kieltää. Esimerkiksi jos käyttää
# muuta korviketta tai linux-wlan-ng:tä asetusten tekoon ja haluaa kuitenkin
# asettaa asetustiedostoon ESSID:t ja muut tiedot.
modules="!iwconfig"

3.b. Rajapintakäsittelimet

Tarjolla on kaksi rajapintojen käsittelijää: ifconfig ja iproute2. Toinen näistä pitää valita että mitään saa asetetuksi ylipäätään.

Ifconfig on Gentoon oletusarvo ja se sisältyy profiiliin. Iproute2 on tehokkaampi ja mukautuvampi, muttei ole oletusasennuksissa mukana.

Koodilistaus 2.1: Iproute2:n asennus

# emerge sys-apps/iproute2

# Iproute2 valitaan suositummaksi jos molemmat on asennettu
modules="iproute2"

Koska ifconfig ja iproute2 tekevät käytännössä samoja juttuja, niiden asetukset toimivat molemmilla samoin. Esimerkiksi seuraavat ratkaisut toimivat käytetystä paketista riippumatta.

Koodilistaus 2.2: ifconfigin ja iproute2:n esimerkit

config_eth0="192.168.0.2/24"
config_eth0="192.168.0.2 netmask 255.255.255.0"

# Myös broadcastin voi määritellä
config_eth0="192.168.0.2/24 brd 192.168.0.255"
config_eth0="192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255"

3.c. DHCP

DHCP:llä haetaan verkon asetustiedot (IP, DNS-palvelimet, Gateway jne.) automaattisesti DHCP-palvelimelta. Jos verkossa on DHCP-plavelin, koneiden tarvitsee vain käyttää DHCP:tä ja verkon asetukset toimivat itsestään. Muut laitteet, kuten langattomat verkot ja PPP pitää tietenkin asettaa tarvitessa ennen DHCP:tä.

DHCP löytyy paketeista dhcpcd, dhclient tai pump. Jokainen DHCP-moduuli sisältää hyviä ja huonoja puolia:

DHCP-moduuli Paketti Hyödyt Haitat
dhclient net-misc/dhcp ISC:n, BINDin DNS-ohjelmistojen tekijöiden tekemä, erittäin muokattava. Asetukset ovat monimutkaisia, ohjelmisto on turhan iso, ei osaa hakea NTP-palvelimia, ei lähetä konenimeä oletuksena.
dhcpcd net-misc/dhcpcd Gentoon oletusarvo, ei riipu ulkoisista työkaluista, Gentoon ylläpitämä Toisinaan hitaahko. Ei osaa irroitautua palveluksi jos IP:n käyttöaika on ääretön.
pump net-misc/pump Kevyt, ei riipu ulkoisista työkaluista Ei enää ylläpidetty, epäluotettava (erityisesti modeemeilla), ei osaa hakea NIS-palvelimia.

Jos käytössä on useampia DHCP-ohjelmia, pitää niistä määritellä jokin suosituimmaksi, oletusarvona on muutoin dhcpcd.

Lisäkomentoja moduulikohtaisesti saa muuttujaan moduuli_eth0. Esimerkiksi dhcpcd:lle dhcpcd_eth0="...".

Yleisesti toimiva DHCP-asetuksiakin on olemassa, ne asetetaan muuttujaan dhcp_eth0. Näistä yksikään ei oletusarvoisesti ole päällä:

  • release — vapauttaa IP-osoitteen
  • nodns — ei ylikirjoita /etc/resolv.confia
  • nontp — ei ylikirjoita /etc/ntp.confia
  • nonis — ei ylikirjoita /etc/yp.confia

Koodilistaus 3.1: DHCP-esimerkkiasetusten teko tiedostoon /etc/conf.d/net

# Jos useampia dhcp-moduuleja on asennettu
modules="dhcpcd"

config_eth0="dhcp"
dhcpcd_eth0="-t 10" # Aikakatkaisu 10 sekuntia
dhcp_eth0="release nodns nontp nonis" # Vain osoitteenhaku

Huomaa: Dhcpcd ja pump lähettävät DHCP-palvelimelle konenimen oletusarvoisesti, joten sitä ei tarvitse erikseen määritellä.

3.d. ADSL ja PPPoE tai PPPoA

Ensin asennetaan ADLS-ohjelmat.

Koodilistaus 4.1: Ppp:n asentaminen

# emerge net-dialup/ppp

PPP- ja eth0-skriptit pitää luoda:

Koodilistaus 4.2: Nettiskriptien teko

# ln -s /etc/init.d/net.lo /etc/init.d/net.ppp0
# ln -s /etc/init.d/net.lo /etc/init.d/net.eth0

Aseta rc_depend_strict="YES" tiedostoon /etc/rc.conf.

Seuraavaksi asetetaan tiedosto /etc/conf.d/net.

Koodilistaus 4.3: A basic PPPoE setup

config_eth0=null (Aseta ethernet-rajapinta)
config_ppp0="ppp"
link_ppp0="eth0" (Aseta ethernet-rajapinta)
plugins_ppp0="pppoe"
username_ppp0='user'
password_ppp0='password'
pppd_ppp0="
       noauth
       defaultroute
       usepeerdns
       holdoff 3
       child-timeout 60
       lcp-echo-interval 15
       lcp-echo-failure 3
       noaccomp noccp nobsdcomp nodeflate nopcomp novj novjccomp
"


rc_need_ppp="net.eth0"

Käyttäjänimi ja salasana voidaan asettaa myös tiedostoon /etc/ppp/pap-secrets.

Koodilistaus 4.4: /etc/ppp/pap-secretsin asettaminen

# *-merkki on tärkeä!
"username"	*	"password"

Jos PPPoE:ta käytetään USB-modeemilla, pitää asentaa br2684ctl. Lue myös asennusohjeet tiedostosta /usr/portage/net-dialup/speedtouch-usb/files/README.

Tärkeää: Lue myös tarkkaan ADSL- ja PPP-ohjeet tiedostossa /etc/share/doc/openrc-<versio>/net.example.bz2. Siinä on tarkempia selityksiä monista tarpeellisista asetuksista. Tietenkin <versio> pitää korvata versionumerolla.

3.e. APIPA

APIPA (Automatic Private IP Adressing) toimii hakemalla vapaata osoitetta alueelta 169.254.0.0—169.254.255.255. Jos jostain osoitteesta ei vastata niin se otetaan käyttöön.

Tämä on lähinnä hyödyllinen LANeilla kun DHCP-palvelinta eikä suoraa Internet-yhteyttä ole käytössä, ja kaikki käyttävät APIPAa.

APIPA-tuen saa paketista net-misc/iputils tai net-analyzer/arping.

Koodilistaus 5.1: APIPA-asetusten tekeminen tiedostoon /etc/conf.d/net

# Ensin yritetään DHCP:tä sitten APIPAa
config_eth0="dhcp"
fallback_eth0="apipa"

# Just use APIPA
config_eth0="apipa"

3.f. Bonding

Linkkien bondaus ja yhdistely onnistuu ohjelmalla net-misc/ifenslave.

Bondaus nostaa kaistanleveyttä. Jos käytössä on kaksi verkkoyhteyttä samaan verkkoon ne vou liittää yhteen siten, että ohjelmille ne näkyvät yhtenä yhteytenä.

Koodilistaus 6.1: bonding-asetusten teko tiedostoon /etc/conf.d/net

# Rajapintojen yhteenliittäminen
slaves_bond0="eth0 eth1 eth2"

# Bonding-rajapinnalle ei ehkä haluta osoitetta
config_bond0="null"

# Liittäminen riippuu kaikista liitettävistä rajapinnoista
  rc_need_bond0="net.eth0 net.eth1 net.eth2"

3.g. Siltaus (802.1d-tuki)

Siltaustuki löytyy paketista net-misc/bridge-utils.

Siltauksella liitetään verkkoja toisiinsa. Esimerkiksi jos käytössä on palvelin, joka liitetään Internetiin ADSL:llä ja langaton paikallinen yhteys siihen muista koneista, voidaan yhdistää sillan läpi ADSL:llä Internetiin.

Koodilistaus 7.1: Siltausasetusten tekeminen tiedostoon /etc/conf.d/net

# Siltauksen asetukset, ohjesivulta man brctl lisätietoja
brctl_br0="setfd 0" "sethello 0" "stp off"

# Lisää portteja siltaan br0
bridge_br0="eth0 eth1"

# Portit pitää asettaa nulleiksi ettei dhcp käynnisty
config_eth0="null"
config_eth1="null"

# Lopulta sillalle annetaan osoite, tähän voi käyttää DHCP:täkin
config_br0="192.168.0.1/24"

# Riippuvuus eht0:aan ja eth1:een jos ne tarvitsevat lisäasetuksia
rc_need_br0="net.eth0 net.eth1"

Tärkeää: Joissain silta-asetuksissa kannattaa pitää mielessä muuttujien nimet.

3.h. MAC-osoite

MAC-osoiteen voi muuttaa asetustiedostostakin.

Koodilistaus 8.1: MAC-osoitteen muuttaminen

# Aseta rajapinnan MAC-osoite
mac_eth0="00:11:22:33:44:55"

# Satunnaista kolme viimeistä tavua
mac_eth0="random-ending"

# Satunnaista kaikki samantyyppiset yhteydet (valokaapeli,
# kupari, langaton)
mac_eth0="random-samekind"

# Satunnaista kaikentyyppiset yhteydet
mac_eth0="random-anykind"

# Satunnaista täysin, huomaa: tämä ei useinkaan toimi niinkuin
# olisi odotettua
mac_eth0="random-full"

3.i. Tunnelointi

Tunnelointia varten ei tarvitse mitään eri ohjelmia, koska sen hoitaa rajapinnan käsittelijä.

Koodilistaus 9.1: Tunnelointiasetusten tekeminen tiedostoon /etc/conf.d/net

# GRE-tunneli
iptunnel_vpn0="mode gre remote 207.170.82.1 key 0xffffffff ttl 255"

# IPIP-tunneli
iptunnel_vpn0="mode ipip remote 207.170.82.2 ttl 255"

# Rajapinta-asetukset
config_vpn0="192.168.0.2 peer 192.168.1.1"

3.j. VLAN (802.1q-tuki)

VLAN-tuelle tarvitaan paketti net-misc/vconfig.

Virtuaali-LAN tarkoittaa joukkoa verkkolaitteita, jotka käyttäytyvät paikallisena verkkosegmenttinä, vaikkeivät fyysisesti olisikaan. VLANin osat näkevät vain saman VLANin osat paikallisina, vaikka jakaisivatkin fyysisen verkon muiden kanssa.

Koodilistaus 10.1: VLAN-asetusten tekeminen tiedostoon /etc/conf.d/net

# Määrittele VLAN-numerot rajapinnoille
# Muista ettei VLAN-numeroita täydennetä etunollilla
vlans_eth0="1 2"

# VLANille voi myös antaa asetuksia
# lisätietoja vconfigin man-sivuilta
vconfig_eth0="set_name_type VLAN_PLUS_VID_NO_PAD"
vconfig_vlan1="set_flag 1" "set_egress_map 2 6"

# Aseta rajapinnat tavalliseen tapaan
config_vlan1="172.16.3.1 netmask 255.255.254.0"
config_vlan2="172.16.2.1 netmask 255.255.254.0"

Tärkeää: Joissakin VLAN-asetuksissa kannattaa muistaa muuttujien nimet.

4. Langattomat verkot

4.a. Johdanto

Langattomia verkkoja on nykyään helpohko asentaa Gentooseen. Asennustapoja on kaksi, graafinen ja tekstipohjainen.

Helpointa on asentaa graafinen sovellus työpöytäympäristöön. Useimmat graafisista asetusohjelmista, kuten wicd ja NetworkManager, ovat helppokäyttöisiä.

Huomaa: wicdissä on mukana myös komentorivisovellus. Sen saa käyttöönsä asentamalla wicdin USE-asetuksen ncurses kanssa. Komento wicd-curses tarjoaa kätevän käyttöliittymän jollei halua asentaa täyttä gtk-pohjaista työpöytää, mutta tarvitsee helpon verkkoasetussovelluksen.

Jollei tarvitse graafista sovellusta, voi langattoman asentaa myös komentoriviltä muuttamalla muutamaa asetustiedostoa. Tämä lisää hieman asennusaikaa, mutta vaatii vähemmän ohjelmia asennettavaksi. Graafisten sovellusten käyttö on suoraviivaista, joten näissä ohjeissa kuvataan tarkemmin vain asetustiedostot tekstipohjaisessa asennuksessa.

Langattomat verkot voi asentaa joko sovelluksella wireless-tools tai wpa_supplicant. Langattomien asetukset tehdään kaikille rajapinnoille.

Wpa_supplicant on parempi vaihtoehto, mutta siinä ei ole kaikkia ajureita tuettuna. Luettelo ajureista löytyy wpa_supplicantin sivuilta .

Wireless-tools tukee lähes kaikkia kortteja ja ajureita, muttei osaa yhdistää WPA-kohteisiin. Jos verkot ovat avoimia tai käyttävät vain WEPiä, wireless-tools saattaa olla helpompi.

Varoitus: Linux-wlan-ng:tä ei tueta baselayoutissa vielä. Linux-wlan-ng:ssä on omat asetuksesnsa, jotka ovat kokonaan erilaiset kuin muilla. Sen tekijöiden mukaan kuitenkin asetukset ovat muuttumassa wireless-toolsin-laisiksi, joten sen jälkeen myös linux-wlan-ng on baselayoutissa.

4.b. WPA Supplicant

WPA Supplicant on paketti, joka yhdistää WPA-yhteensopiviin yhteyspisteisiin.

Koodilistaus 2.1: wpa_supplicantin asennus

# emerge net-wireless/wpa_supplicant

Tärkeää: Ytimessä pitää olla CONFIG_PACKET asetettu, jotta wpa_supplicant toimisi. Komennolla grep CONFIG_PACKET /usr/src/linux/.config saa selville onko tämä mukana valitussa kernelissä.

Huomaa: USE-asetusten mukaan wpa_supplicant saattaa asentaa graafisia Qt4:ää käyttäviä työkaluja KDE-työpöydälle. Ne saa käyttöön komennolla echo "net-wireless/wpa_supplicant qt4" >> /etc/portage/package.use ennen wpa_supplicantin asennusta.

Seuraavaksi asetetaan tiedostoon /etc/conf.d/net wpa_supplicant käyttöön wireless-toolsin tilalle (wireless-tools on oletus jos molemmat löytyvät).

Koodilistaus 2.2: /etc/conf.d/net-asetusten tekeminen wpa_supplicantille

# wpa_supplicant ennen wireless-toolsia
modules="wpa_supplicant"

# wpa_supplicantille pitää kertoa mikä ajuri on käytössä
# koska se ei osaa arvata oikeaa ajuria kovin hyvin
wpa_supplicant_eth0="-Dmadwifi"

Huomaa: Jos käytössä on host-ap-ajuri, se pitää asettaa Managed-tilaan, jotta wpa_supplicant toimisi oikein. Tämän voi hoitaa komennolla iwconfig_eth0="mode managed" tiedostossa /etc/conf.d/net.

Wpa_supplicant itse pitää vielä asettaa, ja se voi olla hankalaakin riippuen AP:istä mitä käytetään. Alla on esimerkki yksinkertaistetusta /usr/share/doc/wpa-supplicant-<version>/wpa_supplicant.conf.gz/, joka tulee paketin mukana.

Koodilistaus 2.3: /etc/wpa_supplicant/wpa_supplicant.conf-esimerkkiasetus

# Tämä rivi täytyy olla
ctrl_interface=/var/run/wpa_supplicant

# Vain root voi lukea asetuksia
ctrl_interface_group=0

# wpa_supplicant hoitaa AP-skannauksen ja -valinnan.
ap_scan=1

# Helppo tapa: WPA-PSK, PSK on ASCII-salana ja kaikki koodaukset sallittu
network={
    ssid="simple"
    psk="very secret passphrase"
    # Mitä korkeampi arvo sen pikemmin täsmäys toimii
    priority=5
}

# Kuten yllä, mutta SSID-kohtainen skannaus päällä (jos AP:t
# torjuvat broadcast SSID:t)
network={
    ssid="second ssid"
    scan_ssid=1
    psk="very secret passphrase"
    priority=2
}

# WPA-PSK käytössä. Mikä tahansa salaus toimii
network={
    ssid="example"
    proto=WPA
    key_mgmt=WPA-PSK
    pairwise=CCMP TKIP
    group=CCMP TKIP WEP104 WEP40
    psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb
    priority=2
}

# Raakatekstiyhteys (ei WPA:ta, ei IEEE 802.1X:ää)
network={
    ssid="plaintext-test"
    key_mgmt=NONE
}

# Jaettu WEP-avain (ei WPA:ta, ei IEEE 802.1X:ää)
network={
    ssid="static-wep-test"
    key_mgmt=NONE
    # lainausmerkeissä olevat ovat ASCII-avaimia
    wep_key0="abcde"
    # lainaamattomat numerosarjat ovat heksa-avaimia
    wep_key1=0102030405
    wep_key2="1234567890123"
    wep_tx_keyidx=0
    priority=5
}

# Jaettu WEP-avain (ei WPA:ta, ei IEEE 802.1X:ää)
# IEEE 802.11 -todennus
network={
    ssid="static-wep-test2"
    key_mgmt=NONE
    wep_key0="abcde"
    wep_key1=0102030405
    wep_key2="1234567890123"
    wep_tx_keyidx=0
    priority=5
    auth_alg=SHARED
}

# IBSS/ad-hoc-verkko WPA-None/TKIP:llä
network={
    ssid="test adhoc"
    mode=1
    proto=WPA
    key_mgmt=WPA-NONE
    pairwise=NONE
    group=TKIP
    psk="secret passphrase"
}

4.c. Langattomien työkalut

Alkuasetukset ja alkutila

Langattomat työkalut tarjoavat yleisen liittymän langattomien rajapintojen ja WEP-turvatasojen asettamiseen. Vaikka WEP on heikko salaustapa, se on yleisin.

Langattomien työkalujen asetuksia säädetään muutamalla muuttujalla. Esimerkkiasetukset tiedostossa joka mainitaan tuonempana kertovat kaiken mitä tarvitaan. Kannattaa muistaa, että ilman asetuksia oletus on yhdistää vahvimpaan salaamattomaan AP:hen.

Koodilistaus 3.1: Wireless-tolsin asennus

# emerge net-wireless/wireless-tools

Huomaa: Vaikka langattomien asetukset voi säätää tiedostossa /etc/conf.d/wireless tässä oppaassa käytetään /etc/conf.d/netiä.

Tärkeää: Muista myös muuttujien nimet.

Koodilistaus 3.2: /etc/conf.d/net-esimerkkiasetukset

# iwconfig ennen wpa_supplicantia
modules="iwconfig"

# Aseta WEP-avaimet ESSID1 ja ESSID2
# WEP-avaimia voi tehdä yhdestä neljään, mutta vain yksi voi olla
# käytössä kerralla. Oletusindeksiksi annetaan [1] asettamaan avain [1] ja
# sen jälkeen vaihdetaan aktiiviseksi avaimeksi [1].
# Tämä tehdään jos toiset ESSID:t käyttävät muita WEP-avaimia kuin 1
# Avaimen eteen liitetty s: tarkoittaa että se on ASCII-avain, muuten
# se on HEX-avain.
# enc open tarkoittaa avointa suojaust (varmin)
# enc restricted tarkoittaa rajoitettua suojausta (heikoin)
key_ESSID1="[1] s:yourkeyhere key [1] enc open"
key_ESSID2="[1] aaaa-bbbb-cccc-dd key [1] enc restricted"

# Allaoleva toimii vain jos AP:t skannataan

# Jos näkyvillä on useampia AP:itä niin valitaan
# suosituimmuusjärjestys
preferred_aps="'ESSID1' 'ESSID2'"

AP-valinnan hienosäätö

AP-valintaa voi lisätä myös hienosäätöasetuksia, mutta yleensä ei tarvitse.

On mahdollista päättää yhdistetäänkö vain haluttuihin AP:ihin vai ei. Oletuksena jos kaikki asetetut AP:t jäävät toimimatta niin yritetään yhdistää salaamattomiin AP:ihin. Tätä voi muuttaa associate_order-muuttujalla. Taulukossa on arvoja joita voi käyttää:

Arvo Kuvaus
any Oletus
preferredonly Yhdistää vain haluttuihin kohteisiin
forcepreferred Pakottaa yhteyden haluttuihin AP:ihin jos ne eivät löydy skannaamalla.
forcepreferredonly Ei skannaa AP:itä vaan yhdistää niihin järjestyksessä.
forceany Kuten forcepreferred, ja yrittää hakea mitä tahansa AP:ita jälkikäteen.

Lisäksi on olemassa blacklist_aps ja unique_ap-arvot. Blacklist_aps toimii kuin preferred_aps. Unique_ap asetetaan arvoksi yes tai no joka kertoo saako toinen langaton rajapinta käyttää samaa yhteyttä kuin ensimmäinen.

Koodilistaus 3.3: Blacklist_aps ja unique_ap

# Joskus on hyvä olla ottamatta yhteyttä joihinkin AP:ihin
blacklist_aps="'ESSID3' 'ESSID4'"

# Jos käytössä on useampia langattomia kortteja, voidaan valita
# halutaanko molemmat yhdistää samaan AP:hen vai ei.
# asetukset ovat ”yes” tai ”no”
# Oletus on yes.
unique_ap="yes"

Ad-Hoc tai Master

Jos halutaan päästä Ad-Hoc-tilaan yhteyden epäonnistuttuessa, sekin onnistuu.

Koodilistaus 3.4: Varmistuksena ad-hoc

adhoc_essid_eth0="This Adhoc Node"

Ja Ad-Hoc-verkkoihin yhdistäminen, tai Master-tila AP:ksi tulemiseksi? Tässä on myös asetukset sille: tarvitsee vain määritellä WEP-avain kuten yllä.

Koodilistaus 3.5: ad-hoc/master-asetukset

# Tila voi olla managed (oletus), ad-hoc tai master
# Kaikki tilat eivät toimi kaikilla ajureilla
mode_eth0="ad-hoc"

# Aseta rajapinnalle ESSID
# Managed-tilassa tämä yhdistää vain annettuun ESSID:hen eikä muuanne
essid_eth0="This Adhoc Node"

# Oletuksena on kanava 3 jollei muuta sanota
channel_eth0="9"

Tärkeää: Seuraava on suoraan NetBSD:n wavelan-ohjeesta the NetBSD documentation: Käytettävissä on 14 kanavaa; Kanavat 1—11 ovat käytettävissä Pohjois-Amerikassa, 1—14 Euroopassa, 10—13 Ranskassa ja 14 Japanissa. Jollet ole varma, lue käyttöohjeistasi. Varmista että käyttämäsi kanava on sama kuin AP:lläsi (tai toisella kortilla ad-hoc-verkossa). Lähes koko Euroopassa ja Pohjois-Amerikassa oletusarvo on 3; Ranskassa 11 ja Japanissa 14.

Langattomien ongelmien selvittely

On olemassa joitakin muuttujia joita voi käyttää selvittääkseen ongelmia langattomien käynnistyksessä ja yhteyksissä. Taulukossa on joitain kokeiltavia asioita:

Muuttuja Oletusarvo Kuvaus
iwconfig_eth0 man iwconfig
iwpriv_eth0 man iwpriv
sleep_scan_eth0 0 Sekuntien määrä odottamista ennen skannausta. Tätä tarvitaan kun ajuri tai firmware vaatii aikaa käynnistyäkseen.
sleep_associate_eth0 5 Sekuntien määrä rajapinnan liittymisestä AP:hen ennen seuraavaan siirtymistä.
associate_test_eth0 MAC Jotkin ajurit eivät nollaa MAC-osoitetta viallisesta tai kun yhdistysyritys epäonnistuu. Jotkin ajurit eivät nollaa laatutasoj kun menettevät yhteyden. Asetuksiksi kelpaa MAC, laatuasetus tai all.
scan_mode_eth0 Jotkin ajurit skannaavat ad-hoc-tilassa, jos skannaus epäonnistuu, aseta tähän ad-hoc.
iwpriv_scan_pre_eth0 Lähetä iwpriv-komennot ennen skannausta, man iwpriv antaa lisätietoja
iwpriv_scan_post_eth0 Lähetä iwpriv-komennot skannaamisen jälkeen, man iwpriv kertoo lisätietoja

4.d. ESSID-kohtaiset asetukset

Joskus ESSID1 vaatii staattisen IP:n ja ESSID2 vaatii DHCP:n. Käytännössä monetkin asetukset voi säätää ESSID-kohtaisesti.

Huomaa: Nämä toimivat jos käytössä on WPA_supplicant tai Wireless-tools.

Tärkeää: Muista myös muuttujien nimet.

Koodilistaus 4.1: Korvaa verkon asetukset ESSID-kohtaisesti

config_ESSID1="192.168.0.3/24 brd 192.168.0.255"
routes_ESSID1="default via 192.168.0.1"

config_ESSID2="dhcp"
fallback_ESSID2="192.168.3.4/24"
fallback_route_ESSID2="default via 192.168.3.1"

# Myös muita nimipalvelimia voi antaa
# DHCP korvaa nämä jollei sitä kielletä
dns_servers_ESSID1="192.168.0.1 192.168.0.2"
dns_domain_ESSID1="some.domain"
dns_search_domains_ESSID1="search.this.domain search.that.domain"

# AP:n MAC-osoitteen korvaus
# Toimii kätevästi jos käytössä on eri paikkoja samalla ESSID:llä
config_001122334455="dhcp"
dhcpcd_001122334455="-t 10"
dns_servers_001122334455= "192.168.0.1 192.168.0.2"

5. Lisätoimintojen tekeminen

5.a. Normaalit funktiokoukut

On olemassa neljä funktiota, jotka kutsutaan start- ja stop-operaatioissa. Nämä funktiot nimetään rajapinnan nimen mukaan siten, että yksi funktio voi käyttää monia laitteita.

Paluuarvot preup- ja predown-funktioille on 0 (onnistumisissa), jotta laitteen asettaminen tai asetusten poisto voi jatkua. Jos preup on jotain muuta, rajapinnan asetukset perutaan. Jos predown on jotain muuta, rajapinnan asetusten poistoa ei jatketa.

Paluuarvot postup- ja postdown-funktioille ohitetaan, sillä niille ei voi tehdä mitään enää vaikka ne ilmoittaisivat virheestä.

${IFACE} on rajapinta jota käynnistetään
${IFVAR} on ${IFACE} bashin muuttujana.

Koodilistaus 1.1: Pre/post up/down -funktioita /etc/conf.d/netissä

preup() {
    # Testataan linkin rajapintaa ennen nostamista.
    # Tämä toimii vain joillain laitteilla ja vaatii ethtoolin asennettuna
    
    if ethtool ${IFACE} | grep -q 'Link detected: no'; then
        ewarn "No link on ${IFACE}, aborting configuration"
        return 1
    fi

    # Muista return 0 onnistuttua
    return 0
}

predown() {
    # oletuksena skripti testaa NFS-juuren ja kieltää verkkorajapinnan
    # tiputuksen tapauksittain. Jos predown() määritellään itse, oletusarvo
    # häipyy, joten tässä on sama funktio jos kuitenkin se halutaan.
    if is_net_fs /; then
        eerror "root filesystem is network mounted -- can't stop ${IFACE}"
        return 1
    fi

    # Muista return 0 onnistuttua
    return 0
}

postup() {
    # Tätä voisi käyttää vaikka dyndns-palvelun kanssa. Toinen
    # vaihtoehto on vaikkapa postin toimitus kun rajapinta on ylhäällä
    
       return 0
}

postdown() {
    # Tämä funktio on täällä kai symmetrian vuoksi, kehittäjä itse
    # ei ainakaan keksi mitään hyötykäyttöä ;-)
    return 0
}

Huomaa: Täysiä esimerkkejä löytyy tiedostosta /etc/conf.d/net.example.

5.b. Langattomien työkalujen funktiokoukut

Huomaa: Nämä eivät toimi WPA Supplicantin kanssa, mutta ${ESSID}- ja ${ESSIDVAR}-muuttujat ovat käytössä postupissa.

On olemassa kaksi funktiota, jotka voi määritellä tänne. Funktioiden nimet ovat rajapinnan nimet siten, että yksi funktio sopii monelle laitteelle.

Palautusarvojen pitää olla 0 (onnistumiselle), jotta asetusten teko tai purku voi jatkua. Jos preassociate palauttaa jotain muuta, rajapinnan asetukset perutaan.

Postassociaten paluuarvo ohitetaan, sillä sille ei voi tehdä mitään vaikka siinä olisikin virhe.

${ESSID} on yhdistettävän AP:n ESSID
${ESSIDVAR} on ${ESSID} bash-muuttujana.

Koodilistaus 2.1: pre/post association -funktioita

preassociate() {
    # Allaoleva lisää muuttujat leap_user_ESSID ja leap_pass_ESSID.
    # kun ne on asetettu yhdistettyyn ESSID:hen voidaan ajaa CISCOn LEAP-skripti
    

    local user pass
    eval user=\"\$\{leap_user_${ESSIDVAR}\}\"
    eval pass=\"\$\{leap_pass_${ESSIDVAR}\}\"

    if [[ -n ${user} && -n ${pass} ]]; then
        if [[ ! -x /opt/cisco/bin/leapscript ]]; then
            eend "For LEAP support, please emerge net-misc/cisco-aironet-client-utils"
            return 1
        fi
        einfo "Waiting for LEAP Authentication on \"${ESSID//\\\\//}\""
        if /opt/cisco/bin/leapscript ${user} ${pass} | grep -q 'Login incorrect'; then
            ewarn "Login Failed for ${user}"
            return 1
        fi
    fi

    return 0
}

postassociate() {
    # Tämä funktio on täällä vain symmetrian takia ;-)
    return 0
}

Huomaa: ${ESSID} ja ${ESSIDVAR} eivät ole mukana predown- ja postdown-funktioissa.

Huomaa: Täysiä esimerkkejä löytyy tiedostosta /etc/conf.d/net.example.

6. Verkkojen ylläpito

6.a. Verkon ylläpito

Jos käytettyä tietokonetta liikutellaan usein, verkkoliitäntä saattaa puuttua tai AP on tavoittamattomissa. Joskus on myös hyödyllistä jättää yhteys pois vaikka se olisikin saatavilla.

Tässä joitain työkaluja, jotka auttavat ylläpidossa.

Huomaa: Tässä kerrotaan vain ifplugd:stä, mutta muitakin vaihtoehtoja on, esimerkiksi netplug. Netplug on kevyt versio ifplugdista, mutta se vaatii, että verkkoajurit toimivat oikein, mikä ei aina ole totta.

6.b. Ifplugd

ifplugd on palvelu joka käynnistää ja sammuttaa rajapintoja kun verkkokaapeli kiinnitetään tai poistetaan. Se hoitaa myös AP:iden tunnistuksen ja yhdistyksen kun sellainen osuu kohdalle.

Koodilistaus 2.1: Ifplugd:n asentaminen

# emerge sys-apps/ifplugd

Asetukset ifplugd:lle ovat aika suoraviivaisia. Asetustiedosto on /etc/conf.d/net. man ifplugd Kertoo tarkemmin muuttujista. Tiedosto /etc/conf.d/net.example sisältää joitain esimerkkejä

Koodilistaus 2.2: Ifplug-asetusesimerkki

(Korvaa eth0 rajapinnalla)
ifplugd_eth0="..."

(Langattomalle)
ifplugd_eth0="--api-mode=wlan"

Useiden verkkoyhteyksien hallitsemisen lisäksi on usein tarpein hallita useita DNS:iä ja asetuksia. Tämä on myös hyödyllistä jos IP tulee DHCP:ltä. Asennettava sovellus on openresolv.

Koodilistaus 2.3: Resolvconf-gentoon asennus

# emerge openresolv

Ohjesivulla man resolvconf on lisätietoja.

Tulostettava muoto

Tämä sivu on viimeksi päivitetty 13. elokuuta 2011

Tätä käännöstä ei enää ylläpidetä

Tiivistelmä: Tämän käsikirjan tarkoitus on keskittää Gentoo/Linux-ohjeet. Tämä käsikirja kertoo verkottoman asennuksen x86-järjestelmillä ja oppaat Gentoon sekä Portagen käyttöön.

Sven Vermeulen
Tekijä

Daniel Robbins
Tekijä

Chris Houser
Tekijä

Jerry Alexandratos
Tekijä

Seemant Kulleen
Gentoon x86-kehittäjä

Tavis Ormandy
Gentoon alpha-kehittäjä

Aron Griffis
Gentoon alpha-kehittäjä

Brad House
Gentoon AMD64-kehittäjä

Guy Martin
Gentoon HPPA-kehittäjä

Pieter Van den Abeele
Gentoon PPC-kehittäjä

Joe Kallar
Gentoon SPARC-kehittäjä

John P. Davis
Toimittaja

Pierre-Henri Jondot
Toimittaja

Eric Stockbridge
Toimittaja

Rajiv Manglani
Toimittaja

Jungmin Seo
Toimittaja

Stoyan Zhekov
Toimittaja

Jared Hudson
Toimittaja

Colin Morey
Toimittaja

Jorge Paulo
Toimittaja

Carl Anderson
Toimittaja

Jon Portnoy
Toimittaja

Zack Gilburd
Toimittaja

Jack Morgan
Toimittaja

Benny Chuang
Toimittaja

Erwin
Toimittaja

Joshua Kinard
Toimittaja

Xavier Neys
Toimittaja

Grant Goodyear
Katselmoija

Gerald J. Normandin Jr.
Katselmoija

Donnie Berkholz
Katselmoija

Ken Nowack
Katselmoija

Lars Weiler
Kirjoittaja

Flammie Pirinen
Vastuullinen kääntäjä

Jouni Hätinen
Käännöksen laatutarkistaja

Donate to support our development efforts.

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