Gentoo-käsikirja x86:lle
Sisällysluettelo:
-
Gentoon asentaminen
Tässä osassa kerrotaan kuinka Gentoo-järjestelmä asennetaan.
-
Gentoo Linuxin asentamisesta
Tässä kappaleessa kerrotaan Gentoon asennustavoista, jotka tässä käsikirjassa
on kuvattu
-
Oikean asennusvälineen valitseminen
Tässä kappaleessa kerrotaan kuinka Gentoo
asennetaan Minimal asennus-CD:ltä. Myös Installer asennus-CD -asennus on
mahdollinen.
-
Verkon asetusten tekeminen
Tässä kappaleessa kerrotaan miten verkkoasetukset tehdään,
jos halutaan hakea ohjelmien tuoreimpien versioiden lähteet asennettaessa.
-
Kovalevyjen valmistelu
Tässä kappaleessa kerrotaan kuinka levyn voi osioida tulevaa käyttöä varten
-
Gentoon asennustietojen asentaminen
Tässä kappaleessa kerrotaan kuinka stage3-tiedosto puretaan ja
Portagen asetukset säädetään kohdilleen.
-
Gentoo-järjestelmän perustan asentaminen
Tässä kappaleessa kerrotaan stage3-asennuksen perusjärjestelmän
aikaansaamiseksi.
-
Ytimen asetusten tekeminen
Tässä kappaleessa kerrotaan miten Linux-ydin asetetaan.
-
Järjestelmän asetusten tekeminen
Tässä kappaleessa luodaan yleiskatsaus
asennustiedostojen muokkaamiseen.
-
Tarvittavien järjestelmätyökalujen asentaminen
Tässä kappaleessa
opitaan valitsemaan ja asentamaan joitain tärkeitä työkaluohjelmia.
-
Käynnistyslataimen asetusten tekeminen
-
Gentoo-asennuksen viimeistely
Tässä kappaleessa luodaan yksi tai useampi käyttäjätunnus järjestelmään
ja voidaan uudelleenkäynnistää Gentoo-järjestelmään.
-
Minne seuraavaksi?
Tässä kappaleessa kerrotaan mitä valmiilla järjestelmällä voi tehdä.
-
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.
-
Johdanto Portageen
Tässä kappaleessa kerrotaan ohjelmistonhallinnasta muutamia yksinkertaisia
juttuja, jotka kaikkien käyttäjien tulisi tietää.
-
USE-asetukset
Tässä kappaleessa opitaan
käyttämään USE-asetuksia ja ymmärtämään niiden vuorovaikutus järjestelmään.
-
Portagen ominaisuudet
Tässä kappaleessa kerrotaan Portagen mahdollisuuksista, kuten
rinnakkaisjärjestelmien käytöstä kääntämiseen, ccachen käytöstä ja sen
sellaisesta.
-
Initskriptit
Tässä kappaleessa kerrotaan kaikki initskriptien
toiminnallisuuksista ja selittää miten käyttää tällaisia komentojonotiedostoja.
-
Ympäristömuuttujat
Tässä kappaleessa kerrotaan miten ympäristömuuttujia hallitaan ja kuvataan
yleisimmin käytetyt muuttujat.
-
Portagen käyttö
Tässä osassa kerrotaan kuinka Portage, Gentoon ohjelmiston hallinta toimii.
-
Tiedosto ja hakemistot
Tässä kappaleessa kerrotaan tarkemmin, missä Portage säilyttää tiedostojaan
ja muuta dataansa.
-
Asetusten säätäminen muuttujilla
Tässä kappaleessa kerrotaan Portagen asetusmuuttujista.
-
Ohjelmistohaarojen sekoittaminen
Tässä kappaleessa kerrotaan, kuinka Portagella voi asentaa eri arkkitehtuuri-
ja stabiilisuusversioita ja kuinka voidaan ohittaa versiotiedot
tapauskohtaisesti.
-
Muut Portagen työkalut
Tässä kappaleessa kerrotaan, kuinka voit parantaa elämääsi dispatch-confilla
ja vastaavilla työkaluilla.
-
Portage-puun mukauttaminen ja ohitus
Tässä kappaleessa kerrotaan muutamia vihjeitä, kuinka voit käyttää omaa
ohjelmistohakemistoasi virallisen Portage-puun ohella, kuinka voit synkronisoida
puusta vain ne luokat jotka haluat, kuinka voit injektoida paketteja ja niin
edelleen.
-
Gentoon verkkoasetukset
Kattava opas verkkoasetusten tekoon Gentoo-järjestelmässä.
-
Aloittaminen
Tässä kappaleessa kerrotaan miten verkon saa nopeasti käyttöön yleisimmissä
tapauksissa.
-
Erikoisasetukset
Tässä kappaleessa kerrotaan miten asetukset toimivat. Tämä kannattaa lukea
ennen kuin käy modulaaristen verkkoasetusten kimppuun.
-
Modulaariset verkkoasetukset
Tässä kappaleessa kerrotaan Gentoon joustavista verkkoasetusmahdollisuuksista,
DHCP-asiakasohjelmista, siltauksista, VLANeista ja muista.
-
Langattomat verkot
Tässä kappaleessa kerrotaan langattomien verkkojen asettamisen ongelmista.
-
Lisätoimintojen tekeminen
Tässä kappaleessa kerrotaan miten tehokäyttäjä voi lisätä omia
erikoistoimintojaan verkkoasetuksiinsa.
-
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
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
2–11. 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.
-
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ä, olemassaolevasta järjestelmästä,
käynnistävältä CD:ltä kuten Knoppixilta, verkkokäynnistysjärjestelmästä,
hätäkäynnistyslevykkeiltä jne.
Tässä dokumentissa kerrotaan asennus Gentoon asennus-CD:ltä, tai joissain
tapauksissa verkkokäynnistyksellä. Tällä asennusohjeella asennetaan pakettien
tuoreimmat versiot verkoitse; verkottoman asennuksen käyttäjien tulee suunnata
kohti Gentoo 2008.0:n verkottoman asennuksen
käsikirjoja, joissa opastetaan asennus ilman verkkoyhteyttä.
Muita asennustapoja varten on saatavilla Alternative Installation Guide. Lisäksi
dokumentissa Gentoo Installation
Tips & Tricks on paljon hyödyllistä luettavaa erilaisista
asennuskeinoista. Jos tämä opas vaikuttaa liian yksityiskohtaiselta ja
aloittelijalle suunnatulta, kannattanee katsoa dokumenttiluettelosta, josko arkkitehtuuriin
sopivaa pika-asennusopasta olisi saatavilla.
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 käyttää valmiiksikäännettyjä paketteja 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
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
vastaukset usein kysyttyihin kysymyksiin ja
Gentoon muut ohjeet.
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.
2. Oikean asennusvälineen valitseminen
2.a. Laitteistovaatimukset
Johdanto
Ennen aloittamista on hyvä listata Gentoon asentamiseen tarvittavat
laitteistot.
Laitteisto
|
Minimal CD |
LiveCD |
| CPU |
i486 tai parempi |
i686 tai parempi |
| RAM-muisti |
64 megatavua |
256 megatavua |
| Levytila |
1.5 gigatavua (poislukien swapin) |
| Swap |
vähintään 256 megatavua |
2.b. Gentoo asennus-CD:t
Johdanto
Gentoo asennus-CD:t ovat käynnistettäviä CD:itä ja sisältävät
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.
Voit käynnistää koneesi miltä tahansa näistä asennus-CD:istä sellaiseen tilaan,
jossa voit asettaa verkon, muokata osiointia ja
aloittaa Gentoon asennuksen Internetistä. Tällä hetkellä tarjolla on kahta
erilaista asennus-CD:tä, jotka ovat yhtäläisen helppoja Gentoon asentamiseen,
kunhan vain suoritetaan verkkopohjaista asennusta tuoreimmilla paketeilla.
Tärkeää:
Gentoon voi asentaa ilman asennuksenaikausta Internet-yhteyttä vain
käyttämällä asennusohjeita, jotka
on annettu Gentoon 2008.0 verkottomissa
käsikirjoissa.
|
Tarjolla olevat asennus-CD:t ovat:
-
Gentoon Minimal asennus-CD on pieni, käynnistettävä CD, jonka ainoa
tarkoitus on olla käynnistysjärjestelmänä, ja valmistaa verkkoyhteys
Gentoon asennusta varten.
-
Gentoon Installer asennin-CD on käynnistettävä CD, joka sisältää
kaiken mitä Gentoon asentamiseen tarvitsee. Siinä on myös graafinen
käyttöympäristö sekä graafinen ja konsolipohjainen asennin. Lisäksi
CD:llä on asennusohjeet.
Alla on lueteltuina asennus-CD:iden edut ja haitat helpottamaan valintaa.
Gentoo Minimal asennus-CD
Minimal asennus-CD on tiedostossa install-x86-minimal-2008.0.iso ja
kooltaan vain 57 megatavua. Tällä voi asentaa Gentoon,
mutta vain jos Internet-yhteys on asennuksen aikana käytettävissä.
| Minimal asennus-CD |
Hyödyt ja haitat |
| + |
Pienin lataus |
| - |
Ei sisällä stage3:a, Portagen otosta, GRP-paketteja eikä siten ole sopiva
verkottomaan asennukseen.
|
Gentoo Installer Live CD
Installer Live CD on tiedostossa livecd-i686-installer-2008.0-r1.iso ja 655 megatavun kokoinen. Tällä asennin-CD:llä voi asentaa
Gentoon, myös ilman toimivaa Internet-yhteyttä, jos tarvitsee Gentoota
sellaiseen koneeseen.
| Asennin-CD |
Hyödyt ja haitat |
| + |
Sisältää kaiken tarvittavan. Et edes tarvitse nopeaa verkkoyhteyttä
asennettaessa.
|
| - |
Valtava määrä ladattavaa. |
Stage3-paketti
Stage3-paketti on pakattu arkistotiedosto, joka sisältää hyvin minimalistisen
Gentoo-käyttöjärjestelmän. Tällä pystytään asentamaan täysimittainen Gentoo
tämän oppaan mukaan. Varhemmat versiot Gentoon käsikirjasta kertoivat myös
asennuksen stage1- ja stage2-paketeista, mutta nykyisin suositeltavaa on vain
stage3:n käyttö. Jos haluat välttämättä käyttää stage1- tai stage2-paketteja,
lisätietoa aiheesta on VUKK:n kysymyksessä
”Miten asennan stage1- tai stage2-paketista?”.
Stage3-paketit on ladattavissa hakemistosta
releases/x86/2008.0/stages/ miltä tahansa palvelimelta
Gentoon peilipalvelinluettelossa, eikä
niitä ole asennus-CD:llä.
2.c. Lataa, polta ja käynnistä asennus-CD
Asennus-CD:n lataus ja poltto
Aloita lataamalla ja polttamalla valitun asennus-CD:n.
Asennus-CD:t voi noutaa peilipalvelimilta.
Ne löytyvät hakemistosta releases/x86/2008.0/installcd/.
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-2008.0.iso.DIGESTS).
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 allekirjoitustiedot 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ä Gentoo
VUKK:sta.
-
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→Burn Image.
Etsi ISO-tiedosto valikosta Image to Burn. Lopulta napsauta
Start.
Asennus-CD:n käynnistys
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ää asennus-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.
Laitteistoasetukset:
- acpi=on
-
Lataa ACPI-tuuen ja käynnistää acpid-palvelun CD:ltä. Käytä tätä jos
ACPI-tuki on tarpeellista laitteiston toiminnan kannalta. Tätä ei tarvita
Hyperthreadingiä varten.
- acpi=off
-
Poista ACPI-tuki kokonaan. Tätä tarvitaan joillain vanhemmilla järjestelmillä
ja silloin kun APM-tuki on välttämätön. Tämä myös poistaa Hyperthreading-tuen.
- console=X
-
Käytä sarjakonsolia CD:llä. Ensimmmäinen asetus on
laitenimi, esim. ttyS0 x86:lle, sitten yhteysasetukset pilkuin eroteltuna.
Oletusarvo on 9600,8,n,1.
- dmraid=X
-
Anna device-mapper RAIDille asetuksia. Käytä lainausmerkkejä asetusten
ympärillä.
- doapm
-
Lataa APM-tuki. Myös acpi=off pitää olla.
- dopcmcia
-
Lataa PCMCIA- ja Cardbus-tuet sekä käynnistä pcmcia cardmgr CD:ltä. Käytä
vain jos käynnistettäessä tarvitaan PCMCIA/Cardbus-laitteita.
- doscsi
-
Lataa SCSI-ajurit. Tätä pitää käyttää myös USB-laitteiden kanssa, sillä
ne käyttävät Linuxin SCSI-järjestelmää.
- sda=stroke
-
Mahdollista kovalevyn osiointi jos BIOS ei osaa käsitellä suuria levyjä.
Tätä tarvitaan vain vanhojen BIOSien kanssa. Korvaa sda laitteella, jolla
asetus vaaditaan.
- ide=nodma
-
Älä käytä DMA:ta. Tämä asetus tarvitaan joidenkin IDE-piirine ja CD-asemien
kanssa. Jos järjestelmän CD-asemat eivät toimi, tätä kannattanee koettaa.
Tämä asetus poistaa myös hdparmin käytöstä.
- noapic
-
Poista APIC käytöstä. APIC aiheuttaa ongelmia joillakin vanhemmilla
laitteistoilla.
- nodetect
-
Poista kaikki laitteiston automaattitunnistus sekä DHCP-tunnistus.
Tätä asetusta on hyvä käyttää debuggauksessa apuna.
- nodhcp
-
Poista DHCP-tunnistus käytöstä. Tämä on hyödyllinen asetus verkoissa, joissa
käytetään vain staattisia asetuksia.
- nodmraid
-
Poista device-mapper RAID käytöstä, kuten esimerkikis laitteiston IDE/SATA
RAID -ajurit.
- nofirewire
-
Poista Firewire-ajurit käytöstä. Tämä on tarpeen jos Firewire-laitteisto
estää CD:tä käynnistymästä.
- nogpm
-
Poista konsolihiiren tuki eli gpm käytöstä.
- nohotplug
-
Poista hotplug- ja coldplug-tunnistukset initscripteistä. Tätä
voi käyttää ajurivikoja tai CD-ongelmia etsiessä.
- nokeymap
-
Poista näppäinkartan asetusmahdollisuu käytöstä.
- nolapic
-
Poista paikallinen yhden prosessorin APIC käytöstä.
- nosata
-
Poista Serial ATA -ajurit käytöstä.
- nosmp
-
Poista SMP käytöstä SMP-ytimillä.
- nosound
-
Poista äänituki ja ääniasetukset käytöstä.
- nousb
-
Poista automaattinen USB-ajurien lataus käytöstä.
- slowusb
-
Lisää taukoja käynnistysprosessiin hitaita USB-CD-asemia varten, kuten
IBM BladeCentereille.
LVM-asetukset:
- doevms
-
Käytä IBM:n EVMS:ää. Ei toimi turvallisesti lvm:n kanssa.
- dolvm
-
Käytä Linuxin LVM:ää. Ei toimi turvallisesti evms:n kanssa.
Muut asetukset:
- debug
-
Käytä debuggauskoodia. Näyttää yleensä sekavalta, sillä debuggauskoodi
tulostaa paljon tekstiä ruudulle.
- docache
-
Tallenna koko ajettava osio CD:stä RAM-muistiin. Tämän avulla voi vaikkapa
unmountata CD:n ja käyttää toista CD:tä asennujksen aikana. Tätä varten
RAMia pitää olla ainakin tuplasti CD:n koon verran.
- doload=X
-
Lataa initrd:ltä listatut moduulit ja niiden riippuvuudet. X:n kohdalle
listataan moduulien nimet.
Moduulit erotetaan toisistaan pilkuin.
- dosshd
-
Käynnistä sshd etäasentamista varten.
- passwd=foo
-
Aseta rootin salasanaksi foo. Tämä on pakollinen asetus dosshd:lle, sillä
rootin salasana arvotaan automaattisesti.
- noload=X
-
Estä moduulin lataaminen initrd:ltä. X:n syntaksi on sama kuin
doload-asetuksessa.
- nonfs
-
Älä lataa portmapia tai nfsmountia.
- nox
-
Älä lataa X:ää X-pohjaisella LiveCD:llä. Käynnistää komentoriviltä.
- scandelay
-
Lisää 10 sekunni tauko käynnistysosioihin hitaiden laitteiden käynnistystä
varten.
- scandelay=X
-
Lisää X sekunnin tauko käynnistysosioihin hitaiden laitteiden käynnistystä
varten. Korvaa X numeroilla.
Huomaa:
CD-käynnistys tarkistaa no-optiot ennen do-optioita, joten jäljemmillä voi
järjestellen yliajaa ne.
|
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.3: Asennus-CD:n käynnistys |
boot: gentoo dopcmcia
|
Seuraavaksi eteesi tulee uusi käynnistysruutu ja edistymispalkki
(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 päästä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.
Laitteiston asetukset
Asennus-CD yrittää tunnistaa mahdollisimman paljon laitteistoa ja ladata
tarvittavat ydin-moduulit. Enimmäkseen se onnistunee siinä hyvin, joskus
kuitenkin pitää lisätä jotain käsin. Jos PCI-tutkinta ei löydä jotain laitteita,
ne pitää ladata itse.
Seuraavassa esimekrissä ladataan moduulia 8139too, joka on eräänlainen
verkkokorttiajuri:
Koodilistaus 3.4: Ydinmoduulin lataus |
# modprobe 8139too
|
Valinnainen: Käyttäjätilit
Jos asennusta suorittavat muutkin käyttäjät tai tarkoitus on käyttää
esim. irssiä asennuksen aikana ilman rootin oikeuksia, sitä varten
pitää tehdä käyttäjätilejä ja vaihtaa rootin salasana.
Rootin salasanaa vaihdetaan passwd-komennolla:
Koodilistaus 3.5: Rootin salasanan vaihtaminen |
# passwd
New password:
Re-enter password:
|
Käyttäjätunnus pitää ensin luoda nimeltä, ja sitten asettaa sille salasana.
Tämä toteutetaan komennoilla useradd ja passwd. Seuraavassa
luodaan käyttäjä "pekka".
Koodilistaus 3.6: Käyttäjätunnuksen luonti |
# useradd -m -G users pekka
# passwd pekka
New password:
Re-enter password:
|
Voit kirjautua käyttäjäksi roottina komennolla su:
Koodilistaus 3.7: Käyttäjätunnuksen vaihtaminen |
# su - john
|
Valinnaine: Ohjeiden lukeminen asennettaessa
Gentoon käsikirjaa voi lukea (joko CD:ltä tai verkosta) asennuksen aikana,
jos on tehnyt käyttäjätunnuksen sitä varten (ks. Valinnainen: käyttäjätunnukset). Aloitetaan
painamalla Alt-F2 ja kirjaudutaan sisään käyttäjänä.
CD:llä olevia ohjeita voi lukea lynxillä:
Koodilistaus 3.8: CD:n ohjeiden lukeminen lynxillä |
# lynx /mnt/cdrom/docs/html/index.html
|
Parempi vaihtoehto on kuitenkin olutaa tuorein versio netistä. Sitäkin
voi lukea lynxillä, mutta vasta kun verkkoasetukset-kappale on
tehty (verkossa on myös suomennetut ohjeet, jota kaikilla CD:illä ei ole):
Koodilistaus 3.9: Verkko-ohjeiden lukeminen lynxillä |
# lynx http://www.gentoo.org/doc/fi/handbook/handbook-x86.xml
|
Takaisin pääse painamalla Alt-F1.
Valinnainen: SSH-palvelun käyttö
Jos asennusta pitää suorittaa etänä muiden käyttäjien avulla, pitää heitä
varten tehdä käyttäjätilit, tai jopa antaa rootin salasanat heille (mutta
vain luotetuille käyttäjille).
SSH-palvelu käynnistetään seuraavasti:
Koodilistaus 3.10: SSH-palvelun käynnistys |
# /etc/init.d/sshd start
|
SSH:ta ei voi kuitenkaan käyttää ilman verkkoyhteyttä, joten seuraavaksi
tehdään verkkoasetukset.
3. Verkon asetusten tekeminen
3.a. Automaattinen verkon tunnistus
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 1.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
|
Valinnainen: Välipalvelinten 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 1.2: Välipalvelinten määrittely |
# export http_proxy="http://proxy.gentoo.org:8080"
# export ftp_proxy="ftp://proxy.gentoo.org:8080"
# export RSYNC_PROXY="proxy.gentoo.org:8080"
|
Jos välipalvelin vaatii käyttäjätunnuksen ja salasanan käyttämistä,
ne voidaan antaa seuraavasti:
Koodilistaus 1.3: Käyttäjätunnuksen ja salasanan lisääminen välipalvelinmuuttujaan |
http://käyttäjätunnus:salasana@proxy.gentoo.org:8080
|
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 1.4: Tarkempaa verkon testausta |
# ping -c 3 www.gentoo.org
|
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ä :)
3.b. Verkon automaattiasetukset
Jollei verkkoyhteytesi toimi suoraan käynnistyksestä, jotkin asennusvälineet
sisältävät
net-setup-komennon (tavallisille ja langattomille verkkoyhteyksille),
pppoe-setup-komennon (ADSL-korteille) tai
pptp-toiminnon (PPTP-käyttäjille, vain x86-, amd64-, alpha-,
ppc- ja ppc64-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 2.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: PPP:n säätäminen
Jos internetyhteytesi käyttää PPPoE:tä, asennus-CD:illä (kaikilla niistä) on
asioiden helpottamiseksi toiminto rp-pppoe. Komennolla
pppoe-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 2.2: Ppp:n käyttö |
# pppoe-setup
# pppoe-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ö
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 2.3: /etc/ppp/chap-secretsin muokkaus |
# nano -w /etc/ppp/chap-secrets
|
Tarvittaessa muokkaa tiedostoa /etc/ppp/options.pptp:
Koodilistaus 2.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 2.5: Dial-in-palvelimeen yhdistäminen |
# pptp <palvelimen ip>
|
Seuraavaksi jatka Kovalevyjä valmistellen.
3.c. 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 pppoe-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 3.1: Moduulien etsiminen |
# ls /lib/modules/`uname -r`/kernel/drivers/net
|
Jos näet sopivan ajurin verkkokortillesi, käytä modprobea sen
lataamiseen:
Koodilistaus 3.2: Ydinmoduulin lataaminen modprobella |
# modprobe pcnet32
|
Tarkastaaksesi onko verkkokortti nyt toiminnassa, käytä ifconfigia.
Toimiva verkkokortti näkyy tulosteessa jokseenkin tällaisena:
Koodilistaus 3.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 3.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 pppoe-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 3.5: Dhcpcd:n käyttö |
# dhcpcd eth0
# 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 löytyy vain x86-, AMD64 ja ppc-asennus-CD:iltä. Jos se
puuttuu, 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 3.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 wlan0 tai
ra0
eikä suinkaan eth0.
|
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 3.7: ESSID:n muuttaminen ja WEP-avaimen lisäys |
# iwconfig eth0 essid GentooNoodi
# iwconfig eth0 key 1234123412341234abcd
# 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 3.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 3.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 3.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 3.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 3.12: Routen käyttö |
# route add default gw ${GATEWAY}
|
Sitten avaat tiedoston /etc/resolv.conf
suosikkieditorillasi (esimerkissä käytämme nanoa):
Koodilistaus 3.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 3.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. Josdatus lohkolaitetiedostoihin
Lohkolaitteet
Tämä on yleiskatsaus Gentoon ja Linuxin levyihin, tiedostojärjestelmiin,
osioihin ja lohkolaitteisiin. Johdatuksen jälkeen on helpompi asentaa osiot
ja tiedostojärjestelmät Gentoon asennukseen.
Aluksi keskitytään lohkolaitteisiin. Tyypillisin on ensimmäinen kovalevyasema,
/dev/sda. SCSI- ja SATA-laitteet ovat nimiltään tyyppiä
/dev/sd*. Myös libataa käyttävät IDE-asemat ovat
/dev/sd*-nimisiä. Vain vanhaa laiterajapintaa käyttävät IDE-asemat
ovat nimeltään /dev/hd*.
Lohkolaitteet ovat abstrakteja rajapintoja levyn käsittelyyn. Ohjelmistot
käyttävät näitä rajapintoja kirjoittamiseen välittämättä siitä onko allaoleva
asema IDE-, SCSI- vai jotain muuta rajapintaa. Ohjelmat siis käsittelevät
levyjä joukkona hajasaantilohkoja.
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/sda1:stä /dev/sda4:ää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/sda1 |
ext2 |
32M |
Käynnistysosio |
| /dev/sda2 |
(swap) |
512M |
Välimuistiosio |
| /dev/sda3 |
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.
Osioiden määrä ja koko
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/sda5 ext3 509M 132M 351M 28% /
/dev/sda2 ext3 5.0G 3.0G 1.8G 63% /home
/dev/sda7 ext3 7.9G 6.2G 1.3G 83% /usr
/dev/sda8 ext3 1011M 483M 477M 51% /opt
/dev/sda9 ext3 2.0G 607M 1.3G 32% /var
/dev/sda1 ext2 51M 17M 31M 36% /boot
/dev/sda6 swap 516M 12M 504M 2% <ei liitetty>
|
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/sda1 |
Käynnistysosio |
| /dev/sda2 |
Välimuistiosio |
| /dev/sda3 |
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/sda):
Koodilistaus 3.1: Fdiskin käynnistäminen |
# fdisk /dev/sda
|
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/sda: 240 päätä, 63 sektoria/ura, 2184 sylinteriä
Yksiköt = 15120 * 512 = 8225280 -tavuiset sylinterit
Laite Boot Start End Blocks Id System
/dev/sda1 1 14 105808+ 83 Linux
/dev/sda2 15 49 264600 82 Linux-sivutus
/dev/sda3 50 70 158760 83 Linux
/dev/sda4 71 2184 15981840 5 Laajennettu
/dev/sda5 71 209 1050808+ 83 Linux
/dev/sda6 210 348 1050808+ 83 Linux
/dev/sda7 349 626 2101648+ 83 Linux
/dev/sda8 627 904 2101648+ 83 Linux
/dev/sda9 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/sda1:
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/sda: 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):
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/sda: 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/sda1 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/sda2.
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/sda: 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/sda1 * 1 14 105808+ 83 Linux
/dev/sda2 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/sda3. 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/sda: 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/sda1 * 1 14 105808+ 83 Linux
/dev/sda2 15 81 506520 82 Linux-sivutus
/dev/sda3 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
Linux tukee useita tiedostojärjestelmiä, tässä selitetään ext2, ext3,
ReiserFS, XFS ja JFS, koska ne ovat yleisimpiä.
Ext2 on Linuxin vanha ja käytetyin järjestelmä. Siinä ei ole mitään
metadatan kirjanpitoa tai muuta, joten käynnistykset ja järjestelmätarkistukset
ovat kovin hitaita. Uudempi sukupolvi kirjanpitäviä tiedostojärjestelmiä
tukee nopeita konsistenssiustarkistuksia, ja niitä kannattaa käyttää ennemmin.
Kirjanpito tiedostojärjestelmätasolla lyhentää odotuksia jos tiedostojärjestelmä
on käynnistettäessä epävakaassa tilassa.
Ext3 on ext2:n kirjanpitävä versio. Siinä on
kirjanpitotiloja metadatan, kaiken datan ja järjestetyn datan kirjaamiseen.
Tiedostorakenne on HTree-indeksoitu, joka toimii nopeasti enimmissä tapauksissa.
Ext3 on yleensä suositeltavin luotettava ja suorituskykyinen alusta.
JFS on IBM:n suorituskykyinen kirjaava tiedostojärjestelmä. JFS on keveä
ja luotettava B+-puu-indeksoitu järjestelmä.
ReiserFS on B+-puu-indeksoitu kirjaava järjestelmä, jolla on hyvä
suorituskyky, erityisesti monien pienten tiedostojen kanssa. ReiserFS on
vähemmän ylläpidetty.
XFS on metadatan kirjaava järjestelmä, jossa on paljon ominaisuuksia ja
skaalautuvuutta. XFS ei toimi laitteistovioissa yhtä hyvin kuin monet muut.
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/sda1)
ext2 ja juuriosiosta (esimerkkimme /dev/sda3)
ext3, käytetään komentoja seuraavasti:
Koodilistaus 4.1: Tiedostojärjestelmän asettaminen osiolle |
# mke2fs /dev/sda1
# mke2fs -j /dev/sda3
|
Luo nyt tiedostojärjestelmät uusille osioillesi (tai loogisille asemillesi).
Sivutusosion aktivointi
Komennolla mkswap alustetaan sivutusosiot:
Koodilistaus 4.2: Sivutusmerkinnän luonti |
# mkswap /dev/sda2
|
Aktivointi tapahtuu komennolla swapon:
Koodilistaus 4.3: Sivutusosion aktivointi |
# swapon /dev/sda2
|
Luo ja aktivoi omat sivutusosiosi nyt käyttämällä ylläolevia komentoja.
4.e. Asemien liittä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:
Koodilistaus 5.1: Osioiden liittäminen |
# mount /dev/sda3 /mnt/gentoo
# mkdir /mnt/gentoo/boot
# mount /dev/sda1 /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 maaliskuun 11. 03:43:18 EEST 2005
|
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).
Tässä vaiheessa asetetaan UTC-aika, ja oikea vyöhyke valitaan myöhemmin,
jos vaikkapa asetettaisiin päiväykseksi 24. marraskuuta 2004, kello 18:21:
Koodilistaus 1.2: Päiväyksen asettaminen |
# date 112416212004
|
Valitseminen
Seuraavassa vaiheessa asennetaan järjestelmä valitsemastasi
stage3-tarpaketista. Voit joko ladata paketin verkosta tai,
jos käynnistit
Gentoon Universal CD:ltä tahi LiveDVD:ltä, kopioida sen sieltä. Universal
CD:n ja LiveDVD:n kanssa on
järkevää käyttää CD:llä olevaa pakettia koska se on täysin sama kuin verkosta
haettavakin. Yleensä komento uname -m antaa jotain viitettä siitä,
mikä paketeista kannattaa valita.
Minimal CD:illä ja LiveCD:illä ei ole stage3-pakettia, Live-DVD:illä taas on.
5.b. Oletus: Internetistä haetun Stagen asentaminen
Stagen lataaminen verkosta
Siirry Gentoon liitospisteeseen tiedostojärjestelmässäsi
(todennäköisesti hakemisto /mnt/gentoo):
Koodilistaus 2.1: Gentoon osion tiedostojärjestelmään siirtyminen |
# cd /mnt/gentoo
|
Asennusvälineestä riippuen voit käyttää muutamaa eri työkalua stagen
lataamiseen. Jos links 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 links 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 2.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 links.
Siirry hakemistoon releases/x86/2008.0/. Siellä
pitiäisi olla stage-tiedosto arkkitehtuurille (voi myös olla alihakemistoja
aliarkkitehtuureille). Valitse oikea ja nouda painamalla D:tä. Kun
lataus on valmis, Q:lla voi lopettaa.
Useimmat PC-käyttäjät halunnevat käyttää stage3-i686-2008.0.tar.bz2-stage3:a.
Kaikki tuoreet PC:t ovat i686-malleja. Jos kone on vanhahko, voi
wikipedian i686-sivulta
tarkistaa asian. Vanhat suorittimet kuten Pentium, K5, K6 tai Via C3 vaativat
x86-stage3:n. I486:tta vanhempia ei tueta.
Koodilistaus 2.3: Peilipalvelinlistauksen avaaminen linksillä |
# links http://www.gentoo.org/main/en/mirrors.xml
# links -http-proxy proxy.example.com:8080 http://www.gentoo.org/main/en/mirrors.xml
|
Varmista, että kyseessä 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:
Koodilistaus 2.4: Esimerkki stage-tarpaketin eheyden tarkastuksesta |
# md5sum -c stage3-i686-2008.0.tar.bz2.DIGESTS
stage3-i686-2008.0.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 2.5: Stage-paketin purkaminen |
# tar xvjpf stage3-*.tar.bz2
|
Muista käyttää täsmälleen samoja valitsimia (xvjpf). x
purkaa tiedostoja arkistosta, v listaa monisanaisesti
käsitellyt tiedostot (no, ehkei tämä ole täysin välttämätön),
j suodattaa paketin bzip2:lla, p säilyttää
käyttöoikeudet ja f lukee syötteen tiedostosta vakiosyötevirran
asemesta.
Nyt stage on asennettu ja voit jatkaa asentamalla Portagen.
5.c. Portagen asennus
Portagen otoksen purkaminen
Seuraavaksi asennetaan Portagen otos, kokoelma tiedostoja, joissa on tiedot
ohjelmista, joita Portage voi asentaa, tiedot profiileista, jne.
Lataa ja asenna Portagen otos
Nyt siirry uuden järjestelmän liitoskohtaan (todennäköisesti
/mnt/gentoo):
Koodilistaus 3.1: Gentoon liitoskohtaan siirtyminen |
# cd /mnt/gentoo
|
Käynnistä links (tai lynx)
ja avaa Gentoon peilipalvelinlistaus. Valitse lähin
peilipalvelin ja avaa sieltä snapshots/-hakemisto. Lataa sieltä
tuorein Portagen otos
valitsemalla se (portage-latest.tar.bz2) ja painamalla
D:tä.
Koodilistaus 3.2: Gentoon peilien selailu |
# links http://www.gentoo.org/main/en/mirrors.xml
|
Seuraavaksi lopetetaan painamalla Q:ta. Portagen otos on nyt hakemistossa
/mnt/gentoo.
Jos haluat tarkistaa latauksen oikeellisuutta, käytä md5sumia
vertaillaksesi tarkastusarvoja.
Koodilistaus 3.3: Portagen otoksen tarkastus |
# md5sum -c portage-latest.tar.bz2.md5sum
portage-latest.tar.bz2: OK
|
Otoksen purkamiseen käytetään tar-komentoa. Varmista taas että
asetukset ovat oiketa. Huomaa myös, että -C on iso C eikä
pieni c. Esimerkissä käytetään
portage-latest.tar.bz2:a otoksen tiedostonimenä, muista
korvata tämä omalla tiedostollasi.
Koodilistaus 3.4: Portagen kuvan purkaminen |
# tar xvjf /mnt/cdrom/snapshots/portage-latest.tar.bz2 -C /mnt/gentoo/usr
|
5.d. 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 4.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
CHOST
CHOST-muuttujassa on kohdejärjestelmä ohjelmien kääntämiselle. Tämä
on jo valmiiksi asetettu oikein. Älä muokkaa CHOSTia. Jos
CHOST on väärin, käytät väärää stage3-pakettia.
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= tai -mtune=.
Se määrittelee
käytettävät arkkitehtuurioptimoinnit. Mahdolliset arvot on kuvattu
make.conf.example-tiedoston kommenteissa.
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ää). -O2 on vahva suositus.
Usein käytetään myös valitsinta -pipe, joka määrittelee putket
käytettäviksi väliaikaistiedostojen asemesta käännettäessä, eikä siis
vaikuta lopputulokseen.
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. Stage3:n oletukset ovat yleensä hyvät, mutta
seuraavassa on esimerkkejä:
Koodilistaus 4.2: CFLAGS- ja CXXFLAGS-muuttujien määrittely |
CFLAGS="-O2 -march=i686 -pipe"
CXXFLAGS="${CFLAGS}"
|
MAKEOPTS
MAKEOPTS määrittelee rinnakkaisten käännösprosessien määrän paketin
asennuksessa. Suositeltu määrä on prosessorien lukumäärä lisättynä yhdellä.
Koodilistaus 4.3: MAKEOPTS yhden prosessorin järjestelmässä |
MAKEOPTS="-j2"
|
Paikoillanne, valmiit, hep!
Päivitä ja tallenna tiedosto /mnt/gentoo/etc/make.conf. Nyt voit
jatkaa asentamalla Gentoo-järjestelmän
perustan.
6. Gentoo-järjestelmän perustan asentaminen
6.a. Chroot-ympäristön asettaminen
Valinnainen: Peilipalvelimen valinta
Lähdekoodien lataaminen onnistuu parhaiten jos käytetään nopeaa
peilipalvelinta. Portage hakee peilipalvelinvaihtoehdot
make.confin GENTOO_MIRRORS-asetuksesta. Luettelo kaikista
peilipalvelimista löytyy vaikkapa Gentoo-sivuston peilipalvelinluettelosta (engl.).
Sieltä kannattaa valita lähimmät ja nopeimmat palvelimet käyttöä varten
(Suomessa esimerkiksi on kirjoittamisen hetkellä yksi: trumpetti.atm.tut.fi).
Palvelinnopeuksien kartoittamiseen tarjotaan myös mirrorselect-työkalua:
Koodilistaus 1.1: Mirrorselectin käyttö palvelinten valinnassa |
# mirrorselect -i -o >> /mnt/gentoo/etc/make.conf
|
Varoitus:
Älä kuitenkaan käytä IPv6-peilejä tässä vaiheessa. Stageista puuttuu nimittäin
IPv6-tuki.
|
Toinen tärkeä palvelinasetus make.confissa on SYNC. Sillä
valitaa rsync-palvelin Portagepuun (Gentoon ohjelmistohakemiston, joka sisältää
kaiken datan ohjelmien asennusta varten) päivittämistä varten. SYNCin voi toki
valita käsin listasta, mutta siihen voi käyttää myös
mirrorselect-komentoa:
Koodilistaus 1.2: Rsync-peilin valinta mirrorselectillä |
# mirrorselect -i -r -o >> /mnt/gentoo/etc/make.conf
|
Mirrorselectin suortittamisen jälkeen on tärkeää tarkistaa, että
asetukset /mnt/gentoo/etc/make.confissa näyttävät järkeviltä!
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.3: DNS-tietojen kopiointi |
# cp -L /etc/resolv.conf /mnt/gentoo/etc/
|
Proc- ja dev-tiedostojärjestelmien liittäminen
Jotta asennus voisi saada tietoa nykyiseltä ytimeltä chrootin sisältäkin,
täytyy /proc liittää hakemistoon /mnt/gentoo/proc.
Lisäksi pitää bindmountata dev-tiedostojärjestelmä.
Koodilistaus 1.4: /procin ja /devin 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.5: Uuden ympäristön chrootaus |
# chroot /mnt/gentoo /bin/bash
# env-update
>> Regenerating /etc/ld.so.cache...
# source /etc/profile
# export PS1="(chroot) $PS1"
|
Olet nyt Gentoo Linux -järjestelmässäsi. Asennusta on toki vielä paljolti
jäljellä.
6.b. Portage-puun asetukset
Portage-puun päivitys
Uuden Portage-puun voi ladata komennolla emerge --sync.
Koodilistaus 2.1: Portagen päivitys |
# emerge --sync
# emerge --sync --quiet
|
Jos palomuuri estää rsync-liikenteen, voi käyttää
emerge-webrsynciä Portagepuun hakemiseen.
Jos varoitus kertoo uudesta Portage-versiosta, sen voi asentaa komennolla
emerge --oneshot portage.
Profiilin valitseminen
Aluksi vähän profiilin merkityksestä.
Profiili on Gentoo-järjestelmä eräs asetusosanen. Se muun muassa määrittelee
oletusarvot CHOSTille, CFLAGSeille ja muille tärkeille muuttujille, sekä
lukitsee järjestelmäohjelmiston tiettyihin versioihin. Näistä kaikista
asetuksista vastaavat Gentoon kehittäjät.
Aiemmin profiilia ei juuri tarvinnut käyttäjän muuttaa. Kuitenkin on olemassa
tapauksia, joissa voi olla hyödyllistä mukauttaa profiilia.
Käytössä olevan profiilin näkee seuraavalla komennolla:
Koodilistaus 2.2: Järjestelmän profiilin katselu |
# ls -FGg /etc/make.profile
lrwxrwxrwx 1 48 1. helmi 11:33 /etc/make.profile -> ../usr/portage/profiles/default/linux/x86/2008.0
|
Oletusprofiili on 2.6-linuxeille. Tämä on hyvin suositeltava ratkaisu, mutta
voit myös valita käyttää toista profiilia.
Saatavilla on myös desktop- ja server-profiilit joillekin
alustoille. Nämä löytää katsomalla hakemiston 2008.0 sisään.
Kannattanee katsoa desktop-profiilin make.defaultseja
ennen käyttöä varmistuakseen sen sopivuudesta.
Tässä vaiheessa profiilin voi vaihtaa halutessaan:
Koodilistaus 2.3: Profiilin vaihtaminen |
# ln -snf /usr/portage/profiles/<profiili> /etc/make.profile
|
Huomaa:
Developer-profiili on Gentoon kehittäjille, ei yleisesti
sovelluskehitykseen
|
USE-muuttujien asettaminen
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 -qt3 -qt4 ohjelmat käännetään
Gnome- ja gtk-tuen kanssa, mutta ilman kde- tai qt-tukea. Näin aikaansaataisiin
täysin Gnome järjestelmä.
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.4: USE-kuvausten katselu |
# less /usr/portage/profiles/use.desc
|
Esimerkissä on USE-asetukset KDE-järjestelmälle DVD-, ALSA- ja
CD:n polttotuella.
Koodilistaus 2.5: /etc/make.confin avaus |
# nano -w /etc/make.conf
|
Koodilistaus 2.6: USE-asetukset |
USE="-gtk -gnome qt3 qt4 kde dvd alsa cdr"
|
Valinnainen: GlibC:n lokaalit
Tyypillisessä järjestelmässä tarvitaan vain pari lokaalia (maa-asetustoa)
käytettäväksi. Aikoinaan glibc:n mukana käännettiin aina kaikki maailman
lokaalit samalla. Nykyään voi määrittää vain tarvitut asetustot tiedostoon
/etc/locale.gen. Älä säädä kuitenkaan näitä, jollet tiedä mistä
on kysymys.
Koodilistaus 2.7: /etc/locale.genin avaus |
# nano -w /etc/locale.gen
|
Koodilistaus 2.8: Suomessa lisättävät lokaalit |
fi_FI ISO-8859-1
fi_FI@euro ISO-8859-15
fi_FI.UTF-8 UTF-8
sv_FI ISO-8859-1
sv_FI@euro ISO-8859-15
sv_FI.UTF-8 UTF-8
en_GB ISO-8859-1
en_GB.UTF-8 UTF-8
|
Sen jälkeen suoritetaan locale-gen, joka luo pyydetyt lokaalit.
Jatka Säätämällä ytimen asetuksia.
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. Vältä vyöhykkeitä
/usr/share/zoneinfo/Etc/GMT*, sillä ne on hämäävästi nimetty.
Esimerkiksi GMT-8 tarkoittaa GMT+8-vyöhykettä.
Sopiva aikavyöhyke kopioidaan tiedostoksi /etc/localtime
komennolla cp:
Koodilistaus 1.1: Aikavyöhykkeen asettaminen |
# ls /usr/share/zoneinfo
# cp /usr/share/zoneinfo/Europe/Helsinki /etc/localtime
|
7.b. Lähdekoodin asennus
Ytimen valinta
Kaikki distrot rakennetaan Linuxin ytimen ympärille. Ydin on laitteiston
ja ohjelmiston välinen rajapinta. Gentoossa on mukana useita ydinvaihtoehtoja,
täysimittainen listaus näistä on Gentoon
ytimet -ohjeessa.
Ydin x86-järjestelmien ytimenä toimii
gentoo-sources (lisäominaisuuksin pätsätty ydin).
Valittu ytimen lähdekoodi asennetaan komennolla emerge.
Koodilistaus 2.1: Ytimen lähdekoodin asennus |
# emerge gentoo-sources
|
Hakemistossa /usr/src pitäisi olla ytimen lähdekoodiin osoittava
symbolinen linkki linux, joka osoittaa juuri asennettuun versioon
linux-2.6.24-r5. Versio voi olla jokin muukin:
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.24-r5
|
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 pciutils komennolla
emerge pciutils). 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ä kaikki järjestelmän käynnistämiseen vaadittavat
ajurit (kuten saattaa olla SCSI-ajuria, IDE-ajuria, …) tulevat mukaan kerneliin
eivätkä moduuleiksi, muuten käynnistäminen ei onnistu.mpletely.
Valitse nyt käytettäväksi oikeanmallinen prosessori:
Koodilistaus 3.2: Prosessorityypin valinta |
Processor type and features --->
(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 |
File systems --->
Pseudo Filesystems --->
[*] /proc file system support
[*] Virtual memory file system support (former shm fs)
<*> Reiserfs support
<*> Ext3 journalling file system support
<*> JFS filesystem support
<*> Second extended fs support
<*> XFS filesystem support
|
Järjestelmissä, jotka yhdistävät nettiin PPPoE:llä tai modeemilla, tarvitaan
seuraavia asetuksia:
Koodilistaus 3.4: Selecting PPPoE necessary drivers |
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.5: SMP:n aktivointi |
Processor type and features --->
[*] Symmetric multi-processing support
|
Moniydinjärjestelmissä ytimet voi laskea prosessoreina.
Jos on yli 4 gigaa RAMia pitää käyttää asetusta ”High Memory Support (64G)”
Jos käytät USB-syötelaitteita (kuten USB-näppistä tai -hiirtä), muista
lisätä nekin mukaan:
Koodilistaus 3.6: USB-tuen aktivointi |
Device Drivers --->
HID Devices --->
<*> USB Human Interface Device (full HID) support
|
Läppärin käyttäjien kannattaa valita PCMCIA-ajurit, jos laitteessa on
PCMCIA-korttipaikka.
Koodilistaus 3.7: PCMCIA-tuki |
Bus options (PCI, PCMCIA, EISA, MCA, ISA) --->
PCCARD (PCMCIA/CardBus) support --->
<*> PCCard (PCMCIA/CardBus) support
<*> 16-bit PCMCIA support
[*] 32-bit CardBus support
--- PC-card bridges
<*> CardBus yenta-compatible bridge support (NEW)
<*> Cirrus PD6729 compatible bridge support (NEW)
<*> i82092 compatible bridge support (NEW)
<*> i82365 compatible bridge support (NEW)
<*> Databook TCIC host bridge support (NEW)
|
Tehtyäsi ytimen asetukset jatka kääntämällä ja asentamalla.
Käännös ja asennus
Nyt kun ytimen asetukset on kasassa voidaan kääntää ja asentaa se. Poistu
asetusohjelmasta ja asenna:
Koodilistaus 3.8: Compiling the kernel |
# make && make modules_install
|
Ytimen käännyttyä kopioi se hakemistoon /boot.
Voit käyttää ytimelle mitä nimeä tahansa haluatkaan, muista vain
seuraavissa esimerkeissä korvata kernel-2.6.24-gentoo-r5
tällä nimellä:
Koodilistaus 3.9: Ytimen asennus |
# cp arch/i386/boot/bzImage /boot/kernel-2.6.24-gentoo-r5
|
Nyt voidaan jatkaa
Asentamalla erilliset ytimen moduulit.
7.d. Vaihtoehto: genkernelin käyttö
Tässä käytetään 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
|
Seuraavaksi kopioidaan kernelin asetukset asennus-CD:ltä genkernelin odottamaan
paikkaan, jos asennetaan 2.6-version kerneliä:
Koodilistaus 4.2: Asennus-CD:n asetusten kopiointi |
# zcat /proc/config.gz > /usr/share/genkernel/x86/kernel-config-2.6
|
Ja käännetään komennolla genkernel all. Genkernelin tekemät ytimet
sisältävät ajurit kaiken maailman laitteille, joten kääntämisessä kestää 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).
EVMS tai LVM2 tarvitsevat valitsimet --evms2 tai --lvm2 mukaan
myös.
Koodilistaus 4.3: 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.4: Ytimen ja initrd:n nimen tarkastus |
# ls /boot/kernel* /boot/initramfs*
|
7.e. Ydinmoduulit
Moduulien asetukset
Automaattisesti käynnistyvät moduulit listataan tiedostoon
/etc/modules.autoload.d/kernel-2.6. Sinne voi myös lisätä
asetuksia.
Kaikki moduulit saa selville esim. find-työkalulla. Korvaa
allaolevassa <kernel-versio>" kääntämäsi ytimen versiolla:
Koodilistaus 5.1: Moduulien tarkastelu |
# find /lib/modules/<kernel-versio>/ -type f -iname '*.o' -or -iname '*.ko'
|
Esimerkiksi moduulin 3c59x.ko voi ladata automaattisesti lisäämällä
tiedostoon kernel-2.6 moduulin nimi.
Koodilistaus 5.2: Tiedoston /etc/modules.autoload.d/kernel-2.6 muokkaus |
# nano -w /etc/modules.autoload.d/kernel-2.6
|
Koodilistaus 5.3: /etc/modules.autoload.d/kernel-2.6 |
3c59x
|
Jatka kappaleeseen ytimen asetukset.
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. Tämä on
vain esimerkki, älä kopioi asetuksia esimerkistä sellaisenaan.
Oletusarvoisessa x86-osioinnissa /boot on
yleensä /dev/sda1-osio
ext2-tiedostojärjestelmällä:
Koodilistaus 1.2: Esimerkki-/boot-osion rivi /etc/fstabissa |
/dev/sda1 /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ä.
Lisää säännöt osiointisi mukaan, sekä CD-asemat ja muut joita käytät.
Käytä seuraavaa esimerkkiä oman /etc/fstabin pohjana:
Koodilistaus 1.3: /etc/fstab-esimerkki |
/dev/sda1 /boot ext2 defaults,noatime 1 2
/dev/sda2 none swap sw 0 0
/dev/sda3 / ext3 noatime 0 1
/dev/cdrom /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.
Suorituskyvyn parantamiseksi monet käyttävät asetusta noatime, joka
poistaa käytösta tietueiden kosketusaikojen kirjauksen (sillä ne useimmiten ovat
turhia).
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 isäntänimi:
Koodilistaus 2.1: Isäntänimen asetus |
# nano -w /etc/conf.d/hostname
HOSTNAME="tux"
|
Sitten, jos tarvitaan domainnimi, se asetetaan tiedostossa
/etc/conf.d/net. Domainnimi tarvitaan vain jos ISP:n tai verkon
ylläpidon asetuksissa niin kerrotaan, tai jos käytössä on DNS muttei DHCP:tä.
DNS:stä ja domainnimistä ei tarvitse huolehtia jos käytössä on DHCP.
Koodilistaus 2.2: Domainnimen asetus |
# nano -w /etc/conf.d/net
dns_domain_lo="kotiverkko"
|
Huomaa:
Jollet valitse domainnimeä, alussa olevasta viestistä
”This is hostname.(none)” pääsee eroon muokkaamalla tiedostoa
+/etc/issue. Sieltä poistetaan merkit .\O.
|
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/net
nis_domain_lo="my-nisdomain"
|
Huomaa:
Lisätietoja DNS- ja NIS-asetuksista saa tiedoston
/etc/conf.d/net.example esimerkeistä.
Myös sovellus openresolv saattaa auttaa DNS- ja NIS-asetusten
hallinnassa.
|
Verkon asetus
Nyt
määritellään verkon asetukset pysyvälle Gentoo-järjestelmälle.
Huomaa:
Tarkemmat ohjeet verkkoasetuksista ja erikoisemmista ratkaisuista, kuten
siltauksista, VLANeista ja langattomista verkoista löytyy
Gentoon verkkoasetukset -osasta käsikirjaa.
|
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.
Täysimittainen esimerkkikin löytyy tiedostosta
/etc/conf.d/net.example.
DHCP on oletusarvo, eikä sitä varten tarvitse tehdä asetuksia. DHCP ei
toimi ilman DHCP-asiakasohjelmaa. Tämän asennus kuvataan myöhemmin
kappaleessa Järjestelmätyökalujen
asennus. Muista asentaa DHCP-asiakasohjelma.
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.4: /etc/conf.d/netin muokkaaminen |
# nano -w /etc/conf.d/net
|
Tiedoston pitäisi olla seuraavanlainen:
Koodilistaus 2.5: 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 :]!).
|
Jos IP-osoite, verkon peite ja gateway syötetään käsin, pitää
asettaa sekä config_eth0 että routes_eth0:
Koodilistaus 2.6: 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.7: 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.8: 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.9: Lisäkäynnistysskriptien teko |
# cd /etc/init.d
# ln -s net.lo 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. Tähän pitää asettaa ainakin
oma konenimi. Myös muita saman verkon koneita, joita ei nimipalvelimelta haeta
voidaan asettaa.
Koodilistaus 2.10: /etc/hostsin avaaminen |
# nano -w /etc/hosts
|
Koodilistaus 2.11: Tietojen syöttö |
127.0.0.1 tux.kotiverkko tux localhost
192.168.0.5 lassi.kotiverkko lassi
192.168.0.6 leevi.kotiverkko leevi
|
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
PCMCIA:lle pitää ensin asentaa paketti pcmciautils.
Koodilistaus 2.12: Pcmciautilsin asennus |
# emerge pcmciautils
|
8.c. Järjestelmän tiedot
Pääkäyttäjän salasana
Rootin salasana asetetaan kirjoittamalla:
Koodilistaus 3.1: Rootin salasanan asettaminen |
# passwd
|
Järjestelmän tiedot
Gentoossa yleiset järjestelmäasetukset sijaitsevat tiedostossa
/etc/rc.conf.
Avaa se ja nautiskele tehokkaasta kommentoinnista :)
Koodilistaus 3.2: /etc/rc.confin avaus |
# nano -w /etc/rc.conf
|
Kun asetukset on tehty, tallenna ja poistu.
Kuten voidaan huomata, tiedosto on hyvin kommentoitu asetusten tekoa varten.
Asetettavia asetuksia ovat mm. oletuseditori ja X:n sisäänkirjautumisohjelma.
Näppäimistöasettelut sijaitsevat tiedostossa /etc/conf.d/keymaps.
Koodilistaus 3.3: /etc/conf.d/keymapsin muokkaus |
# nano -w /etc/conf.d/keymaps
|
KEYMAP-muuttujan asetuksessa kannattaa olla tarkkana: väärällä
asetuksella näppäimistö voi tuottaa outoja merkkejä.
Kun /etc/conf.d/keymaps on kunnossa, tallenna ja poistu.
Gentoon kelloasetukset sijaitsevat tiedostossa /etc/conf.d/clock.
Koodilistaus 3.4: /etc/conf.d/clockin asetusten teko |
# nano -w /etc/conf.d/clock
|
Jos järjestelmän kello ei ole UTC-ajassa, pitää
CLOCK="local" lisätä /etc/conf.d/clock,
muuten aika saattaa mennä väärin.
Aikavyöhykkeeksi pitäisi määritellä sama kuin
/etc/localtimeksi kopioiut, jotta tulevat paketin
sys-libs/timezone-data päivitykset korjaavat /etc/localtimen
automaattisesti. Suomen ajaksi esimerkiksi asetettaisiin
TIMEZONE="Europe/Helsinki"
Kun /etc/conf.d/clockin asetukset on tehty, tallenna ja lopeta.
Jatka
järjestelmätyökalujen asennukseen.
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).
Gentoossa on kolme eri cron-vaihtoehtoa: dcron, fcron ja
vixie-cron. Cronin asennus sujuu samaan tapaan kuin järjestelmälokinkin
asennus. dcron ja fcron tosin tarvitsevat hieman säätämistä,
nimittäin komennon crontab /etc/crontab suorittamisen. Jollet osaa
päättää, käytä vaikkapa vixie-cronia.
Koodilistaus 2.1: Cron-palvelun asentaminen |
# emerge vixie-cron
# rc-update add vixie-cron default
# crontab /etc/crontab
|
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). Huomaa, että ext2- ja ext-työkalut (e2fsprogs)
asentuvat automaattisesti osana järjestelmää.
Seuraavaassa on taulukoituna tiedostojärjestelmäkohtaisesti tarvitut työkalut:
| 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:
Koodilistaus 4.1: Evms:n asentaminen |
# USE="-gtk" emerge evms
|
USE="-gtk" on tässä asennusvaiheessa tarpeellinen, jottei koko graafinen
käyttöliittymä riippuvuuksineen tulisi asennetuksi ennenaikaisesti.
Evms:n voi kääntää uudelleen graafisen käyttöliittymän kanssa
myöhemmin halutessaan.
9.e. Verkkotyökalut
Jollet tarvitse muita verkkotyökaluja (kuten ppp:tä tai
dhcp-asiakasohjelmaa), jatka käynnistyslataimen asennuksella.
Muutoin jatka Vaihtoehdon: verkkotyökalut parissa.
Valinnainen: DHCP-asiakkasohjelman asennus
Jos järjestelmä hakee IP-osoitteensa automaattisesti verkkorajapinnoille,
tarvitaan dhcpcd-ohjelmaa (tai muuta DHCP-asiakasohjelmaa, kappaleessa
Verkkomoduulit on luettelo toimivista
DHCP-asiakkaista). Järjestelmää ei välttämättä voi yhdistää Internetiin
ollenkaan asennuksen jälkeen, jollei tätä nyt asenneta!
Koodilistaus 5.1: Dhcpcd:n asennus |
# emerge dhcpcd
|
Valinnainen: PPPoE-asiakasohjelman asennus
Jos tarvitset ppp:n verkkoyhteyttä varten, aloita asentamalla se.
Koodilistaus 5.2: Ppp:n asennus |
# emerge ppp
|
Seuraavaksi Asennetaan käynnistyslatain.
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-alustalle, Gentoo Linuxissa on tarjolla GRUB tai LILO.
Ennen 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 framebuffer-tuki 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 uvesafb kohdasta VESA
driver. Tässä tapauksessa käytössä on
uvesafb, 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 |
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:n |
Aseta mtrr-rekisterien käyttöaste. n voi olla:
0 — disabled
1 — uncachable
2 — write-back
3 — write-combining
4 — write-through
|
| mode |
(uvesafb: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:3,ywrap tai
video=uvesafb:mtrr:3,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/sda1
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/sda,
ja kaksu muuta /dev/sdb ja /dev/sdc, silloin
/dev/sdb7 on (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 |
default 0
timeout 30
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
title=Gentoon Linux 2.6.24-r5
root (hd0,0)
kernel /boot/kernel-2.6.24-gentoo-r5 root=/dev/sda3
title=Gentoo Linux 2.6.24-r5 (pelastus)
root (hd0,0)
kernel /boot/kernel-2.6.24-gentoo-r5 root=/dev/sda3 init=/bin/bb
title=Windows XP
rootnoverify (hd0,5)
makeactive
chainloader +1
|
Koodilistaus 2.4: Grub.conf genkernel-ytimille |
default 0
timeout 30
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
title=Gentoo Linux 2.6.24-r5
root (hd0,0)
kernel /boot/kernel-genkernel-x86-2.6.24-gentoo-r5
root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/sda3 udev
initrd /boot/initramfs-genkernel-x86-2.6.24-gentoo-r5
title=Windows XP
rootnoverify (hd0,5)
makeactive
chainloader +1
|
Huomaa:
Udev kernel-rivin lopussa korjaa joidenkin genkernelien aiheuttaman
bugin, jos udev on käytössä (mikä on oletusarvo).
|
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.
Tapauksissa, joissa käytetään eri osiointimallia, jossa ei ole erillistä
/boot-osiota, pitää /boot/ määritellä kaikissa
käynnistyslataimen asetuksissa. Jos erillinen /boot-osio on
käytössä, sitä ei tarvitse asetuksissa mainita, mutta sen käyttäminen on
silti suositeltavaa, sillä se toimii siinäkin tapauksessa symbolisen
linkin ansiosta. Käytännössä siis yllä annetut esimerkit toimivat sellaisenaan
molemmissa tapauksissa.
Jos ytimelle pitää antaa lisäparametrejä, ne voi lisätä kernel-komennon
loppuun. Esimerkissä annetaan jo parametri root=/dev/sda3 tai
real_root=/dev/sda3, mutta useampiakin voidaan syöttää. Esimerkiksi
tähän syötettäisiin aiemmin tarkastellut framebufferin vga- ja
video-arvot.
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 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ää päivittää /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 päivitys |
# grep -v rootfs /proc/mounts > /etc/mtab
|
Sitten voidaan asentaa grub:
Koodilistaus 2.6: Grub-installin suoritus |
# grub-install --no-floppy /dev/sda
|
Lisätietoa GRUBista englanniksi löytyy GRUB FAQ:sta ja
GRUB Manualista.
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 --no-floppy
|
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/sda1, 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)
grub> setup (hd0)
grub> quit
|
Huomaa:
Jos haluat asentaa Grubin jollekin osiolle MBR:n sijaan, voit muuttaa
setup-komentoa osoittamaan oikeaan osioon. Esimerkiksi laitteelle
/dev/sda3 sopiva komento on setup (hd0,2).
Tällaista tarvinnee kuitenkin aika harvoin.
|
Lisätietoa Grubista saat GRUB FAQista tai
GRUB Manualista.
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 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/sda
prompt
timeout=50
default=gentoo
image=/boot/kernel-2.6.24-gentoo-r5
label=gentoo
read-only
root=/dev/sda3
image=/boot/kernel-genkernel-x86-2.6.24-gentoo-r5
label=gentoo
read-only
root=/dev/ram0
append="init=/linuxrc real_root=/dev/sda3 udev"
initrd=/boot/initramfs-genkernel-x86-2.6.24-gentoo-r5
image=/boot/kernel-2.6.24-gentoo-r5
label=gentoo.rescue
read-only
root=/dev/sda3
append="init=/bin/bb"
other=/dev/sda6
label=windows
|
Huomaa:
Jos käytössä on jokin muu osiointi tai ydin, niin esimerkit korvataan niillä.
|
Huomaa:
Udev-kohta append-rivillä korjaa erään genkernelin bugin jos
udev on asetettuna (mikä on oletusasetus).
|
Jos ytimelle pitää antaa muita parametrejä, ne lisätään
append-lausekkeella. Esimerkiksi framebufferin asetus
video annetaan seuraavasti:
Koodilistaus 3.4: Parametrien lisäys framebufferilla |
image=/boot/kernel-2.6.24-gentoo-r5
label=gentoo
read-only
root=/dev/sda3
append="video=vesafb:mtrr:n,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
sda=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
|
Lisätietoa LILOsta saattaa löytää englanninkielisen
wikipedian LILO-sivulta.
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/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
|
| usb |
voi käyttää USB-laitteita |
| plugdev |
voi liittää ja käyttää mm. kameroita ja USB-muisteja
|
| 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:
# useradd -m -G users,wheel,audio -s /bin/bash pekka
# passwd pekka
Password:
Re-enter password:
|
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. Levyjen puhdistelu
Tarrapallojen poistelu
Kun uudelleenkäynnistys on sujunut, ladatut stage3:t ja Portagen otokset voi
poistaa viemästä tilaa. Ne ladattiin alkujaan juurihakemistoon /.
Koodilistaus 2.1: Stage3-tarrapallon poisto |
# rm /stage3-*.tar.bz2*
|
Koodilistaus 2.2: Portagen otoksen poisto |
# rm /portage-latest.tar.bz2*
|
12. Minne seuraavaksi?
12.a. Dokumentointi
Nyt käytössä on täysin toiminnallinen Gentoo.
Kannattanee seuraavaksi 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 järjestelmän on työpöytäkäyttöön tarkoitettu, siitä kerrotaan
työpöytäoppaista.
Paikallisasetusoppaassa, on erityisesti suomea koskevia asetuksia.
Tietoturvasta kiinnostuneiden kannattanee vilkaista laajahkoa
Gentoon tietoturva -opasta.
Täysi listaus dokumenteista löytyy dokumentti-indeksistä.
12.b. Gentoo verkossa
Gentoolla on omat Gentoon foorumit (joilla on myös
suomenkielinen
osio), sekä
Gentoon irkkikanavat.
Käytettävissä on myös useita kaikille avoimia postituslistoja. Liittymisohjeet löytyvät
linkatulta sivulta.
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 |
# 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
# 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
|
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 |
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ä):
-
Oletusasetukset profiilin tiedostoissa make.defaults
-
käyttäjän määrittelemät asetukset tiedostossa /etc/make.conf
-
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 |
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() {
}
start() {
}
stop() {
}
restart() {
}
|
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
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 |
# cd /etc/runlevels/default
# for service in *; do rc-update add $service offline; done
# rc-update del net.eth0 offline
# rc-update show offline
acpid | offline
domainname | offline
local | offline
net.eth0 |
|
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"
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 |
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. Portage-puun 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
|
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.
|
Huomaa:
Ohjeen toimiminen vaatii, että järjestelmässä on baselayout-1.11.11
tai uudempi.
|
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ä |
config_eth0=( "dhcp" )
config_eth0=( "192.168.0.7/24" )
routes_eth0=( "default via 192.168.0.1" )
config_eth0=( "192.168.0.7 netmask 255.255.255.0" )
routes_eth0=( "default gw 192.168.0.1" )
|
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ää:
Verkkovikoja tutkiessa on kannattavaa asettaa
RC_VERBOSE="yes" tiedostoon
/etc/conf.d/rc, jotta näkee paremmin mitä tapahtuu.
|
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,
udhcpc: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ä |
config_eth0=(
"192.168.0.2/24"
"192.168.0.3/24"
"192.168.0.4/24"
)
config_eth0=(
"192.168.0.2/24"
"4321:0:1:2:3:4:567:89ab"
"4321:0:1:2:3:4:567:89ac"
)
config_eth0=(
"noop"
"dhcp"
)
fallback_eth0=(
"null"
"apipa"
)
|
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ä. Mitä net tarkoittaa määritellään
tiedostossa /etc/conf.d/rc muuttujan
RC_NET_STRICT_CHECKING eri arvoina.
| Arvo |
Kuvaus |
| none |
net on aina ylhäällä |
| no |
Vähintään yhden net.*-palvelun pitää olla käynnistynyt
onnistuneesti net.lo:n lisäksi. Tätä voi käyttää
kannettavilla, joissa on WiFi ja staattinen nic, ja vain toisen
tarvitsee olla käytössä.
|
| lo |
Sama kuin no, mutta net.lo lasketaan myös
rajapinnaksi. Tämä sopii jos ei tarvitse minkään tietyn rajapinnan olla
ylhäällä käynnistyksessä.
|
| yes |
Tätä varten kaikkien rajapintojen täytyy olla pystyssä, jotta
net lasketaan pystyssäolevaksi.
|
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ää omaa depend()-funktiota
/etc/conf.d/netissä.
Koodilistaus 2.1: net.br0:n riippuvuuden asettaminen /etc/conf.d/netiin |
depend_br0() {
need net.eth0 net.eth1
}
|
Tarkemmat selitykset riippuvuuksista löytyvät,
Käsikirjan initskriptiosiosta.
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 |
dns_domain_My____NET="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 |
modules=( "iproute2" )
modules_eth0=( "udhcpc" )
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
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" )
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, pump tai
udhcpc. 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.
|
| udhcpc |
net-misc/udhcp |
Kevyt, pienin dhcp-asiakkaista, tehty integroiduille järjestelmille
|
Testaamaton, ei käytössä missään distroista, ei osaa kolmea sekuntia
pidempää aikakatkaisua.
|
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 |
modules=( "dhcpcd" )
config_eth0=( "dhcp" )
dhcpcd_eth0="-t 10"
dhcp_eth0="release nodns nontp nonis"
|
Huomaa:
Dhcpcd, udhcpc 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
|
Huomaa:
PPPoA on saatavilla paketista >=baselayout-1.12 lähtien.
|
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_NET_STRICT_CHECKING="yes" tiedostoon /etc/conf.d/rc.
Seuraavaksi asetetaan tiedosto /etc/conf.d/net.
Koodilistaus 4.3: A basic PPPoE setup |
config_eth0=( null )
config_ppp0=( "ppp" )
link_ppp0="eth0"
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
)
depend_ppp0() {
need 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 |
"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/conf.d/net.example. Siinä on tarkempia selityksiä monista
tarpeellisista asetuksista.
|
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 |
config_eth0=( "dhcp" )
fallback_eth0=( "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 |
slaves_bond0="eth0 eth1 eth2"
config_bond0=( "null" )
depend_bond0() {
need 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 |
brctl_br0=( "setfd 0" "sethello 0" "stp off" )
bridge_br0="eth0 eth1"
config_eth0=( "null" )
config_eth1=( "null" )
config_br0=( "192.168.0.1/24" )
depend_br0() {
need net.eth0 net.eth1
}
|
Tärkeää:
Joissain silta-asetuksissa kannattaa pitää mielessä
muuttujien nimet.
|
3.h. MAC-osoite
MAC-osoiteen muuttamiseksi suoraan ei tarvita mitään eri ohjelmia, jos käytössä
on baselayout-1.11.14 tai uudempi. Kuitenkin
jos halutaan satunnaisia tai tietyntyyppisiä osoitteita pitää asentaa
net-analyzer/macchanger.
Koodilistaus 8.1: MAC-osoitteen muuttaminen |
mac_eth0="00:11:22:33:44:55"
mac_eth0="random-ending"
mac_eth0="random-samekind"
mac_eth0="random-anykind"
mac_eth0="random-full"
|
3.i. 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 |
iptunnel_vpn0="mode gre remote 207.170.82.1 key 0xffffffff ttl 255"
iptunnel_vpn0="mode ipip remote 207.170.82.2 ttl 255"
config_vpn0=( "192.168.0.2 peer 192.168.1.1" )
|
3.j. VLAN (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 |
vlans_eth0="1 2"
vconfig_eth0=( "set_name_type VLAN_PLUS_VID_NO_PAD" )
vconfig_vlan1=( "set_flag 1" "set_egress_map 2 6" )
config_vlan1=( "172.16.3.1 netmask 255.255.254.0" )
config_vlan2=( "172.16.2.1 netmask 255.255.254.0" )
|
Tärkeää:
Joissakin VLAN-asetuksissa kannattaa muistaa
muuttujien nimet.
|
4. Langattomat verkot
4.a. Johdanto
Nykyään langattomat yhteydet toimivat joko wireless-toolsin tai
wpa_supplicantin avulla. Tärkeää on muistaa, että langattomat asetukset
tehdään yleisesti eikä rajapintakohtaisesti.
Wpa_supplicant on parempi vaihtoehto, mutta siinä ei ole kaikkia
ajureita tuettuna. Luettelo ajureista löytyy
wpa_supplicantin sivuilta
. Wpa_supplicant voi ottaa yhteyden vain asetettuihin SSID:ihin.
Wireless-tools tukee lähes kaikkia kortteja ja ajureita, muttei osaa
yhdistää WPA:ihin vaan vain AP:ihin.
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. Sen asetukset ovat
vähän epävarmat beetassa vielä, mutta enimmäkseen toimivat.
Koodilistaus 2.1: wpa_supplicantin asennus |
# emerge net-wireless/wpa_supplicant
|
Tärkeää:
Ytimessä pitää olla CONFIG_PACKET asetettu, jotta wpa_supplicant
toimisi.
|
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 |
modules=( "wpa_supplicant" )
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 |
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
ap_scan=1
network={
ssid="simple"
psk="very secret passphrase"
priority=5
}
network={
ssid="second ssid"
scan_ssid=1
psk="very secret passphrase"
priority=2
}
network={
ssid="example"
proto=WPA
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP WEP104 WEP40
psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb
priority=2
}
network={
ssid="plaintext-test"
key_mgmt=NONE
}
network={
ssid="static-wep-test"
key_mgmt=NONE
wep_key0="abcde"
wep_key1=0102030405
wep_key2="1234567890123"
wep_tx_keyidx=0
priority=5
}
network={
ssid="static-wep-test2"
key_mgmt=NONE
wep_key0="abcde"
wep_key1=0102030405
wep_key2="1234567890123"
wep_tx_keyidx=0
priority=5
auth_alg=SHARED
}
network={
ssid="test adhoc"
mode=1
proto=WPA
key_mgmt=WPA-NONE
pairwise=NONE
group=TKIP
psk="secret passphrase"
}
|
4.c. 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 |
modules=( "iwconfig" )
key_ESSID1="[1] s:yourkeyhere key [1] enc open"
key_ESSID2="[1] aaaa-bbbb-cccc-dd key [1] enc restricted"
preferred_aps=( "ESSID1" "ESSID2" )
|
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 |
blacklist_aps=( "ESSID3" "ESSID4" )
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 |
mode_eth0="ad-hoc"
essid_eth0="This Adhoc Node"
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" )
dns_servers_ESSID1=( "192.168.0.1" "192.168.0.2" )
dns_domain_ESSID1="some.domain"
dns_search_domains_ESSID1="search.this.domain search.that.domain"
config_001122334455=( "dhcp" )
dhcpcd_001122334455="-t 10"
dns_servers_001122334455=( "192.168.0.1" "192.168.0.2" )
|
5. 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 |
preup() {
if ethtool ${IFACE} | grep -q 'Link detected: no'; then
ewarn "No link on ${IFACE}, aborting configuration"
return 1
fi
return 0
}
predown() {
if is_net_fs /; then
eerror "root filesystem is network mounted -- can't stop ${IFACE}"
return 1
fi
return 0
}
postup() {
return 0
}
postdown() {
return 0
}
|
5.b. 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() {
local user pass
eval user=\"\$\{leap_user_${ESSIDVAR}\}\"
eval pass=\"\$\{leap_pass_${ESSIDVAR}\}\"
if [[ -n ${user} && -n ${pass} ]]; then
if [[ ! -x /opt/cisco/bin/leapscript ]]; then
eend "For LEAP support, please emerge net-misc/cisco-aironet-client-utils"
return 1
fi
einfo "Waiting for LEAP Authentication on \"${ESSID//\\\\//}\""
if /opt/cisco/bin/leapscript ${user} ${pass} | grep -q 'Login incorrect'; then
ewarn "Login Failed for ${user}"
return 1
fi
fi
return 0
}
postassociate() {
return 0
}
|
Huomaa:
${ESSID} ja ${ESSIDVAR} eivät ole mukana predown- ja
postdown-funktioissa.
|
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 |
ifplugd_eth0="..."
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 resolvconf-gentoo.
Koodilistaus 2.3: Resolvconf-gentoon asennus |
# emerge resolvconf-gentoo
|
Ohjesivulla man resolvconf on lisätietoja.
Tämän dokumentin sisältö ja suomennos kuuluu
Creative Commons - Nimi mainittava-Sama lisenssi 2.5 -lisenssin
piiriin.
|