Gentoo Linux x86 Handboek
Inhoud:
-
Installeren van Gentoo
In dit gedeelte leert u hoe uw Gentoo systeem moet installeren.
-
Over de Gentoo Linux Installatie
Dit hoofdstuk vertelt u hoe we de installatie documentatie hebben opgezet.
-
Keuze van het Installatie Medium
U kunt Gentoo op vele wijzen installeren. Dit hoofdstuk legt uit hoe u
Gentoo kunt installeren met behulp van de zogenaamde Minimal Installation CD,
hoewel een installatie met de Installer LiveCD ook mogelijk is.
-
Configuratie van uw Netwerk
Om de meest recente broncode te kunnen downloaden, dient u uw netwerk
te configureren.
-
Voorbereiden van de harde schijven
Om Gentoo te kunnen installeren, moet u nodige partities aanmaken. Dit boekdeel
beschrijft hoe u een schijf kunt partitioneren voor toekomstig gebruik.
-
Installatie van de Gentoo Installatie bestanden
Gentoo installeert vanuit een zogenaamd stage3 archief. In dit
hoofdstuk wordt uitgelegd hoe u het archief uitpakt en Portage
configureert.
-
Installatie van het Gentoo Basis Systeem
Na het installeren en configureren uit een stage3 heeft u een minimaal
Gentoo Basis Systeem tot uw beschikking. Dit hoofdstuk beschrijft hoe u
vanuit hier verder gaat.
-
Configuratie van de Kernel
De Linux kernel is de kern van elke distributie.
Dit hoofdstuk beschrijft hoe u de kernel configureert.
-
Configuratie van het Systeem
U moet nu enkele belangrijke configuratie bestanden aanpassen. In dit
hoofdstuk krijgt u een overzicht van deze bestanden en een uitleg
over hoe verder te gaan.
-
Installatie van enkele belangrijke Systeem onderdelen
Zoals eerder vermeld, Gentoo is gebaseerd op keuzes. In dit hoofdstuk helpen we
u bij de keuze en installatie van enkele belangrijke systeem onderdelen.
-
Configuratie van de Bootlader
Er bestaan verschillende Bootladers voor de x86 architectuur. Elk van deze
heeft zijn eigen manier van configuratie. We zullen stap voor stap het
configuratie-proces van een bootlader met u doornemen.
-
Afmaken van uw Gentoo Installatie
Je bent bijna klaar. We gaan nu alleen nog één of meerdere gebruikers op
uw systeem aanmaken.
-
Hoe nu verder?
Nu heeft u een Gentoo systeem, maar wat volgt?
-
Werken met Gentoo
Leer te werken met Gentoo: software installeren, aanpassen van variabelen,
het gedrag van Portage aanpassen etc.
-
Een introductie van Portage
Dit hoofdstuk legt de "simpele" stappen uit die een gebruiker in ieder geval
moet kennen om de software op zijn systeem te onderhouden.
-
USE variabelen
USE-variabelen zijn een heel belangrijk aspect van Gentoo.
In dit hoofdstuk leert u werken met USE-variabelen en leert u
deze USE-variabelen met uw systeem samen werken.
-
Functionaliteiten van Portage
Ontdek de mogelijkheden die Portage heeft,
zoals ondersteuning voor verdeeld compileren, ccache en meer.
-
Initialisatie scripts
Gentoo gebruikt een speciaal initialisatie script formaat welke, naast andere
functionaliteiten, afhankelijkheidsgedreven beslissingen en virtuele
initialisatie scripts toelaat. Dit hoofdstuk legt al deze aspecten uit en
vertelt ook hoe men deze scripts kan gebruiken.
-
Omgevingsvariabelen
Met Gentoo kunt u gemakkelijk de omgevingsvariabelen van uw systeem beheren.
Dit hoofdstuk legt uit hoe u dat doet, en dit boekdeel beschrijft ook de
meest gebruikte variabelen.
-
Werken met Portage
"Werken met Portage" biedt een diepgaande uitleg van Portage,
Gentoo's Software Beheer Programma.
-
Bestanden en mappen
Als u Portage diepgaand wilt kennen, dient u te weten waar het bestanden
en gegevens opslaat.
-
Configuratie via variabelen
Portage is in zijn geheel te configureren door verschillende variabelen die u
kunt instellen in het configuratie bestand of als een omgevingsvariabele.
-
Software takken door elkaar gebruiken
Gentoo verstrekt pakketten software verdeelt in verschillende takken,
afhankelijk van stabiliteit en naar (hardware-)architectuur gescheiden.
Dit hoofdstuk legt u uit hoe deze takken kunnen worden ingesteld en hoe
u de scheiding per pakket kunt aanpassen.
-
Extra Portage hulpmiddelen
Portage komt met een aantal extra hulpmiddelen die mogelijk uw Gentoo
ervaring nog beter zullen maken. Lees verder en leer hoe u dispatch-conf en
andere hulpmiddelen kunt gebruiken.
-
Afwijken van de officiële boom
"Afwijken van de officiële boom" geeft u enkele tips en trucs over u de
Portage Boom gebruikt, hoe u enkel de categorieën die uzelf wilt synchroniseert,
hoe u pakketten toevoegt en meer.
-
Gentoo Netwerk Configuraties
Een uitgebreide handleiding over netwerken in Gentoo.
-
Meteen beginnen
Een handleiding om snel uw netwerk interface aan de gang te krijgen op de
meest voorkomende systemen.
-
Geavanceerde configuratie
Hier wordt u uitgelegd hoe de configuratie werkt - dit heeft u nodig
voordat u verder gaat met netwerken in modules.
-
Netwerken in modules
Gentoo geeft u de mogelijkheid om flexibel te netwerken - hier wordt u
uitleg gegeven over het kiezen van DHCP clients, bonding, bridging, VLAN
en meer.
-
Draadloos netwerk
Draadloos is niet zo makkelijk als het lijkt. Hopelijk krijgt u het hier aan
de gang.
-
Extra functies toevoegen
Wanneer u avontuurlijk bent ingesteld, kunt u zelf functies toevoegen aan
het netwerken.
-
Netwerk management
Voor laptop gebruikers en mensen die een computer vaak aan een ander
netwerk hangen.
A. Installeren van Gentoo
1. Over de Gentoo Linux Installatie
1.a. Introductie
Welkom!
Allereerst, welkom bij Gentoo. Je staat op het punt de wereld van keuzes
en prestatie te betreden. Gentoo draait helemaal om keuzes. Bij de installatie
van Gentoo, wordt dit verschillende keren duidelijk gemaakt -- je kunt kiezen
hoeveel je zelf wil compileren, hoe je Gentoo installeert, welke systeem logger
je wil, etc.
Gentoo is een snelle, moderne metadistributie met een helder en flexibel
ontwerp. Gentoo is gebouwd rond vrije software en schermt zijn gebruikers niet
af voor wat er onder de motorkap ligt. Portage, het pakket onderhoud systeem
dat Gentoo gebruikt, is geschreven in Python, wat betekent dat je gemakkelijk
de broncode kunt bekijken en bewerken. Gentoo's systeem voor software pakketten
gebruikt broncode (hoewel ondersteuning voor voorgeïnstalleerde pakketten ook
is inbegrepen) en de configuratie van Gentoo gebeurt met normale
tekstbestanden. Met andere woorden, openheid overal.
Het is erg belangrijk dat je begrijpt dat Gentoo draait om keuzes. We
proberen je niet te dwingen tot iets wat je niet wil. Als je het gevoel hebt
dat we dat wel doen, schrijf hier dan een foutrapport voor.
Hoe is de Installatie Gestructureerd?
De Gentoo Installatie kan gezien worden als een 10-staps procedure,
overeenkomend met hoofdstukken 2 - 11. Elke stap leidt tot een bepaalde
toestand.
-
Na stap 1, zit je in een werkomgeving die klaar is om Gentoo te installeren
-
Na stap 2, is jouw internet verbinding klaar om Gentoo te installeren
-
Na stap 3, zijn jouw harde schijven gereed om jouw Gentoo installatie te
huisvesten
-
Na stap 4, is jouw installatie omgeving voorbereid en ben je klaar om te
chrooten naar de nieuwe omgeving
-
Na stap 5, zijn de kern pakketten, die op alle Gentoo installaties hetzelfde
zijn, geïnstalleerd
-
Na stap 6, heb je jouw Linux kernel gecompileerd
-
Na stap 7, heb je de meeste van jouw Gentoo systeem configuratie bestanden
geschreven
-
Na stap 8, zijn de nodige systeem programma's (die je uit een aardige lijst
kunt kiezen) geïnstalleerd
-
Na stap 9, is de bootloader van jouw keuze geïnstalleerd en geconfigureerd en
ben je ingelogd in jouw nieuwe Gentoo installatie
-
Na stap 10, is jouw Gentoo Linux omgeving klaar om te worden ontdekt.
Wanneer je voor een bepaalde keuze gesteld wordt, zullen we ons best doen om
uit te leggen wat de voor- en nadelen zijn. Vervolgens gaan we door met de
standaard keuze, aangegeven met "Standaard: " in de titel. De andere
mogelijkheden zijn aangeven met "Alternatief: ". Denk niet dat we de
standaard keuze aanraden. Het is echter wat wij denken dat de meeste gebruikers
willen.
Soms kun je een optionele stap volgen. Zulke stappen zijn aangegeven met
"Optioneel: " en zijn daarom niet nodig om Gentoo te installeren. Echter,
sommige optionele stappen zijn afhankelijk van een beslissing die je daarvoor
hebt gemaakt. We zullen je informeren wanneer dit gebeurt, wanneer je zo'n
beslissing maakt, en vlak voordat de optionele stap wordt beschreven.
Wat zijn mijn Opties?
Je kunt Gentoo op verschillende manieren installeren. Je kunt het downloaden en
installeren vanuit een van onze Installatie CD's, vanuit een bestaande
distributie, vanuit een opstartbare CD (zoals Knoppix), vanuit een
netwerk-gestarte omgeving, vanuit een reddingsfloppy, etc.
Dit document behandelt de installatie waarbij gebruikt gemaakt wordt van een
Gentoo Installatie CD of, in zeldzame gevallen, NetBooting. Deze installatie
gaat ervan uit dat je de laatste beschikbare versie van elk pakket wil
installeren. Als je een netwerkloze installatie wil uitvoeren, dan zou je de
Gentoo 2008.0 Handboeken (Engels)
moeten lezen, die de installatie instructies voor een netwerkloze omgeving
bevat.
Let op, als je van plan bent om GRP (het Gentoo Referentie Platform, een
collectie van voorgeïnstalleerde pakketten bedoelt voor onmiddelijk gebruik na
een Gentoo installatie) te gebruiken, moet je de instructies in de Gentoo 2008.0 Handboeken (Engels) volgen.
Voor hulp bij de andere installatie aanpakken, lees dan onze Alternatieve Installatie Gids (Engels). We
bieden ook een Gentoo
Installatie Tips & Trucs (Engels) document aan dat wellicht ook
handig kan zijn om te lezen. Als je het gevoel hebt dat de huidige installatie
instructies te uitgebreid zijn, gebruik dan gerust onze Snelle Installatie Gids
beschikbaar vanuit onze Documentatie Bronnen
(Engels) als voor jouw architectuur zo'n document beschikbaar is.
Je hebt ook verschillende mogelijkheden: je kunt je gehele systeem vanuit niets
compileren of een voorgeïnstalleerde omgeving gebruiken om je Gentoo omgeving
in geen tijd draaiend te krijgen. En natuurlijk zijn er tussenoplossingen
beschikbaar waarin je niet alles compileert maar start vanuit een half klaar
systeem.
Problemen?
Als je een probleem vindt in de installatie (of in de installatie
documentatie), bezoek dan ons fout
volgsysteem en ga na of de fout al bekend is. Zoniet, maak er dan een
foutrapport voor aan opdat wij het kunnen oplossen. Wees niet bang voor de
ontwikkelaars die aan (jouw) fouten zijn toegewezen -- ze eten normaal
gesproken geen mensen op.
Let op dat, hoewel het document dat je nu leest architectuur-specifiek is, het
ook referenties zal bevatten naar andere architecturen. De reden hiervoor is
het feit dat grote delen van het Gentoo Handboek broncode gebruiken die
gemeenschappelijk is voor alle architecturen (om verdubbeling van moeite en
gebrek van ontwikkelings middelen te voorkomen). We zullen dit tot een minimum
beperken om verwarring te voorkomen.
Als je niet zeker weet of een probleem een gebruikers-probleem is (een door jou
gemaakte fout ondankts het zorgvuldig lezen van de documentatie) of een
software-probleem (een door ons gemaakte fout ondanks het zorgvuldig testen van
de installatie/documentatie) ben je vrij om op #gentoo te komen op
irc.freenode.net. Natuurlijk ben je daar anders ook welkom :)
Als je een vraagt hebt over Gentoo, bekijk onze Veelgestelde Vragen (Engels), beschikbaar vanuit
de Gentoo Documentatie (Engels). Je kunt ook de FAQs bekijken op onze
forums. Als je daar het antwoord
niet kunt vinden, vraag op #gentoo, ons IRC-kanaal op irc.freenode.net. Ja,
sommige van ons zijn freaks die op IRC zitten :-)
2. Keuze van het Installatie Medium
2.a. Hardware eisen
Introductie
Voordat we beginnen, zullen we eerst de hardware-eisen geven
die u nodig heeft om een succesvolle installatie te voltooien op uw PC.
Hardware eisen
| CPU |
i486 of nieuwer |
| Geheugen |
64 MB |
| Schijfruimte |
1.5 GB (exclusief swap ruimte) |
| Swap ruimte |
Ten minste 256 MB |
2.b. De Gentoo Installatie CDs
Introductie
De Gentoo Installatie CDs zijn opstartbare CDs die een zelfstandige
Gentoo omgeving bevatten. Zij laten u toe om Linux vanaf de CD op te starten.
Gedurende het opstarten wordt uw hardware gedetecteerd en de benodigde
stuurprogramma's worden geladen. Deze worden onderhouden door de Gentoo
ontwikkelaars.
Alle Installatie CDs laten u toe om op te starten, uw netwerk te configureren,
uw partities in te delen en te beginn>
en met de installatie van Gentoo over het
internet. We bieden nu twee Installatie CDs welke beide net zo geschikt zijn om
Gentoo van te installeren, mits u van plan bent om een internet-gebaseerde
installatie uitvoert waarbij u de nieuwste pakketten van internet download.
Belangrijk:
Indien u Gentoo wilt installeren zonder een werkende internet verbinding,
gebruik dan de installatie instructies zoals beschreven in het Gentoo 2006.0 Handboek
(Engelstalig).
|
De twee Installatie CDs die we op dit moment aanbieden zijn:
-
De Gentoo minimale Installatie CD, een kleine, puur nuttige
opstartbare CD waarvan het enige >
doel is, om het systeem op te starten, het
netwerk instellen en verder gaan met de Gentoo installatie.
-
De Gentoo Installatie LiveCD bevat alles wat u nodig heeft om Gentoo
te installeren. De CD heeft een grafische omgeving, een grafishe en een
command-line installatie procedure met een automatische installatie, en
natuurlijk de installatie instructies voor uw architectuur.
Omue te helpen kiezen welke Installatie CD u nodig heeft, hebben we een lijstje
met de grote voor- en nadelen van elke Installatie CD gemaakt.
Gentoo Minimale Installatie CD
De minimale Installatie CD heet install-x86-minimal-2006.1.iso en heeft
slechts 49 MB schijfruimte nodig. U kunt deze
Installatie CD gebruiken om Gentoo te installeren, maar alleen met een werkende
internet verbinding.
| Minimale Installatie CD |
Voor- en Nadelen
|
| + |
Kleinste download
|
| - |
Bevat geen stage3 archief, geen Portage moment opname, geen kant-en-klare
pakketten en is daardoor niet geschikt om voor een netwerkloze
installatie.
|
Gentoo's Installatie LiveCD
De Installatie LiveCD heet livecd-i686-installer-2006.1.iso en
gebruikt alle ruimte van een 697 MB CD. U kunt deze
Installatie CD gebruiken om Gentoo te installeren, zelfs als u geen werkende
internet verbinding tot uw beschikking hebt, zodat u Gentoo ook op een andere
PC kunt installeren dan waar u nu mee bezig bent :).
| Installatie LiveCD |
Voor- en Nadelen
|
| + |
Bevat alles wat u nodig heeft. U net zo goed installeren zonder een
netwerk verbinding.
|
| - |
Enorme download
|
De Stage3 Tarrball
Een stage3 tarball is een archief met een minimale Gentoo omgeving, die u
kunt gebruiken tijdens de installatie instructies in deze handleiding.
Vroeger beschreef het handboek de installatie vanuit één van de drie stage
tarballs en hoewel Gentoo nog steeds een stage1 en stage2 tarball aanbiedt,
wordt in de officiële installatie gebruik gemaakt van de stage3 tarball. Als
u geïnteresseerd bent in een Gentoo installatie met een stage1 of stage2
tarball, lees dan de Gentoo FAQ Hoe
installeer ik een stage1 of stage2 tarball? (Engelstalig).
Een stage3 tarball kan worden gedownload vanaf
releases/x86/2006.1/stages/ op één van de mirrors op de
Officiële Gentoo Mirrors Pagina en
zijn niet te vinden op de liveCD.
2.c. Downloaden, Branden en Opstarten van een Gentoo Installatie CD
Downloaden en Branden van de Installatie CDs
allation using the instructions in this
manual. Previously, the Gentoo Handbook described the installation using one of
three stage tarballs. While Gentoo still offers stage1 and stage2 tarballs, the
official installation method uses the stage3 tarball. If you are interested in
performing a Gentoo installation using a stage1 or stage2 tarball, please read
the Gentoo FAQ on How do I Install Gentoo
Using a Stage1 or Stage2 Tarball?
Stage3 tarballs can be downloaded from releases/x86/2006.0/stages/
on any of the Official Gentoo Mirrors
and are not provided on the LiveCD.
Stage3 tarballs can be downloaded from releases/x86/2006.1/stages/ on any of the Official Gentoo Mirrors and are not provided
on the LiveCD.
U heeft gekozen voor een Gentoo Installatie CD te downloaden. We zullen beginnen
bij het downloaden en het branden van een Installatie CD. Vooraf hebben we de
verschillende beschikbare Installatie CDs besproken, maar waar kan men deze
vinden?
U kunt een van de Installatie CDs downloaden (en, indien gewenst ook een
Packages CD) van een van onze mirrors.
De Installatie CDs zijn terug te vinden in de
releases/x86/2006.0/installcd directory.
In deze directory vindt u de zogenaamde ISO-bestanden terug.
Deze zijn volledige CD images, welke u kan schrijven naar een CD-R.
Indien u zich afvraagt of het gedownloade bestand corrupt is of niet, kunt u
de MD5 controle som nakijken en vergelijken met de MD5 controle som die wij
ter beschikking stellen (zoals
install-x86-minimal-2006.1.iso.DIGESTS). U kunt deze MD5 controle
som met de md5sum tool voor Linux/Unix of
md5sum voor Windows
controleren.
U kunt de authenticiteit van het gedownloade bestand ook nakijken met GnuPG met
de versleutelde handtekening die we ter beschikking stellen (het bestand dat
eindigt met .asc). Download het handtekening bestand en verkrijg de
publieke sleutel:
Codevoorbeeld 3.1: Verkrijgen van de publieke sleutel |
$ gpg --keyserver pgp.mit.edu --recv-keys 17072058
|
Verifieer nu de handtekening:
Codevoorbeeld 3.2: Verifieer nu de versleutelde handtekening |
$ gpg --verify <signature file> <downloaded iso>
|
Om de gedownloade ISO(s) te branden, moet u raw-burning selecteren.
Hoe u dit doet is zeer sterk afhankelijk van welk programma u gebruikt.
We zullen hier cdrecord en K3B bespreken; meer informatie is
terug te vinden in onze Gentoo FAQ
(Engelstalig).
-
Met cdrecord, typt u eenvoudig cdrecord dev=/dev/hdc <gedownloade iso
bestand> (vervang /dev/hdc met uw CD-RW drive pad).
-
Met K3B, selecteer Tools > CD > Burn Image.
Dan kunt u de locatie van uw ISO bestand bepalen in het 'Image to Burn'
omgeving. Als laatste klikt u dan op Start.
Opstarten van de Installatie CD
Als u de installatie CD hebt gebrand, is het tijd geworden om deze op te
starten. Verwijder alle CDs uit de CD drives, herstart uw systeem en ga de
BIOS binnen. Dit doet u door op DEL, F1 of ESC te drukken, afhankelijk van uw
Bios. Verander in de BIOS de opstart volgorde zo dat de CD-ROM
geprobeerd wordt voor de harde schijf. Deze optie vindt men vaak terug onder
"CMOS Setup". Indien u dit niet doet, kan het zijn dat uw systeem gewoon vanaf
de harde schijf opstarten en de CD-ROM negeren.
Plaats nu de CD in de CD-ROM drive (duh) en herstart. U moet een boot prompt
zien. Bij dit scherm, kunt u op Enter drukken om het start proces te beginnen
met de standaard start opties, of u kunt de Installatie CD ook opstarten met
aangepaste opties door een kernel te op te geven, gevolgd door de start
argumenten. Om verder te gaan druk dan op Enter.
Een kernel op geven? Ja, we voorzien verschillende kernels bij onze Installatie
CDs. De standaard is gentoo. Andere kernels zijn voor specifieke hardware
eisen de -nofb varianten die de framebuffer ondersteuning uitschakelt.
Hieronder vindt u een klein overzicht met de beschikbare kernels:
| Kernel |
Beschrijven |
| gentoo |
Standaard 2.6 kernel met ondersteuning voor meerdere CPUs |
| gentoo-nofb |
Zelfde als gentoo maar zonder framebuffer ondersteuning |
| memtest86 |
Test uw RAM geheugen op fouten |
U kunt ook kernel opties opgeven. Zij representeren optionele instellingen
die u kunt (de)activeren. De volgende lijst is dezelfde die u ontvangt indien
u op F2 drukt bij het start scherm.
Codevoorbeeld 3.3: Beschikbare aan de kernel mee te geven opties |
- agpgart laadt agpgart (gebruik indien u grafische problemen hebt of als
het systeem vastloopt)
- acpi=on laadt ondersteuning voor ACPI firmware
- ide=nodma Forceert het laden van dma voor niet werkende ide onderdelen uit
- doscsi zoek naar scsi onderdelen (kan leiden tot het ontregelen van
sommige ethernet kaarten)
- dopcmcia start de pcmcia service
- nofirewire schakelt het laden van firewire modules in initrd uit
(voor firewire cdroms, etc)
- nokeymap schakelt de kaymap keuze voor niet-us toetsenborden uit
- docache laadt de volledige opstart portie van de cd in het RAM, dit laat
toe /mnt/cdrom te umounten om een andere cd te mounten.
- nodetect veroorzaakt dat hwsetup/kudzu en hotplug niet worden opgestart
- nousb schakelt usb module load uit van initrd, shakelt hotplug uit
- nodhcp dhcp wordt niet gestart indien een netwerkkaart wordt gedecteerd
- nohotplug schakelt het laden van de hotplug service uit
- noapic schakelt apic uit (probeer dit indien u hardware problemen
heeft, netwerkkaarten, scsi, etc)
- noevms disable loading of EVMS2 modules
- nolvm2 disable loading of LVM2 modules
- hdx=stroke Laat toe de volledige harde schijf te partitioneren ook indien
uw BIOS geen grote harde schijven ondersteunt
- noload=module1,[module2,[...]]
schakel het laden van specifieke kernel modules uit
|
Nu kan u de CD starten, een kernel opgeven (indien u niet tevreden bent met de
standaard gentoo kernel) en de opstart opties selecteren. Als voorbeeld
zullen we tonen hoe u de gentoo kernel met dopcmcia parameter,
opstart:
Codevoorbeeld 3.4: Starten van een Installatie CD |
boot: gentoo dopcmcia
|
U zult begroet worden met een opstartscherm en een vooruitgangsbalk. Als u
Gentoo installeert op een systeem met een niet-US toetsenbord, zorg ervoor dat
u meteen ALT-F1 indrukt om naar de verbose modus en volg de prompt. Als er geen
Als er binnen 10 seconden geen selectie wordt gemaakt zal de standaard (het
toetsenbord van de V.S.) worden gebruikten het laden zal verdergaan.
Als het opstarten klaar is, wordt u automatisch aangemeld in
de "Live" Gentoo Linux als "root", de supergebruiker. U
zult een root ("#") prompt op de huidige console hebben en u kan zich
ook aanmelden op de andere consoles door op Alt-F2, Alt-F3 en Alt-F4 te drukken.
U gaat terug naar de console waar u begonnen bent door op Alt-F1 te drukken.
Ga nu verder met de Extra Hardware Configuratie.
Extra Hardware Configuratie
Wanneer de Installatie CD start, probeert hij al uw hardware te detecteren en
de geschikte kernel modules te laden om uw hardware te ondersteunen. In de
meeste gevallen, zal de Installatie CD zijn taak goed doen. Hoe dan ook, in
sommige gevallen (de SPARC Installatie CDs doen geen autodetectie), zal de
Installatie CD de kernel-modules die u nodig heeft niet automatisch laden.
Indien de PCI-autodetectie sommige van uw hardware gemist heeft, zult u
de geschikte kernel modules handmatig moeten laden.
In het volgende voorbeeld zullen we de 8139too module proberen
te laden (ondersteuning voor verschillende netwerkkaarten):
Codevoorbeeld 3.5: Laden van kernel modules |
# modprobe 8139too
|
Als u PCMCIA ondersteuning nodig hebt, dient u het pcmcia initialisatie
script te starten:
Codevoorbeeld 3.6: Het PCMCIA initialisatie script starten |
# /etc/init.d/pcmcia start
|
Optioneel: Hard Disk prestatie verbeteren
Indien u een gevorderde gebruiker bent, zult u misschien de IDE harde schijf
prestaties willen verbeteren, via hdparam. Met de
-tT opties kunt u de prestaties van uw schijf testen (voert het
verschillende keren uit om een betere indruk te krijgen):
Codevoorbeeld 3.7: Testen van harde schijf performantie |
# hdparm -tT /dev/hda
|
Om de harde schijf in te stellen, kunt u één van de volgende voorbeelden
gebruiken (of experimenteer zelf een beetje) die /dev/hda
gebruiken als harde schijf (vervang dit met jouw harde schijf):
Codevoorbeeld 3.8: Harde Schijf prestatie afstellen |
# hdparm -d 1 /dev/hda
# hdparm -d 1 -A 1 -m 16 -u 1 -a 64 /dev/hda
|
Optioneel: Gebruikers Accounts
Indien u van plan bent om andere mensen toegang te verlenen tot uw installatie
omgeving of indien u wil chatten gebruikmakend van irssi zonder root
privileges (om veiligheidsredenen), moet u de nodige gebruikers accounts
aanmaken en het root wachtwoord wijzigen.
Om uw root wachtwoord te wijzigen, gebruikt u het passwd commando:
Codevoorbeeld 3.9: Veranderen van het root wachtwoord |
# passwd
New password:
Re-enter password:
|
Om een gebruikers account aan te maken, moeten we eerst de gekozen
gebruikersnaam ingeven, gevolgd door een wachtwoord. We gebruiken useradd
en passwd om deze taken uit te voeren. In het volgende voorbeeld,
zullen we een gebruiker genaamd "john" aanmaken.
Codevoorbeeld 3.10: Aanmaken van een gebruikers account |
# useradd m -G users john
# passwd john
New password:
Re-enter password:
|
U kunt nu uw gebruikers id van root naar de vers gemaakte gebruiker wijzigen
door su te gebruiken;
Codevoorbeeld 3.11: Veranderen van user id |
# su - john
|
Optioneel: Documentatie bekijken gedurende de Installatie
Indien u wenst het Gentoo Handboek (vanaf de CD of online) te bekijken
gedurende de installatie, moet u er eerst zeker van zijn dat u een gebruikers
account heeft aangemaakt (zie
Optional: Gebruikers Accounts). Druk dan op
Alt-F2 om een nieuwe terminal te openen en meld u aan.
Indien u de documentatie vanaf de CD wil bekijken, kunt onmiddellijk
links uitvoeren om de documentatie te lezen:
Codevoorbeeld 3.12: Bekijken van de documentatie op de CD |
# links /mnt/cdrom/docs/html/index.html
|
Het is hoe dan ook aangeraden om het on-line Gentoo handboek te gebruiken omdat
u dan altijd over de meest actuele versie beschikt. U kunt het bekijken door
gebruik te maken van links, maar enkel en alleen nadat u de
Configuratie van uw Netwerk afgerond heeft (anders kunt u geen verbinding
krijgen met het Internet om het document te bekijken):
Codevoorbeeld 3.13: Bekijken van de Online Documentatie |
# links http://www.gentoo.org/doc/nl/handbook/handbook-x86.xml.xml
|
U kunt terug gaan naar de oorspronkelijke terminal door op Alt-F1 te
drukken.
Optioneel: Starten van de SSH Daemon
Indien u andere gebruikers toegang tot uw computer wilt verlenen gedurende de
Gentoo installatie (misschien gaan die gebruikers u helpen bij de installatie
van Gentoo, of zullen misschien de installatie voor u doen), moet u een
gebruikersaccount aanmaken voor die gebruikers en moet u het root wachtwoord
aan hen geven (doe dit allleen indien u die gebruiker volledig
vertrouwt).
Om de SSH daemon op te starten, voer het volgende commando uit:
Codevoorbeeld 3.14: Start van de SSH daemon |
# /etc/init.d/sshd start
|
Om sshd te kunnen gebruiken, moet u eerst uw netwerk configureren. Begin met
de Configuratie van uw netwerk.
3. Configuratie van uw Netwerk
3.a. Automatische Netwerk Detectie
Misschien werkt het gewoon?
Als jouw systeem is verbonden in een Ethernet netwerk met DHCP server, is het
erg waarschijnlijk dat jouw netwerk configuratie al automatisch voor jouw is
ingesteld. Als dit zo is, zou je jouw voordeel kunnen doen met de vele
inbegrepen netwerk-bewuste commando's op de Installatie CD zoals onder andere
ssh, scp, ping, irssi, wget en links.
Als de netwerkvoorziening al voor jouw is geconfigureerd, zou het
/sbin/ifconfig commando naast lo een aantal netwerk interfaces moeten
vermelden, zoals eth0:
Codevoorbeeld 1.1: /sbin/ifconfig voor een werkende netwerk configuratie |
# /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
|
Optioneel: Configureer iedere Proxy
Als je toegang hebt tot het Internet via een proxy, moet je wellicht proxy
informatie instellen tijdens de installatie. Het is erg makkelijk om een proxy
te definiëren: je hoeft slechts een variabele definiëren die de proxy server
informatie bevat.
In de meeste gevallen kun je de variabelen definiëren door de server hostname
te gebruiken. Als voorbeeld nemen we aan dat de proxy de naam
proxy.gentoo.org heeft en de poort 8080 is.
Codevoorbeeld 1.2: Proxy servers definiëren |
# export http_proxy="http://proxy.gentoo.org:8080"
# export ftp_proxy="ftp://proxy.gentoo.org:8080"
# export RSYNC_PROXY="proxy.gentoo.org:8080"
|
Als jouw proxy een gebruikersnaam en wachtwoord vereist, moet je de volgende
syntax voor de variabele gebruiken:
Codevoorbeeld 1.3: Gebruikersnaam/wachtwoord toevoegen aan de proxy variabele |
http://gebruikersnaam:wachtwoord@proxy.gentoo.org:8080
|
Testen van het Netwerk
Wellicht wil je proberen om jouw ISP's DNS server (te vinden in
/etc/resolv.conf) en een zelf gekozen website te pingen, om zeker
te zijn dat jouw pakketjes het net bereiken, de DNS naam resolutie correct
werkt, etc.
Codevoorbeeld 1.4: Verder testen van het netwerk |
# ping -c 3 www.gentoo.org
|
Als je nu jouw netwerk kunt gebruiken, kun je de rest van deze sectie overslaan
en verder gaan met Voorbereiden van de schijven
(Engels). Zoniet, lees verder.
3.b. Automatische Netwerk Configuratie
Als het netwerk niet meteen werkt, kun je op sommige installatie media
net-setup (voor reguliere of draadloze netwerken) gebruiken,
pppoe-setup (voor ADSL-gebruikers) of pptp (voor PPTP-gebruikers
- beschikbaar op x86, amd64, alpha, ppc en ppc64).
Als jouw installatie medium niet een van deze programma's heeft of jouw netwerk
functioneert nog niet, ga verder met Handmatige Netwerk
Configuratie.
Standaard: Gebruiken van net-setup
De simpelste manier om de netwerkvoorziening in te stellen als het niet
automatisch werd geconfigureerd is het uitvoeren van het net-setup
script:
Codevoorbeeld 2.1: Uitvoeren van het net-setup script |
# net-setup eth0
|
net-setup zal je enige vragen stellen over jouw netwerk omgeving.
Wanneer dit klaar is, zou je een werkende netwerk verbinding moeten hebben.
Test jouw netwerk verbinding zoals eerder werd vermeld. Als de tests positief
zijn, gefeliciteerd! Je bent nu klaar om Gentoo te installeren. Sla de rest van
deze sectie over en ga verder met Voorbereiden
van de schijven (Engels).
Als jouw netwerk nog steeds niet werkt, ga verder met
Handmatige Netwerk Configuratie.
Alternatief: Gebruiken van PPP
Ervan uitgaande dat je PPPoE nodig hebt om verbinding te maken met het
internet, heeft de Installatie CD (elke versie) het je makkelijk gemaakt door
ppp bij te sluiten. Gebruik het gegeven pppoe-setup script om
jouw verbinding te configureren. Je zult gevraagd worden naar het ethernet
apparaat dat is verbonden met jouw adsl modem, jouw gebruikersnaam en
wachtwoord, de IP's van jouw DNS servers en of je een basis firewall nodig hebt
of niet.
Codevoorbeeld 2.2: Gebruik van ppp |
# pppoe-setup
# pppoe-start
|
Als er iets verkeerd gaat, kijk dan na of je jouw gebruikersnaam en wachtwoord
correct hebt ingevoerd door te kijken naar /etc/ppp/pap-secrets of
/etc/ppp/chap-secrets en verzeker jezelf dat je het juiste
ethernet apparaat gebruikt. Als jouw ethernet apparaat niet bestaat, zul je de
geschikte netwerk module moeten laden. In dat geval zou je verder moeten gaan
met Handmatige Netwerk Configuratie omdat we daar
uitleggen hoe je de geschikte netwerk modules moet laden.
Als alles werkt, ga verder met Voorbereiden van
de schijven (Engels)
Alternatief: Gebruiken van PPTP
Als je PPTP ondersteuning nodig hebt, kun je pptpclient gebruiken die is
meegegeven op onze Installatie CD's. Je moet echter eerst zeker weten dat jouw
configuratie correct is. Bewerk /etc/ppp/pap-secrets of
/etc/ppp/chap-secrets zodat het de juiste
gebruikersnaam/wachtwoord combinatie bevat:
Codevoorbeeld 2.3: Bewerken van /etc/ppp/chap-secrets |
# nano -w /etc/ppp/chap-secrets
|
Pas daarna /etc/ppp/options.pptp aan wanneer nodig:
Codevoorbeeld 2.4: Bewerken van /etc/ppp/options.pptp |
# nano -w /etc/ppp/options.pptp
|
Wanneer dit alles is gedaan, voer pptp uit (samen met de opties die je
niet kon instellen in options.pptp) om met de server te verbinden:
Codevoorbeeld 2.5: Verbinding maken met een inbel server |
# pptp <server ip>
|
Ga nu verder met Voorbereiden van de schijven
(Engels).
3.c. Handmatige Netwerk Configuratie
Laden van de Geschikte Netwerk Modules
Als de Installatie CD opstart, probeert deze al jouw hardware apparaten te
detecteren en de geschikte kernel modules (drivers) om jouw hardware te
ondersteunen te laden. In de grote meerderheid van de gevallen, gaat dit erg
goed. Echter, in een aantal gevallen, kan het zijn dat de kernel modules die je
nodig hebt niet automatisch worden geladen.
Als net-setup of pppoe-setup mislukten, dan is het mogelijk dat
je netwerkkaart niet meteen werd gevonden. Dit betekent dat je wellicht de
geschikte kernel modules handmatig moet laden.
Om uit te vinden welke kernel modules we aanbieden voor netwerkvoorziening,
gebruik ls:
Codevoorbeeld 3.1: Zoeken naar gegeven modules |
# ls /lib/modules/`uname -r`/kernel/drivers/net
|
Als je een driver voor jouw netwerkkaart vindt, gebruik modprobe om de
kernel module te laden:
Codevoorbeeld 3.2: Gebruiken van modprobe om een kernel module te laden |
# modprobe pcnet32
|
Om na te gaan of jouw netwerkkaart nu gedetecteerd is, gebruik ifconfig.
Een gedetecteerde netwerkkaart zou moeten resulteren in iets als het volgende:
Codevoorbeeld 3.3: Testen van de beschikbaarheid van jouw netwerkkaart, succesvol |
# 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)
|
Als je echter de volgende foutmelding krijgt, is de netwerkkaart niet
gedetecteerd:
Codevoorbeeld 3.4: Testen van de beschikbaarheid van jouw netwerkkaart, mislukt |
# ifconfig eth0
eth0: error fetching interface information: Device not found
|
Als je meerdere netwerkkaarten in jouw systeem hebt, hebben ze de volgende
namen eth0, eth1, etc. Verzeker jezelf dat de netwerkkaart die je
wil gebruiken goed werkt en onthoud om de correcte benaming in dit document te
gebruiken. We gaan ervan uit dat de netwerkkaart eth0 wordt gebruikt.
Ervan uitgaande dat je nu een gedetecteerde netwerkkaart hebt, kun je opnieuw
net-setup of pppoe-setup proberen (wat nu zou moeten werken),
maar voor de harde kern onder jullie leggen we uit hoe je jouw netwerk
handmatig configureert.
Selecteer een van de volgende secties gebaseerd op jouw netwerk situatie:
Gebruiken van DHCP
DHCP (Dynamic Host Configuration Protocol) maakt het mogelijk om automatisch
netwerkvoorzienings-informatie te ontvangen (IP adres, netmask, broadcast
adres, gateway, nameservers etc.). Dit werkt alleen als je een DHCP server in
jouw netwerk hebt (of als jouw provider een DHCP service aanbiedt). Om ervoor
te zorgen dat jouw netwerk interface deze informatie automatisch ontvangt,
gebruik dhcpcd:
Codevoorbeeld 3.5: Gebruiken van dhcpcd |
# dhcpcd eth0
# dhcpcd -HD eth0
|
Als dit werkt (probeer een internet server te pingen, bijvoorbeeld Google), dan is alles ingesteld en ben je
klaar om verder te gaan. Sla de rest van deze sectie over en ga verder met Voorbereiden van de schijven (Engels).
Voorbereiden van Draadloze Toegang
Nota:
Ondersteuning voor het iwconfig commando is alleen beschikbaar op x86,
amd64 en ppc Installatie CD's. Je kunt de uitbreidingen nog steeds op een
andere manier werkend krijgen door de instructie van het linux-wlan-ng
project te volgen.
|
Als je een draadloze (802.11) kaart gebruikt, moet je wellicht jouw draadloze
instellingen configureren voordat je verder gaat. Om de huidige draadloze
instellingen voor jouw kaart te zien, kun je iwconfig gebruiken. Het
uitvoeren van iwconfig laat wellicht het volgende zien:
Codevoorbeeld 3.6: Tonen van de huidige draadloze instellingen |
# 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
|
Nota:
Sommige draadloze kaarten kunnen een apparaat naam als wlan0 of
ra0 hebben in plaats van eth0. Voer iwconfig uit zonder
enige parameters om de correcte apparaatnaam te achterhalen.
|
Voor de meeste gebruikers zijn er slechts twee instellingen die wellicht van
belang zijn om te veranderen, de ESSID (beter bekend als draadloze netwerk
naam) of de WEP sleutel. Als de vermeldde ESSID en het Access Point adres al
hetzelfde zijn als jouw access point en je gebruikt geen WEP, dan werkt je
draadloze verbinding. Als je jouw ESSID moet veranderen, of een WEP sleutel
moet toevoegen, kun je de volgende commando's uitvoeren:
Codevoorbeeld 3.7: Veranderen van ESSID en/of toevoegen van WEP sleutel |
# iwconfig eth0 essid GentooNode
# iwconfig eth0 key 1234123412341234abcd
# iwconfig eth0 key s:een-wachtwoord
|
Je kunt jouw draadloze instellingen opnieuw bevestigen door iwconfig te
gebruiken. Als je draadloze verbinding werkt, kun je verder gaan met het
configureren van de IP niveau netwerkvoorzienings-opties zoals beschreven in de
volgende sectie (Begrijpen van Netwerk
Terminologie) of door het net-setup programma te gebruiken zoals
eerder beschreven.
Begrijpen van Netwerk Terminologie
Nota:
Als je jouw IP adres, broadcast adres, netmask en nameservers weet, dan kun je
deze subsectie overslaan en verder gaan met Gebruiken van ifconfig en route.
|
Als al het bovenstaande mislukt, zul je jouw netwerk handmatig moeten
instellen. Dit is helemaal niet moeilijk. Je moet echter bekend zijn met enige
netwerk terminologie, aangezien je dat nodig hebt om het netwerk naar eigen
tevredenheid in te stellen. Na dit te hebben gelezen, weet je wat een
gateway is, waar een netmask voor dient, hoe een broadcast
adres is geformuleerd en waarom je nameservers nodig hebt.
In een netwerk zijn hosts geïdentificeerd door hun IP adres (Internet
Protocol adres). Zo'n adres is een combinatie van vier nummers tussen 0 en 255.
Goed, zo wordt het tenminste door ons beschouwd. In het echt bestaat zo'n IP
adres uit 32 bits (enen en nullen). Laten we een voorbeeld bekijken:
Codevoorbeeld 3.8: Voorbeeld van een IP adres |
IP Adres (nummers): 192.168.0.2
IP Adres (bits): 11000000 10101000 00000000 00000010
-------- -------- -------- --------
192 168 0 2
|
Zo'n IP adres is uniek voor een host zover het alle toegankelijke netwerken
betreft (d.w.z. elke host die je kunt bereiken moet een uniek IP adres hebben).
Om onderscheid te maken tussen hosts binnen en buiten een netwerk, is het IP
adres verdeeld in twee delen: het netwerk deel en het host deel.
De verdeling is opgeschreven met een netmask, een verzameling van enen
gevolgd door een verzameling nullen. Het deel van het IP dat kan worden
ingedeeld door de enen is het netwerk-deel, het andere is het host-deel. Zoals
gebruikelijk, kan de netmask worden opgeschreven als een IP adres.
Codevoorbeeld 3.9: Voorbeeld van netwerk/host verdeling |
IP adres: 192 168 0 2
11000000 10101000 00000000 00000010
Netmask: 11111111 11111111 11111111 00000000
255 255 255 0
+--------------------------+--------+
Netwerk Host
|
Met andere woorden, 192.168.0.14 is nog steeds deel van ons voorbeeld netwerk,
maar 192.168.1.2 niet.
Het broadcast adres is een IP adres met hetzelfde netwerk-deel als jouw
netwerk, maar met alleen nullen als host-deel. Elke host in jouw netwerk
luistert naar dit IP adres. Het wordt echt gebruikt om pakketjes te verzenden.
Codevoorbeeld 3.10: Broadcast adres |
IP adres: 192 168 0 2
11000000 10101000 00000000 00000010
Broadcast: 11000000 10101000 00000000 11111111
192 168 0 255
+--------------------------+--------+
Netwerk Host
|
Om op het internet te surfen, moet je weten welke host de Internet verbinding
deelt. Deze host wordt de gateway genoemd. Omdat het een normale host
is, heeft deze een normaal IP adres (bijvoorbeeld 192.168.0.1).
We stelden eerder dat elke host zijn eigen IP adres heeft. Om deze host te
bereiken met een naam (in plaats van een IP adres) heb je een service nodig die
een naam (zoals dev.gentoo.org) vertaalt naar een IP adres (zoals
64.5.62.82). Zo'n service wordt een name service genoemd. Om zo'n
service te gebruiken, moet je de nodige name servers in
/etc/resolv.conf definiëren.
In sommige gevallen dient jouw gateway ook als nameserver. Anders moet je de
door jouw ISP gegeven nameservers invoeren.
Samenvattend heb je de volgende informatie nodig voordat je verder gaat:
| Netwerk Onderdeel |
Voorbeeld |
| Jouw IP adres |
192.168.0.2 |
| Netmask |
255.255.255.0 |
| Broadcast |
192.168.0.255 |
| Gateway |
192.168.0.1 |
| Nameserver(s) |
195.130.130.5, 195.130.130.133 |
Gebruiken van ifconfig en route
Het opstellen van je netwerk bestaat uit drie stappen. Eerst geven we onszelf
een IP adres door ifconfig te gebruiken. Vervolgens stellen we de weg
naar de gateway in door route te gebruiken. Daarna maken we het af door
de nameserver IP's in /etc/resolv.conf te plaatsen.
Om een IP adres te geven, heb je jouw IP adres nodig, broadcast adres en
netmask. Voer vervolgens het volgende commando uit, waarbij je
${IP_ADDR} vervangt met jouw IP adres, ${BROADCAST} met jouw
broadcast adres en ${NETMASK} met jouw netmask:
Codevoorbeeld 3.11: Gebruiken van ifconfig |
# ifconfig eth0 ${IP_ADDR} broadcast ${BROADCAST} netmask ${NETMASK} up
|
Stel nu de weg naar de gateway in door route te gebruiken. Vervang
${GATEWAY} met jouw gateway IP adres.
Codevoorbeeld 3.12: Gebruiken van route |
# route add default gw ${GATEWAY}
|
Open nu /etc/resolv.conf met jouw favoriete tekstbewerker (we
gebruiken nano in ons voorbeeld):
Codevoorbeeld 3.13: Maken van /etc/resolv.conf |
# nano -w /etc/resolv.conf
|
Vul nu jouw nameserver(s) in door het volgende als sjabloon te gebruiken.
Verzeker jezelf dat je ${NAMESERVER1} en ${NAMESERVER2} vervangt
door de geschikte nameserver adressen:
Codevoorbeeld 3.14: /etc/resolv.conf sjabloon |
nameserver ${NAMESERVER1}
nameserver ${NAMESERVER2}
|
Dat is alles. Test nu je netwerk door een Internet server te pingen
(bijvoorbeeld Google). Als dit werkt,
gefeliciteerd. Je bent nu klaar om Gentoo te installeren. Ga verder met Voorbereiden van de Harde Schijven (Engels).
4. Voorbereiden van de harde schijven
4.a. Introductie van Block Devices
Block Devices
We bekijken de schijf gedeeltes van Gentoo Linux en Linux in het algemeen,
inclusief de linux bestandssystemen, partities en block devices.
Wanneer u dan bekend bent met de ins en outs van schijven en bestandssystemen,
leiden we u door het proces van het opzetten van partities en bestandssystemen
voor uw Gentoo Linux Installatie.
Om te beginnen, zullen we block devices introduceren. Het meest bekende
block device is waarschijnlijk die van de eerste IDE schijf in een Linux
systeem, namelijk /dev/hda. Als uw systeem SCSI of SATA schijven
heeft, dan kan uw eerste harde schijf /dev/sda zijn.
De hierboven genoemde block devices stellen een abstracte interface naar de
schijf voor. Programma's kunnen deze block devices gebruiken om te communiceren
met de schijf zonder zich zorgen te hoeven maken of het een IDE, SCSI of iets
anders is. Het programma kan simpelweg de ruimte als een set aangrenzende,
willekeurig te bereiken 512-byte blokken gebruiken.
Partities
Hoewel het theoretisch mogelijk is om een volledige schijf te gebruiken voor
uw Linux systeem, wordt dit in de praktijk zelden gedaan. In plaats daarvan
worden ze opgesplitst in kleinere, makkelijker te beheren block devices. Op
x86 systemen, noemen we deze partities.
Partities worden in drie types opgedeeld:
primary (primaire), extended (uitgebreide) en logical
(logische).
Een primaire partitie is een partitie die zijn informatie opslaat in
de MBR (master boot record). Omdat een MBR erg klein is (512 bytes) kunnen
er slechts 4 primaire partities worden gebruikt (bijvoorbeeld,
/dev/hda1 tot /dev/hda4).
Een uitgebreide partitie is een speciale primaire partitie (deze moet
dus een van de primaire partities zijn) die meerdere parties kan bevatten.
Oorspronkelijk bestonden deze niet, maar omdat vier partities te weinig waren,
breidde men het partitieschema uit zonder backward compatibility
te verliezen.
Een logische partitie is een partitie binnen de extended partitie. De
definities hiervan worden niet in de MBR gezet, maar binnen in de extended
partitie.
Geavanceerde Opslag
De x86 Installatie CDs bieden ondersteuning voor EVMS en LVM2.
EVMS en LVM2 vergroten de flexibiliteit van uw partitie indeling. Tijdens de
installatie instructies, zullen we ons richten op "reguliere" partities,
maar het is goed om te weten dat EVMS en LVM ook ondersteund worden.
4.b. Een partitie schema ontwerpen
Standaard Partitie Schema
Als u niet geïnteresseerd bent in een partitie schema te tekenen voor uw
systeem, dan kunt u het partitie schema gebruiken wat we in dit boek gebruiken:
| Partitie |
Bestandssysteem |
Grootte |
Beschrijving |
| /dev/hda1 |
ext2 |
32M |
Boot partitie |
| /dev/hda2 |
(swap) |
512M |
Swap partitie (wisselbestand) |
| /dev/hda3 |
ext3 |
Rest van de schijf |
Root partitie |
Als u wel wilt weten hoe groot een partitie moet zijn, of zelfs hoeveel
partities u nodig heeft, lees dan verder. Zo niet, dan kunt u doorgaan met het
partitioneren van uw schijf, door het lezen van fdisk
gebruiken om uw schijf te partitioneren.
Hoeveel en hoe groot?
Het aantal partities hangt zeer sterk af van uw omgeving. Bijvoorbeeld, als u
een heleboel gebruikers hebt, wilt u waarschijnlijk uw /home
gescheiden houden omdat dit de snelheid en veiligheid ten goede komt en ook
backups maken is een stuk makkelijker.
Als u Gentoo installeert als een mailserver, zou u /var
gescheiden kunnen houden, omdat al uw mails in /var staan.
Een goede keuze van uw schijfindeling zal de snelheid flink verhogen.
Gameservers zullen een aparte /opt hebben omdat de meeste
gameservers daar geïnstalleerd worden, vanwege dezelfde redenen als oor
/home>: veiligheid en backups. U wilt /usr groot
houden: het zal niet alleen het grootste deel van de applicaties bevatten, de
Portage boom op zich neemt ongeveer 500 Mbyte in beslag, exclusief de
verschillende broncodes die er opgeslagen staan.
Zoals u kunt zien, hangt het sterk af van uw doel. Gescheiden partities of
volumes hebben de volgende voordelen:
-
U kunt het best presterende bestandssysteem kiezen voor iedere partitie of
volume
-
Uw totale systeem kan niet vol zitten als een programma constant files naar
een partitie of volume probeert te schrijven
-
Zo nodig kunnen bestandssysteem controles worden beperkt in tijd, omdat meerdere
controles parallel kunnen worden uitgevoerd (hoewel dit voordeel vooral geldt
bij meerdere schijven dan meerdere partities)
-
Veiligheid kan worden verbeterd door het mounten van enkele partities of
volumes als alleen-lezen, nosuid (setuid bits worden genegeerd), noexec
(uitvoerbare bits worden genegeerd) etc.
Hoewel, meerdere partities hebben een groot nadeel: indien niet goed ingesteld,
kunt u een systeem krijgen met veel vrije ruimte op de ene en niets op de
andere. Ook is er een 15-partities limiet voor SCSI en SATA.
Als een voorbeeld partitie indeling, zullen we u laten zien hoe u een
20Gb schijf die wordt gebruikt als een demonstratie laptop (met webserver,
mailserver, gnome, ...) partitioneert:
Codevoorbeeld 2.1: Voorbeeld bestandssysteem gebruik |
$ df -h
Filesystem Type Size Used Avail Use% Mounted on
/dev/hda5 ext3 509M 132M 351M 28% /
/dev/hda2 ext3 5.0G 3.0G 1.8G 63% /home
/dev/hda7 ext3 7.9G 6.2G 1.3G 83% /usr
/dev/hda8 ext3 1011M 483M 477M 51% /opt
/dev/hda9 ext3 2.0G 607M 1.3G 32% /var
/dev/hda1 ext2 51M 17M 31M 36% /boot
/dev/hda6 swap 516M 12M 504M 2% <niet gemount>
|
/usr is hier redelijk vol (83% gebruikt), maar als
alle software is geïnstalleerd groeit /usr niet meer veel. Op het
eerste gezicht lijkt /var erg groot, maar Gentoo compileert
standaard alle programmas in /var/tmp/portage. Wanneer u
/var op bescheiden formaat wilt houden (rond de 1GB), kunt u de
PORTAGE_TMPDIR variabele in /etc/make.conf aan passen en
naar een partitie met voldoende ruimte laten verwijzen wanneer u extreem grote
pakketten (oa OpenOffice, KDE) wilt compileren.
4.c. fdisk gebruiken om uw schijf te partitioneren
Het volgende deel beschrijft hoe u de eerder beschreven voorbeeld
indeling maakt, namelijk:
| Partitie |
beschrijving |
| /dev/hda1 |
Boot partitie |
| /dev/hda2 |
Swap partitie |
| /dev/hda3 |
Root partitie |
Verander uw partitie indeling eventueel naar eigen inzicht.
De huidige partitie indeling bekijken
fdisk is een populaire en krachtige tool om de schijf op te delen
in partities. Start fdisk op uw schijf (in ons voorbeeld is dat
/dev/hda):
Codevoorbeeld 3.1: Fdisk starten |
# fdisk /dev/hda
|
Eenmaal in fdisk, wordt u begroet door een prompt als deze:
Codevoorbeeld 3.2: fdisk prompt |
Command (m for help):
|
Type p om uw huidige partitie indeling te laten zien:
Codevoorbeeld 3.3: Een voorbeel partitie indeling |
Command (m for help): p
Disk /dev/hda: 240 heads, 63 sectors, 2184 cylinders
Units = cylinders of 15120 * 512 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 14 105808+ 83 Linux
/dev/hda2 15 49 264600 82 Linux swap
/dev/hda3 50 70 158760 83 Linux
/dev/hda4 71 2184 15981840 5 Extended
/dev/hda5 71 209 1050808+ 83 Linux
/dev/hda6 210 348 1050808+ 83 Linux
/dev/hda7 349 626 2101648+ 83 Linux
/dev/hda8 627 904 2101648+ 83 Linux
/dev/hda9 905 2184 9676768+ 83 Linux
Command (m for help):
|
Deze schijf is opgedeeld in zeven Linux bestandssystemen (elke met een
partitie opgegeven als "Linux") en een swap partitie (opgegeven als
"Linux swap").
Alle Partities verwijderen
Om te beginnen verwijderen we alle bestaande partities van de schijf.
Type d om een partitie te verwijderen, bijvoorbeeld een
reeds bestaande /dev/hda1:
Codevoorbeeld 3.4: Een partitie verwijderen |
Command (m for help): d
Partition number (1-4): 1
|
De partitie is nu gemarkeerd om te verwijderen. Hij zal niet langer te
voorschijn komen als u p typt, maar hij zal niet verwijderd worden tot
u de veranderingen opslaat. Als u een fout maakt en wil stoppen
zonder uw veranderingen op te slaan, type dan q en druk op
enter. Uw partitie zal dan niet worden verwijderd.
Nu, er van uit gaande dat u inderdaad de partitie wil verwijderen, type
herhaaldelijk p om de partities te zien en daarna d met het
nummer dat u wil verwijderen. Uiteindelijk eindigt u met een lege
partitie tabel:
Codevoorbeeld 3.5: Een lege partitie tabel |
Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
Device Boot Start End Blocks Id System
Command (m for help):
|
Nu de partitie tabel in het geheugen leeg is, zijn we klaar om de partities
te maken. We zullen een standaard partitie indeling gebruiken, zoals eerder
besproken. Natuurlijk bent u niet verplicht deze te volgen!
De boot partitie maken
Eerst zullen we een kleine boot partitie maken. Type n om een nieuwe
partitie te maken, daarna p om een primaire partitie te selecteren,
gevolgd door een 1 om de eerste primaire partitie te selecteren.
Als u gevraagd wordt om de eerste cylinder aan te geven, drukt u op enter. Als
er om de laatste cylinder wordt gevraagd, typt u +32M om een partitie
van 32 Mbyte te maken:
Codevoorbeeld 3.6: De boot partitie maken |
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-3876, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-3876, default 3876): +32M
|
Wanneer u nu p typt, zou u de volgende partitie printout moeten zien:
Codevoorbeeld 3.7: Gecreerde boot partitie |
Command (m for help): p
Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 14 105808+ 83 Linux
|
Deze partitie moet opstartbaar zijn. Type a om opstartbaar aan of uit
te zetten. Kies hierbij 1. Als u nu weer p indrukt, zult u zien
dat een * in de "Boot" kolom staat.
De swap partitie maken
Laten we nu de swap partitie maken. Om dit te doen, typt u n om een
nieuwe partitie te maken, daarna p om fdisk te vertellen dat u een
nieuwe primaire partitie wil. Daarna typt u 2 om de tweede primaire
partitie aan te maken, /dev/hda2 in ons geval. Als er gevraagd
wordt om de eerste cylinder, drukt u op enter. Voor de laatste cylinder, typt
u +512M om een partitie van 512MB te maken. Als u dit gedaan heeft, typt
u t om het partitie type in te stellen, 2 om de net gemaakte
partitie te selecteren en typt u 82 om het "Linux swap" te kiezen.
Na deze stappen, zou p een partitie tabel moeten laten zien die er zo
uit ziet:
Codevoorbeeld 3.8: Partitie indeling na het maken van een swap partitie |
Command (m for help): p
Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 14 105808+ 83 Linux
/dev/hda2 15 81 506520 82 Linux swap
|
De Root Partitie maken
Eindelijk kunnen we de root partitie aanmaken. Om dit te doen, typt u n
om weer een nieuwe partitie aan te maken, p om fdisk te vertellen dat
u een primaire partitie wilt. Type daarna 3 om een derde primaire
partitie te maken, /dev/hda3 in ons geval. Als gevraagd wordt om
de eerste cylinder, druk op enter. Daarna vraagt hij om de laatste cylinder,
druk wederom op enter om een partitie te maken die de schijf verder vult. Na
deze stappen, zou p in typen een partitie tabel moeten geven die er zo
uit ziet:
Codevoorbeeld 3.9: Partitie indeling na het maken van de root partitie |
Command (m for help): p
Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 14 105808+ 83 Linux
/dev/hda2 15 81 506520 82 Linux swap
/dev/hda3 82 3876 28690200 83 Linux
|
De partitie indeling opslaan
Om de partitie tabel op te slaan en fdisk af te sluiten, type w.
Codevoorbeeld 3.10: Opslaan en fdisk afsluiten |
Command (m for help): w
|
Nu de partities gemaakt zijn, kunt u doorgaan met Bestandssystemen maken.
4.d. Bestandssystemen maken
Introductie
Nu uw partities gemaakt zijn, is het tijd om een bestandssysteem op te zetten.
Als het u niet interesseert wat voor bestandssystemen u kunt kiezen en tevreden
bent met wat we als standaard kiezen in dit handboek, ga verder met Bestandssystemen toepassen op een partitie
Als het u wel interesseert, lees dan verder...
Bestandssystemen?
De Linux kernel ondersteunt verschillende bestandssystemen. We zullen ext2,
ext3, ReiserFS, XFS en JFS uitleggen omdat deze het meest gebruikt worden op
Linux systemen.
ext2 is een goed getest en echt Linux bestandssysteem maar heeft geen
metadata journaling, wat betekent dat ext2 bestandssysteem controles redelijk
veel tijd kunnen kosten. Er is nu een redelijke keuze aan nieuwere journaled
bestandssystemen die zeer snel gecontroleerd kunnen worden en dus de voorkeur
hebben boven hun niet-journaled tegenhangers. Journaled bestandssystemen
voorkomen lange vertragingen als u opstart en u een beschadigd bestandssysteem
heeft.
ext3 is de journaled versie van het ext2 bestandssysteem. Het heeft
metadata journaling voor een snel herstel naast andere journaling modes zoals
full data en ordered data journaling. ext3 is een zeer goed en
betrouwbaar bestandssysteem. Het heeft een extra hashed b-tree index
optie die betere prestaties levert in bijna iedere situatie. In het kort, ext3
is een goed bestandssysteem.
ReiserFS is een B*-tree gebaseerd bestandssysteem dat zeer goede
prestaties levert. Verder verslaat het ext2 en ext3 met factor 10x-15x in de
omgang met kleine bestanden (kleiner dan 4k). ReiserFS schaalt extreem goed
en heeft metadata journaling. Sinds kernel 2.4.18+, is ReiserFS stabiel en
bruikbaar voor zowel algemeen gebruik als voor extremere gevallen zoals grote
bestandsystemen, het gebruik van veel kleine bestanden, zeer grote bestanden
en directories die tienduizenden bestanden bevatten.
XFS is een filesystem met metadata journaling met een robuuste
feature-set en geoptimaliseerd is voor schaalbaarheid. We raden dit
alleen aan op Linux systemen met high-end SCSI en/of fibre channel opslag
en een UPS (Uninterruptible Power Supply) omdat XFS agressief in-transit
data cached in het geheugen. Slecht ontworpen programma's (die geen goede
voorbereidingen nemen bij het schrijven van bestanden naar de schijf en
daar zijn er redelijk veel van) kunnen een groot deel aan data verliezen
als het systeem onverwacht plat gaat.
JFS is IBM's high-performance journaling bestandssysteem. Het is recent
productie-klaar geworden en er is nog niet genoeg ervaring mee om er iets
(positief, noch negatief) over te zeggen.
Een bestandssysteem toepassen op een partitie
Om een bestandssysteem op een partitie of volume aan te maken, zijn er tools
beschikbaar voor elk bestandssysteem:
| Filesystem |
Commando om te maken |
| ext2 |
mke2fs |
| ext3 |
mke2fs -j -O dir_index |
| reiserfs |
mkreiserfs |
| xfs |
mkfs.xfs |
| jfs |
mkfs.jfs |
Om bijvoorbeeld van de boot partitie (/dev/hda1 in ons geval)
ext2 te maken en de root partitie (/dev/hda3 in ons geval) ext3
te maken, zou u dit gebruiken:
Codevoorbeeld 4.1: Een bestandssysteem toepassen op een partitie |
# mke2fs /dev/hda1
# mke2fs -j -O dir_index /dev/hda3
|
Maak nu de bestandssystemen aan op uw vers gemaakte partities (of logische
volumes).
De swap partitie activeren
mkswap is het commando dat gebruikt wordt om swap partities te
initialiseren:
Codevoorbeeld 4.2: De swap partitie initializeren |
# mkswap /dev/hda2
|
Om de swap partitie aan te zetten, gebruik swapon:
Codevoorbeeld 4.3: Activeer de swap partitie |
# swapon /dev/hda2
|
Maak en activeer met behulp van de bovenstaande commandos de swap partitie.
4.e. Mounten (Aankoppelen van bestandssystemen)
Nu onze partities gemaakt zijn en een bestandssysteem bevatten, is het tijd ze
te mounten. Gebruik het mount commando. Vergeet niet om de benodigde map
aan te maken waar u ze wilt mounten. Als een voorbeeld mounten we de root en
boot partities:
Codevoorbeeld 5.1: De partities mounten |
# mount /dev/hda3 /mnt/gentoo
# mkdir /mnt/gentoo/boot
# mount /dev/hda1 /mnt/gentoo/boot
|
Nota:
Als u /tmp op een aparte partitie wilt plaatsen,
zorg dat de rechten goed staan na het mounten:
chmod 1777 /mnt/gentoo/tmp. Dit geld ook voor /var/tmp.
|
We zullen ook een proc bestandssysteem (een virtuele interface met de kernel)
mounten op /proc. Maar eerst moeten we onze bestanden op
de partities plaatsen.
Ga verder met Installeren van de Gentoo
Installatie bestanden.
5. Installatie van de Gentoo Installatie bestanden
5.a. Een stage tarball installeren
De datum/tijd goed zetten
Voordat u verder gaat moet u de datum/tijd controleren en goed zetten. Een
verkeerd ingestelde klok kan leiden tot vreemde resultaten in de toekomst!
Om de datum/tijd te controleren, type date:
Codevoorbeeld 1.1: De datum/tijd controleren |
# date
Fri Mar 29 16:21:18 UTC 2005
|
Als de weergegeven datum/tijd verkeerd is, update hem door middel van date
MMDDuummJJJJ syntax (Maand, Dag, uur, minuten
en Jaar). De tijdzone stellen we pas later in, dus op dit moment kunt u
het beste UTC tijd gebruiken. Om bijvoorbeeld de klok op 16:21 op 29 maart
2005 te zetten, gebruikt ui:
Codevoorbeeld 1.2: De UTC datum/tijd goed zetten |
# date 032916212005
|
Uw keuze maken
De volgende stap die u moet zetten is het installeren van de stage3
tarball op uw systeem. U heeft de keuze om de benodigde tarball van het
internet te downloaden of, wanner u de Gentoo Universele Installatie CDs
gebruikt, van de CD te kopiëren. Als u de Universele CD hebt en de stage die u
wilt staat op de CD, is downloaden van het internet een verspilling van bandbreedte
omdat de stage bestanden toch hetzelfde zijn. In de meeste gevallen kan het
commando uname -m worden gebruikt bij het bepalen van het te downloaden
stage bestand.
5.b. Standaard: Een Stage van het internet gebruiken
Downloaden van de stage tarball
Ga naar het Gentoo mountpunt waar uw bestandssysteem is aangekoppeld
(zeer waarschijnlijk /mnt/gentoo):
Codevoorbeeld 2.1: Naar het Gentoo mountpunt gaan |
# cd /mnt/gentoo
|
Afhankelijk van jouw installatie medium zijn er een aantal tools beschikbaar om
een stage te downloaden. Wanner u links tot uw beschikking heeft, kunt u
direct naar de Gentoo mirrorlijst surfen
en een mirror zoeken die dicht bij u is.
Indien u links niet to uw beschikking heeft, dan zou u wel lynx
moeten hebben. Indien u via een proxy moet, exporteer dan de http_proxy
en ftp_proxy variabelen:
Codevoorbeeld 2.2: Uw proxy instellen voor lynx |
# export http_proxy="http://proxy.server.com:port"
# export ftp_proxy="http://proxy.server.com:port"
|
We nemen nu aan dat u links tot uw beschikking hebt.
Zoek de releases map, gevolgd door uw architectuur
(x86/ bijvoorbeeld) en de Gentoo versie (2006.1/) en
tot slot de stages/ map. Daar zou u alle voor jouw architecuur
beschikbare stage bestanden moeten zien (soms zitten zo nog in submappen voor
individuele subarchitecturen). Kies er een en druk op D om te downloaden.
Als het bestand binnen is, drukt u op Q om de browser af te sluiten.
Codevoorbeeld 2.3: Naar de mirror lijst surfen met links |
# links http://www.gentoo.org/main/en/mirrors.xml
# links -http-proxy proxy.server.com:8080 http://www.gentoo.org/main/en/mirrors.xml
|
Check nog een keer of u een stage3 tarball heeft - installaties met een
stage1 of stage2 tarball worden niet meer ondersteund.
Wanner u de integriteit van een gedownloade stage tarball wilt controleren,
kunt u md5sum gebruiken en vergelijken met de MD5 checksum die jouw
mirror levert. Om bijvoorbeeld de correctheid van de x86 stage tarball te
controleren:
Codevoorbeeld 2.4: Voorbeeld controle van een stage tarball |
# md5sum -c stage3-x86-2006.1.tar.bz2.DIGESTS
stage3-x86-2006.1.tar.bz2: OK
|
De stage tarball uitpakken
Belangrijk:
Als je gebruikt maakt van een x86, en gebruik maakt van de
InstallatieLiveCD, zul je de stages niet op de cd staan hebben. Je zult de
instructies moeten volgen voor Een stage Tarball van het
Internet gebruiken.
|
Pak de door u gedownloade stage uit op uw systeem. Wij gebruiken GNU's
tar om verder te gaan, omdat het de simpelste methode is:
Codevoorbeeld 2.5: De stage uitpakken |
# tar xvjpf stage3-*.tar.bz2
|
Zorg dat u dezelfde opties (xvjpf) gebruikt. De x staat voor
Extract (uitpakken), de <v> voor Verbose om te zien wat er
gebeurt tijdens het uitpakken (oke, deze is optioneel), de j voor
Decompress met bzip2, de p voor Preserve permissions
(behoud rechten) en de f om duidelijk te maken dat we een bestand willen
uitpakken en niet standaard input.
Nota:
De Installatie CDs en boot images van sommige architecturen (MIPS bijvoorbeeld)
steunen op de in de BusyBox ingebouwde tar welke op dit moment de
-v optie niet ondersteunt. Gebruik dan alleen xjpf als opties.
|
Nu de stage geïnstalleerd is, gaat u verder met Portage installeren
5.c. Alternatief: Een Stage van de Installatie CD gebruiken
De stage tarball uitpakken
Belangrijk:
Wanneer u op een x86 systeem de Installatie LiveCD gebruikt, zijn de stages
niet terug te vinden op de CD. U kunt dan de instructies voor een stage tarball van het internet door nemen.
|
De stages op de CD bevinden zich in de /mnt/cdrom/stages map. Om
een lijst te zien van alle beschikbare stages gebruikt u ls:
Codevoorbeeld 3.1: Alle beschikbare stages zien |
# ls /mnt/cdrom/stages
|
Als het systeem een foutmelding geeft dient u mogelijk eerst de CD te mounten:
Codevoorbeeld 3.2: De CD mounten |
# ls /mnt/cdrom/stages
ls: /mnt/cdrom/stages: No such file or directory
# mount /dev/cdroms/cdrom0 /mnt/cdrom
# ls /mnt/cdrom/stages
|
Ga nu naar uw Gentoo mountpunt (meestal /mnt/gentoo):
Codevoorbeeld 3.3: naar de map /mnt/gentoo gaan |
# cd /mnt/gentoo
|
We zullen nu de stage tarball van jouw keuze uitpakken. We zullen hierbij GNU's
tar gebruiken. Zorg dat u dezelfde opties (xvjpf) gebruikt!
Het v argument is optioneel en wordt niet ondersteund in sommige
tar versies. In het volgende voorbeeld zullen we de stage tarball
stage3-<subarch>-2006.1.tar.bz2 uitpakken.
Zorg dat u de bestandsnaam vervangt door uw stage.
Codevoorbeeld 3.4: De stage tarball uitpakken |
# tar xvjpf /mnt/cdrom/stages/stage3-<subarch>-2006.1.tar.bz2
|
Nu de stage geïnstalleerd is, ga verder met Portage installeren
5.d. Portage installeren
Een Portage snapshot uitpakken
Nu kunt u een Portage snapshot installeren, een verzameling van bestanden die
Portage vertellen welke software pakketten u kunt installeren, welke profielen
beschikbaar zijn, etc.
Download en installeer een Portage snapshot
Ga naar het mountpunt waar u het bestandssysteem hebt gemount (zeer
waarschijnlijk /mnt/gentoo):
Codevoorbeeld 4.1: Naar het Gentoo mountpunt |
# cd /mnt/gentoo
|
Start links (of lynx) en ga naar onze Gentoo mirror lijst. Kies een mirror dicht bij
u en open de snapshots/ map. Download daar de laatste Portage
snapshot (portage-latest.tar.bz2) door hem te selecteren en op
D te drukken.
Codevoorbeeld 4.2: Naar de Gentoo mirrorlijst toe gaan |
# links http://www.gentoo.org/main/en/mirrors.xml
|
Sluit nu uw browser af door op Q te drukken. U heeft nu een Portage
snapshot opgeslagen in /mnt/gentoo.
Indien u wilt checken of het bestand dat u hebt gedownload gelijk is aan het
origineel, dan kunt u dat doen met md5sum door het resultaat daarvan te
vergelijken met het resultaat dat u op de mirror waar u van download kunt vinden.
In de volgende stap zullen we de Portage snapshot uitpakken op uw systeem. Zorg
dat u het exacte commando gebruikt; de laatste optie is een hoofdletter C,
geen c.
Codevoorbeeld 4.3: Uitpakken van het Portage snapshot |
# tar xvjf /mnt/gentoo/portage-latest.tar.bz2 -C /mnt/gentoo/usr
|
5.e. De compilatie opties configuren
Introductie
Om Gentoo te optimaliseren kunt u een aantal variabelen instellen die invloed
hebben op het gedrag van Portage. Al deze variabelen kunnen worden ingesteld
als omgevingsvariabele (met behulp van export), maar dat is niet
permanent. Om deze instellingen te behouden biedt Portage /etc/make.conf
, een configuratie bestand voor Portage. Het is dit bestand die we nu
gaan bewerken.
Nota:
Een lijst met commentaar van alle beschikbare variabelen kan worden gevonden in
/mnt/gentoo/etc/make.conf.example. Voor een succesvolle Gentoo
installatie moet u alleen de variabelen instellen die hieronder worden genoemd.
|
Start uw favoriete editor (in deze handleiding gebruiken we nano) zodat
we de optimalisatie variabelen die hierna worden besproken kunnen aanpassen.
Codevoorbeeld 5.1: /etc/make.conf openen |
# nano -w /mnt/gentoo/etc/make.conf
|
Zoals u waarschijnlijk hebt gemerkt is make.conf.example in een
algemene manier gestructureerd: commentaar regels beginnen met een "#", andere
regels bepalen variabelen door middel van de VARIABELE="inhoud" syntax.
Het make.conf bestand gebruikt dezelfde syntax. Enkele van die
variabele worden nu besproken.
CHOST
De CHOST variabele bepaalt voor welke architectuur wordt gecompileerd.
Deze variabele is al juist ingesteld. Pas deze niet aan
aangezien dit uw besturingssysteem kan beschadigen. Als de CHOST
variabele verkeerd lijkt, kan het zijn dat u de verkeerde stage3 gebruikt.
CFLAGS and CXXFLAGS
De CFLAGS en respectievelijk CXXFLAGS variabelen bepalen de
optimalisatie vlaggen voor de gcc C en respectievelijk C++ compiler.
Hoewel we deze in het algemeen hier bepalen, zult u alleen de maximale
prestaties krijgen wanneer u deze vlaggen apart voor elk programma bepaalt. De
reden hiervoor is dat elk programma anders is.
In make.conf kunt u die optimalisatie vlaggen plaatsen waarbij u
denkt dat uw systeem over het algemeen het meeste baat heeft.
Plaats geen experimentele instellingen in deze variabele; te veel optimalisaties
kunnen programma's zich slecht laten gedragen (crash, of erger, slecht
functioneren).
We zullen niet alle mogelijke optimalisatie opties bespreken. Als u ze allemaal
wilt weten, lees de GNU Online
Manual(s) (Engelstalig) of de gcc info pagina (info gcc --
werkt alleen op een werkend Linux systeem). Het make.conf.example
bestand bevat ook een boel voorbeelden en informatie; vergeet dit niet ook te
lezen.
De eerste instelling is de -march= vlag welke de naam van de doel
architectuur bepaalt. Mogelijke opties worden beschreven in het
make.conf.example bestand (als commentaar). Voor bijvoorbeeld de
x86 Athlon XP architectuur:
Codevoorbeeld 5.2: De GCC march instelling |
-march=athlon-xp
|
Een tweede is de -O vlag (dat is een hoofdletter O, geen nul) welke
de gcc optimalisatie klasse vlag bepaalt. Mogelijke klassen zijn
s (voor bestandsgrootte-optimalisatie (in Engels size)), 0 (nul
- geen optimalisaties), 1, 2 of 3 voor
snelheids-optimalisatie vlaggen (iedere klasse heeft dezelfde vlaggen als de
voorgaande, plus wat extras). Bijvoorbeeld een klasse-2 optimalisatie:
Codevoorbeeld 5.3: De GCC O instelling |
-O2
|
Een andere populaire optimalisatie vlag is -pipe (gebruikt pipes in
plaats van tijdelijke bestanden voor de communicatie tussen de verschillen
stages van het compileren).
Let er op dat het gebruik van -fomit-frame-pointer (welke de frame
pointer niet in een register zet voor functies die dat niet nodig hebben)
serieuze gevolgen kan hebben voor het debuggen van applicaties!
Op het moment dat u de CFLAGS en CXXFLAGS bepaalt, zou u enkele
optimalisatie vlaggen kunnen combineren, zoals in het volgende voorbeeld:
Codevoorbeeld 5.4: Defining the CFLAGS and CXXFLAGS variable |
CFLAGS="-march=athlon-xp -pipe -O2"
CXXFLAGS="${CFLAGS}"
|
MAKEOPTS
Met MAKEOPTS kunt u instellen hoeveel parallelle compilaties tegelijk
plaats moeten vinden als u een pakket installeert. Een goede keuze is het
aantal CPU's in het systeem plus een, maar deze vuistregel is niet altijd
perfect.
Codevoorbeeld 5.5: MAKEOPTS voor een algemeen, 1-CPU systeem |
MAKEOPTS="-j2"
|
Klaar, op uw plaatsen, af!
Update uw /mnt/gentoo/etc/make.conf naar wens en sla
hem op (nano gebruikers zouden Ctrl-X moeten gebruiken). U bent
nu klaar om verder te gaan met Installatie van
het Gentoo Basis Systeem.
6. Installatie van het Gentoo Basis Systeem
6.a. Chrooting
Optioneel: Mirrors selecteren
Om broncodes snel te kunnen downloaden, is het aanbevolen om een snelle mirror
te kiezen. Portage zal in het make.conf bestand zoeken naar de
GENTOO_MIRRORS variabele, de mirrors die deze bevat worden gebruikt. U kunt
naar onze mirror lijst surfen en naar een
mirror (of mirrors) die dicht bij u is (omdat deze vaak de snelste zijn),
maar we bieden ook een mooie tool genaamd mirrorselect aan. Deze biedt u
een mooie interface om de juiste mirrors te kiezen.
Codevoorbeeld 1.1: mirrorselect gebruiken voor de GENTOO_MIRRORS variabele |
# mirrorselect -i -o >> /mnt/gentoo/etc/make.conf
|
Waarschuwing:
Kies geen IPv6 mirrors. Onze huidige stages ondersteunen geen IPv6.
|
Een tweede belangrijke instelling, is de SYNC instelling in
make.conf. Deze variabele bevat de rsync server die u wilt
gebruiken wanneer u de Portage boom (de verzameling ebuilds, alle informatie
die Portage nodig heeft om software te downloaden en te installeren) update.
Hoewel u handmatig een SYNC server kunt opgeven, kan mirrorselect dit
veel makkelijker maken:
Codevoorbeeld 1.2: Met behulp van mirrorselect een rsync mirror kiezen |
# mirrorselect -i -r -o >> /mnt/gentoo/etc/make.conf
|
Het is sterk aan te bevelen om na het draaien van mirrorselect alle
instellingen in /mnt/gentoo/etc/make.conf nogmaals te controleren!
DNS Info kopieren
Voor we kunnen chrooten moet eerst de DNS informatie naar
/etc/resolv.conf gekopieerd worden. Dit is nodig omdat de nieuwe
omgeving de nameservers voor uw netwerk moet kennen.
In /etc/resolv.conf staan die nameservers voor uw netwerk.
Codevoorbeeld 1.3: Kopieer de DNS informatie |
# cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf
|
Het /proc en /dev bestandssysteem mounten
Mount het /proc bestandssysteem op /mnt/gentoo/proc
om de installatie toe te staan informatie die de kernel levert te gebruiken,
zelfs in de gechroote omgeving. Mount-bind hierna het /dev
bestandssysteem.
Codevoorbeeld 1.4: /proc en /dev mounten |
# mount -t proc none /mnt/gentoo/proc
# mount -o bind /dev /mnt/gentoo/dev
|
De Nieuwe Omgeving binnen gaan (chrooten)
Nu alle partities aangemaakt zijn en de basis omgeving geïnstalleerd is,
kunnen we naar de nieuwe omgeving overstappen. Dit gebeurt door te
chrooten, dit betekent dat we van de installatie omgeving (Installatie
CD of een ander installatie medium) overstappen naar de geïnstalleerde omgeving
(namelijk uw aangemaakte partities).
Dit chrooten gebeurt in drie stappen. Eerst passen we de root aan van
/ (op het installatie medium) naar /mnt/gentoo (op uw
partities) met chroot. Daarna maken we de nieuwe omgeving aan met
env-update welke alle omgevingsvariabelen aanmaakt. Als laatste laden
we die variabelen in het geheugen met source.
Codevoorbeeld 1.5: De nieuwe omgeving binnen chrooten |
# chroot /mnt/gentoo /bin/bash
# env-update
>> Regenerating /etc/ld.so.cache...
# source /etc/profile
# export PS1="(chroot) $PS1"
|
Proficiat! U bent nu in uw eigen Gentoo Linux omgeving. Uiteraard bent u nog
niet klaar, daarom wachten er nog een aantal secties op u :-)
6.b. Configureren van Portage
Updaten van de Portage tree
U dient nu de Portage tree to updaten naar de meest recente versie.
emerge --sync doet dit voor u.
Codevoorbeeld 2.1: Updaten van de Portage tree |
# emerge --sync
.
emerge --sync --quiet
|
Als u achter een firewall zit die rsync verkeer blokkeert, kunt u
emerge-webrsync gebruiken om een portage snapshot te downloaden.
Als er een waarschuwing komt dat er een update is voor Portage kunt u dit
veilig negeren. We zullen Portage later tijdens de installatie wel updaten.
Het juiste profiel kiezen
Om te beginnen, is een kleine definitie op zijn plaats.
Een profiel is een bouwsteen voor ieder Gentoo systeem. Niet alleen bepaalt het
de standaard waarden voor CHOST, CFLAGS en andere belangrijke variabelen, het
beperkt het systeem ook tot bepaalde versies van pakketten. Dit wordt allemaal
onderhouden door de Gentoo ontwikkelaars.
Tot nu toe werd zo'n profiel nauwelijks aangeraakt door de gebruiker. Echter,
x86, hppa en alpha gebruikers kiezen tussen twee profielen. Een voor een 2.4
kernel en de andere voor een 2.6 kernel. Deze vereiste is ingesteld zodat er
een betere integratie van 2.6 kernels kan plaatsvinden. De ppc en ppc64
architecturen hebben ook verschillende profielen, deze komen later aan bod.
U kunt zien welk profiel u nu gebruikt door het volgende commando uit te
voeren:
Codevoorbeeld 2.2: Uw systeem profiel bekijken |
# ls -FGg /etc/make.profile
lrwxrwxrwx 1 48 Apr 8 18:51 /etc/make.profile -> ../usr/portage/profiles/default-linux/x86/2005.0/
|
Wanneer gebruik maakt van een van de drie bovenstaande architecturen, zal het
standaard profiel een Linux 2.6-gebaseerd systeem. Dit is de aangeraden
standaard, maar u heeft uiteraard de mogelijkheid om een ander profiel te
kiezen
Sommige gebruikers willen mischien een systeem wat gebaseerd is op de het oudere
Linux 2.4-profiel. Indien u hier een goede reden toe hebt, moet u eerst kijken
of zo'n profiel bestaat. Op x86 kunt u dit doen met het volgende commando:
Codevoorbeeld 2.3: Kijken of er een extra profiel bestaat |
# ls -d /usr/portage/profiles/default-linux/x86/no-nptl/2.4
/usr/portage/profiles/default-linux/x86/no-nptl/2.4
|
Het bovenstaande voorbeeld laat zien dat het extra 2.4 profiel bestaat (er
wordt niet geklaagd dat er een bestand of map mist). Het is aanbevolen om het
standaard profiel te houden, maar wanneer u wilt wisselen, kunt u dat op
volgende manier doen:
Codevoorbeeld 2.4: Op een 2.4 profiel overstappen |
# ln -snf /usr/portage/profiles/default-linux/x86/no-nptl/2.4 /etc/make.profile
# ls -FGg /etc/make.profile/
total 12
-rw-r--r-- 1 939 Dec 10 14:06 packages
-rw-r--r-- 1 347 Dec 3 2004 parent
-rw-r--r-- 1 573 Dec 3 2004 virtuals
|
Voor ppc zijn er enkele nieuwe profielen beschikbaar sinds 2006.0.
Codevoorbeeld 2.5: PPC profielen |
# ln -snf /usr/portage/profiles/default-linux/ppc/ppc32/2006.0 /etc/make.profile
# ln -snf /usr/portage/profiles/default-linux/ppc/ppc32/2006.0/G3 /etc/make.profile
# ln -snf /usr/portage/profiles/default-linux/ppc/ppc32/2006.0/G3/Pegasos/ /etc/make.profile
# ln -snf /usr/portage/profiles/default-linux/ppc/ppc32/2006.0/G4 /etc/make.profile
# ln -snf /usr/portage/profiles/default-linux/ppc/ppc32/2006.0/G4/Pegasos/ /etc/make.profile
|
Voor ppc64 zijn de onderstaande profielen nieuw sinds 2006.0.
Codevoorbeeld 2.6: PPC64 Profiles |
# ln -snf /usr/portage/profiles/default-linux/ppc/ppc64/2006.0/64bit-userland /etc/make.profile
# ln -snf /usr/portage/profiles/default-linux/ppc/ppc64/2006.0/32bit-userland /etc/make.profile
# ln -snf /usr/portage/profiles/default-linux/ppc/ppc64/2006.0/(gebruikersprofiel)/970 /etc/make.profile
# ln -snf /usr/portage/profiles/default-linux/ppc/ppc64/2006.0/(gebruikersprofiel)/970/pmac /etc/make.profile
# ln -snf /usr/portage/profiles/default-linux/ppc/ppc64/2006.0/(gebruikersprofiel)/power3 /etc/make.profile
# ln -snf /usr/portage/profiles/default-linux/ppc/ppc64/2006.0/(gebruikersprofiel)/power4 /etc/make.profile
# ln -snf /usr/portage/profiles/default-linux/ppc/ppc64/2006.0/(gebruikersprofiel)/power5 /etc/make.profile
|
De USE variabelen configureren
USE is een van de meest krachtige variabelen die Gentoo biedt.
Verschillende programma's kunnen met optionele ondersteuningen voor bepaalde
zaken gecompileerd worden. Bijvoorbeeld, sommigen met gtk- of qt-ondersteuning.
Anderen met of zonder SSL ondersteuning. Sommige programma's kunnen zelfs met
framebuffer ondersteuning (svgalib) in plaats van X11 support (X-server)
gecompileerd worden.
De meeste distributies compileren hun pakketten met zoveel mogelijke
ondersteuningen, wat zorgt voor grotere programma's, lange laadtijden en meer
afhankelijkheden. Bij Gentoo bent u vrij alleen de opties die u zelf wilt te
gebruiken. Dit is waar USE om de hoek komt kijken.
In de USE variabele definieert u sleutelwoorden die aan compile-opties
gelinked zijn. Bijvoorbeeld, ssl zal ssl-support compileren bij alle
programma's die dat ondersteunen. -X verwijderd X-server support (let op
de min). gnome gtk -kde -qt zal uw programma's met gnome (en gtk)
support, maar niet met kde (en qt) support compileren, zodat uw systeem
volledig is getweaked voor GNOME.
De standaard USE instellingen staan in de make.defaults
bestanden van uw profiel. U zult make.defaults bestanden vinden
in de map waarnaar /etc/profile verwijst en tevens in alle
bovenliggende mappen. De standaard USE instelling is de som van alle
USE instellingen in alle make.defaults bestanden. Wat u
zelf in /etc/make.conf plaatst, wordt berekend tegen de standaard
instellingen. Wanner u iets toevoegt aan USE wordt het in de standaard
opgenomen. En als u iets verwijdert uit USE wordt dit uit de standaard
weggehaald (indien het er in zat). Pas nooit iets aan binnen
/etc/make.profile; dit bestand wordt overschreven bij een een
update van Portage!
Een volledige beschrijving van USE is te vinden in het tweede deel van
het Gentoo Handboek, USE vlaggen. Alle
beschikbare USE vlaggen zijn te vinden op het systeem onder
/usr/portage/profiles/use.desc.
Codevoorbeeld 2.7: Alle beschikbare USE vlaggen bekijken |
# less /usr/portage/profiles/use.desc
|
Als voorbeeld USE instelling: een KDE-gebaseerd systeem met DVD, ALSA
en CD Recording support:
Codevoorbeeld 2.8: /etc/make.conf openen |
# nano -w /etc/make.conf
|
Codevoorbeeld 2.9: USE instelling |
USE="-gtk -gnome qt kde dvd alsa cdr"
|
Optional: GLIBC Locales
U zult waarschijnlijk slechts één of misschien twee locales op uw systeem
gebruiken. Wanner u glibc compileert zal echter een volledige set van
alle beschikbare locales gemaakt worden. U kunt userlocales als USE vlag
instellen en alleen de locales die u nodig heeft in
/etc/locales.build plaatsen. Doe dit alleen als u weet welke
locales u wilt.
Codevoorbeeld 2.10: Activeren van de userlocales USE vlag specifiek voor glibc |
# mkdir -p /etc/portage
# echo "sys-libs/glibc userlocales" >> /etc/portage/package.use
|
kies nu de locales die u nodig heeft:
Codevoorbeeld 2.11: /etc/locales.build Openen |
# nano -w /etc/locales.build
|
De volgende locales zijn een voorbeeld om Engelse (Verenigde Staten) en Duitse
(Duitsland) locales te krijgen met bijpassende karaktersets (zoals UTF-8).
Codevoorbeeld 2.12: Uw locales kiezen |
en_US/ISO-8859-1
en_US.UTF-8/UTF-8
de_DE/ISO-8859-1
de_DE@euro/ISO-8859-15
|
Ga nu verder met de Kernel
configureren.
7. Configuratie van de Kernel
7.a. Tijdzone
Allereerst moet de tijdzone ingesteld, zodat het systeem weet waar het zich
bevindt. Zoek naar uw tijdzone in /usr/share/zoneinfo en kopieer
deze dan naar /etc/localtime. Gebruik niet de
/usr/share/zoneinfo/Etc/GMT* tijdzones, aangezien de gebruikte
namen niet overeen komen met de zones. GMT-8 is bijvoorbeeld
GMT+8.
Codevoorbeeld 1.1: De tijdzone instellen |
# ls /usr/share/zoneinfo
# cp /usr/share/zoneinfo/Europe/Amsterdam /etc/localtime
|
7.b. De sources installeren
Een kernel kiezen
De basis waarop alle distributies gebouwd zijn, is de Linux kernel. Het is de
laag tussen gebruikers programma's en uw hardware. Gentoo biedt zijn
gebruikers verschillende kernelsources. Een volledige lijst met beschrijvingen
is beschikbaar in de Gentoo Kernel
Guide.
Voor x86-gebaseerde systemen hebben we, onder andere, gentoo-sources
(een kernel gepatched met snelheidsverhogende extra's).
Kies een kernel naar keuze en installeer deze met emerge.
Codevoorbeeld 2.1: Een kernel source installeren |
# emerge gentoo-sources
|
Wanneer u een kijkje neemt in /usr/src zou u een symlink genaamd
linux moeten zien. Deze verwijst naar uw kernel source. We zullen
aannemen dat de geïnstalleerde kernelsource gentoo-sources-2.6.17-r5 is. Uw versie kan echter een andere zijn!
Codevoorbeeld 2.2: De kernel source symlink bekijken |
# ls -l /usr/src/linux
+lrwxrwxrwx 1 root root 12 Oct 13 11:04 /usr/src/linux -> linux-2.6.17-r5
|
Nu is het tijd om uw kernel te configureren en te compileren. U kunt
genkernel hiervoor gebruiken. Deze zal een algemene kernel aanmaken
zoals ook LiveCD gebruikt. We zullen eerst de handmatige manier
uitleggen omdat dit de beste manier is om uw systeem te optimaliseren.
Als u de kernel handmatig wilt configureren, gaat u verder met Standaard: handmatige configuratie. Als u genkernel
wilt gebruiken, dan kunt u verder lezen in Alternatief:
genkernel gebruiken.
7.c. Standaard: handmatige configuratie
Introductie
Handmatig een kernel configureren wordt vaak gezien als het moeilijkste dat
een Linux gebruiker ooit uit moet voeren. Niets is minder waar -- na een paar
kernels configureren herinnert u zich niet eens meer dat het ooit moeilijk was
;)
Hoewel, een ding is is waar: u moet uw systeem kennen voordat u de
kernel handmatig gaat configureren. De meeste informatie kunt u vergaren door
pciutils te emergen (emerge pciutils), welke lspci bevat. U kunt
nu lspci binnen de gechroote omgeving gebruiken. U kunt zonder problemen
alle pcilib waarschuwingen negeren (zoals pcilib: cannot open
/sys/bus/pci/devices) die lspci genereert. U kunt ook lspci
vanuit een niet-gechroote omgeving draaien. De resultaten zullen gelijk
zijn. U kunt verder lsmod draaien om te zien welke kernelmodules de LiveCD
gebruikt (het geeft een goede hint wat u aan kunt zetten).
Ga nu naar de kernel sourcemap en voer make menuconfig uit. Dit zal een
configuratiemenu openen.
Codevoorbeeld 3.1: menuconfig starten |
# cd /usr/src/linux
# make menuconfig
|
U zult worden begroet door een serie configuratiesecties. We zullen eerst
enkele opties geven die u zeker aan moet zetten (anders zal Gentoo niet
functioneren, of niet goed zonder enkele extra trucs).
Vereiste opties aan zetten
Om te beginnen activeert u het gebruik van ontwikkelings- en experimentele
code/drivers. Je hebt dit nodig, anders zullen enkele belangrijke codes/drivers
niet te voorschijn komen:
Codevoorbeeld 3.2: Experimentele code/drivers activeren |
Code maturity level options --->
[*] Prompt for development and/or incomplete code/drivers
General setup --->
[*] Support for hot-pluggable devices
|
Zorg dat u iedere driver die essentieel is voor het opstarten van uw systeem
(zoals SCSI controller, ...) in de kernel, en dus niet als module, compileert.
Anders zal uw systeem niet volledig opstarten.
Selecteer nu de juiste processorfamilie:
Codevoorbeeld 3.3: De correcte processor familie kiezen |
Processor type and features --->
(Athlon/Duron/K7) Processor family
|
Ga nu naar File Systems en kies ondersteuning voor het bestandssysteem
dat u gebruikt. Compileer deze niet als modules, anders zal het Gentoo
systeem zal de rootpartitie niet kunnen mounten. Kies ook Virtual memory
en /proc file system.
Codevoorbeeld 3.4: Benodigde bestandssystemen kiezen |
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
|
Vergeet niet voor uw schijven DMA aan te zetten:
Codevoorbeeld 3.5: DMA aanzetten |
Device Drivers --->
ATA/ATAPI/MFM/RLL support --->
[*] Generic PCI bus-master DMA support
|
Indien u PPPoE gebruikt om verbinding te maken met het internet of als u een
inbelmodem gebruikt, dan dient u de volgende opties aan te zetten in de kernel:
Codevoorbeeld 3.6: 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
|
De twee compressie-opties zullen niets kapot maken, maar ze zijn niet nodig,
net zoals de optie PPP over Ethernet die alleen wordt gebruikt door
ppp als die wordt geconfigureerd om PPPoE in kernelmodus te
draaien.
Als hem nodig heeft, moet u niet vergeten de ondersteuning voor uw netwerkkaart toe
te voegen aan uw kernel.
Als u een Intel CPU met HyperThreading (tm) ondersteuning hebt, of een
multi-CPU systeem, dient u ook "Symmetric multi-processing support" toe te
voegen:
Codevoorbeeld 3.7: SMP ondersteuning inschakelen |
Processor type and features --->
[*] Symmetric multi-processing support
|
Nota:
In multi-core systemen telt iedere kern (core) als één processor.
|
Als u USB-invoerapparaten gebruikt (zoals toetsenbord of muis),
vergeet dan niet die ook aan te zetten:
Codevoorbeeld 3.8: USB ondersteuning voor Input Devices |
USB Support --->
<*> USB Human Interface Device (full HID) support
|
Als u PCMCIA wilt gebruiken met uw laptop vergeet dan niet naast PCMCIA
ondersteuning ook ondersteuning voor de in uw systeem aanwezige PCMCIA card
bridge te kiezen.
Codevoorbeeld 3.9: PCMCIA ondersteuning aanzetten |
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)
|
Als u klaar bent met het configureren van de kernel, gaat u verder met Compileren en installeren.
Compileren en installeren
Nu de kernel is geconfigureerd is het tijd om te compileren en installeren.
Sluit de configuratie af en start het compilatie proces:
Codevoorbeeld 3.10: De kernel compileren |
# make && make modules_install
|
Als uw kernel klaar is met compileren, kopieert u de kernel-image naar
/boot. Gebruik een naam die u toepasselijk vindt voor uw
kernel keuze en onthoudt die, want u zult deze bij het configureren van uw
bootlader nodig hebben. Vergeet niet kernel-2.6.17-gentoo-r5
te vervangen door de naam en versie van uw kernel.
Codevoorbeeld 3.11: Het installeren van de kernel |
# cp arch/i386/boot/bzImage /boot/kernel-2.6.17-gentoo-r5
|
Nu kunt u verder gaan met Kernel Modules.
7.d. Alternatief: genkernel gebruiken
Als u dit hoofdstuk leest, heeft u ervoor gekozen om het genkernel script
te geruiken voor de configuratie van uw kernel.
Nu de kernel source is geïnstalleerd, is het tijd om uw kernel te
compileren met behulp van ons genkernel script. Deze bouwt automatisch
een kernel voor u. genkernel werkt door een kernel bijna identiek te
configureren aan de manier waarop onze Installatie CD kernel is geconfigureerd.
Dit betekent dat wanneer u genkernel gebruikt om uw kernel te bouwen,
uw systeem over het algemeen alle apparatuur tijdens het opstarten zal
detecteren, net zoals onze Installatie CD dat doet. Omdat genkernel geen
handmatige configuratie vereist, is het de ideale oplossing voor die gebruikers
die zich niet prettig voelen bij het compileren van hun eigen kernels.
Laten we nu eens kijken hoe we genkernel gebruiken. Emerge genkernel eerst:
Codevoorbeeld 4.1: Genkernel emergen |
# emerge genkernel
|
Kopieer vervolgens de kernel configuratie van de installatie CD naar de
locatie waar genkernel zoekt naar de standaard kernel configuratie.
Codevoorbeeld 4.2: De Installatie CD kernel config kopieren |
# zcat /proc/config.gz > /usr/share/genkernel/x86/kernel-config-2.6
|
Compileer nu de kernel sources door genkernel all te draaien. Pas echter
op, omdat genkernel een kernel compileert die bijna alle apparatuur
ondersteunt, kan deze compilatie aardig wat tijd in beslag nemen!
Let op, als uw bootpartitie geen ext2 of ext3 als bestandssysteem gebruikt,
moet u mogelijk handmatig deze ondersteuning in de kernel (dus
niet als een module) moet toevoegen. Gebruik hiervoor genkernel
--menuconfig all en voeg de ondersteuning toe. Gebruikers van EVMS2 of
LVM2 moeten ook --evms2 of --lvm2 als argument toevoegen.
Codevoorbeeld 4.3: Genkernel draaien |
# genkernel all
|
Als genkernel eenmaal klaar is, zal een kernel, een volledige set met
modules en een start-rootschijf (initrd) worden gemaakt. We gebruiken
de kernel en initrd wanneer we de bootlader zullen configureren, verderop
in dit document. Noteer de namen van de kernel en initrd omdat u deze nodig
zult hebben bij de bootlader configuratie. De initrd zal direct worden gestart
na het opstarten om apparatuur autodetectie uit te voeren (net zoals op de
Installatie CD) voordat uw "echte" systeem opstart.
Codevoorbeeld 4.4: De gecreerde kernel image naam en initrd controleren |
# ls /boot/kernel* /boot/initramfs*
|
7.e. Kernel Modules
De modules configureren
U moet nu een lijst maken van alle modules die u automatisch wilt laden, doe
dit in /etc/modules.autoload.d/kernel-2.6. Je kunt indien u dit
wilt ook extra opties aan de
modules meegeven.
Om alle beschikbare modules te zien, draait u het volgende find commando.
Vergeet niet om "<kernel-version">> te vervangen met de versie van de door
u zojuist gecompileerde kernel.
Codevoorbeeld 5.1: Alle beschikbare modules vinden |
# find /lib/modules/<kernel-version>/ -type f -iname '*.o' -or -iname '*.ko'
|
Om bijvoorbeeld automatisch de 3x59x.o module te laden, wijzigt u het
kernel-2.6-bestand en zet er de modulenaam in.
Codevoorbeeld 5.2: /etc/modules.autoload.d/kernel-2.6 bewerken |
# nano -w /etc/modules.autoload.d/kernel-2.6
|
Codevoorbeeld 5.3: /etc/modules.autoload.d/kernel-2.6 |
3c59x
|
Ga verder met Configuratie van het Systeem.
8. Configuratie van het Systeem
8.a. Bestandssysteem informatie
Wat is fstab?
Onder linux dienen alle partities die in gebruik zijn door het systeem in
/etc/fstab aanwezig te zijn. Dit bestand bevat alle mountpoints van
de betreffende partities (waar ze tevoorschijn komen in de bestandsstructuur),
hoe ze gemount moeten worden en met welke speciale opties (automatisch of niet,
of gebruikers ze kunnen mounten of niet, etc.).
/etc/fstab aanmaken
/etc/fstab maakt gebruik van een speciale syntax. Elke regel
bestaat uit zes velden, gescheiden door whitespaces (spaties, tabs of een mix
daarvan). Elk veld heeft zijn eigen betekenis:
-
Het eerste veld geeft de partitie aan (het pad naar het apparaat
bestand)
-
Het tweede veld geeft het mountpoint weer, waar de partitie gemount
moet worden.
-
Het derde veld geeft aan welk bestandssysteem de partitie gebruikt
-
Het vierde veld geeft aan welke mount opties gebruikt moeten worden
door mount wanneer het de betreffende partitie wil mounten. Omdat elk
bestandssysteem zijn eigen opties heeft moedigen we u aan de manpage van
mount te lezen (man mount) voor complete lijst van opties. Meerdere
opties worden door comma's van elkaar gescheiden.
-
Het vijfde veld wordt gebruikt door dump om vast te stellen welke
partitie gedumped moet worden. U kunt deze over het algemeen op 0
(nul) laten staan.
-
Het zesde veld wordt gebruikt door fsck om vast te stellen in welke
volgorde de bestandssystemen moeten worden gecontroleerd in het geval dat het
systeem niet goed afgesloten is. Het root bestandssysteem moet 1
hebben, de rest moet 2 hebben (of 0 als een controle niet nodig
is).
De door Gentoo standaard meegeleverde /etc/fstab is geen goed
fstab bestand, dus start u nano (of uw favoriete editer) om uw eigen
/etc/fstab aan te maken:
Codevoorbeeld 1.1: /etc/fstab openen |
# nano -w /etc/fstab
|
Laten we eens kijken naar de opties voor de /boot partitie. Dit is
slechts een voorbeeld, dus als uw architectuur geen /boot partitie
nodig heeft (bijvoorbeeld bij Apple PPC apparaten), kopieer dit dan niet
een op een.
In onze standaard x86 partitie indeling is /boot de partitie
/dev/hda1, met ext2 als bestandssysteem.
Deze moet worden gecontroleerd tijdens het opstarten, dus we schrijven op:
Codevoorbeeld 1.2: Een voorbeeld /boot regel voor /etc/fstab |
/dev/hda1 /boot ext2 defaults 1 2
|
Sommige gebruiken willen niet dat hun /boot partitie automatisch
gemount wordt, omdat dit de veiligheid van het systeem vergroot. Deze mensen
kunnen defaults vervangen met noauto. Dit betekent dat u
eerst handmatig moet mounten voordat u de partitie kunt gebruiken.
Nu, om de prestaties te verbeteren, zullen de meeste gebruikers noatime
als optie willen toevoegen. Dit resulteert in een sneller systeem omdat de
toegangstijden niet geregistreerd worden (dit heeft u over het algemeen niet
nodig):
Codevoorbeeld 1.3: Een verbeterde /boot regel voor /etc/fstab |
/dev/hda1 /boot ext2 defaults,noatime 1 2
|
Als we zo verder gaan eindigen we met de volgende drie regels (voor
/boot, / en de swap partitie):
Codevoorbeeld 1.4: Drie /etc/fstab regels |
/dev/hda1 /boot ext2 defaults,noatime 1 2
/dev/hda2 none swap sw 0 0
/dev/hda3 / ext3 noatime 0 1
|
Om het af te maken, behoort u een regel te hebben voor /proc,
tmpfs (vereist) en voor uw CD-ROM speler (en natuurlijk, voor eventuele
andere partities en schijven):
Codevoorbeeld 1.5: Een compleet /etc/fstab voorbeeld |
/dev/hda1 /boot ext2 defaults,noatime 1 2
/dev/hda2 none swap sw 0 0
/dev/hda3 / ext3 noatime 0 1
none /proc proc defaults 0 0
none /dev/shm tmpfs nodev,nosuid,noexec 0 0
/dev/cdroms/cdrom0 /mnt/cdrom auto noauto,user 0 0
|
auto zorgt ervoor dat mount probeert het bestandssysteem te raden
(aangeraden voor verwisselbare media, omdat deze gemaakt kunnen worden met een
van de vele bestandssystemen) en user maakt het mogelijk voor niet-root
gebruikers om de CD te mounten.
U kunt het bovenstaande voorbeeld gebruiken om uw eigen /etc/fstab
in te vullen. Als u SPARC gebruiker bent, dan dient u de volgende
regel aan uw /etc/fstab toe te voegen:
Codevoorbeeld 1.6: Het openprom bestandssysteem toevoegen aan /etc/fstab |
none /proc/openprom openpromfs defaults 0 0
|
Controleer uw /etc/fstab nog eens goed, sla hem daarna op en sluit
de editor af.
8.b. Netwerk Informatie
Hostname, Domainname etc.
Een van die moeilijke keuzes die de gebruiker moet maken is het kiezen van een
naam voor zijn/haar PC. Dit lijkt makkelijk, maar er zijn veel gebruikers
die er moeite mee hebben om een geschikte naam voor hun Linux-pc te verzinnen.
Om de beslissing wat makkelijker te maken, u kunt de naam achteraf altijd nog
aanpassen. Wat ons betreft noemt u het systeem tux en uw domain
homenetwork.
Wij gebruiken deze namen in de komende voorbeelden. Allereerst zetten we onze
hostname:
Codevoorbeeld 2.1: De hostname instellen |
# nano -w /etc/conf.d/hostname
HOSTNAME="tux"
|
Daarna stelt u de domeinnaam in:
Codevoorbeeld 2.2: De domeinnaam instellen |
# nano -w /etc/conf.d/domainname
DNSDOMAIN="homenetwork"
|
Als u een NIS domein heeft (als u niet weet wat dit is, dan heeft het ook
niet waarschijnlijk) dient u het volgende ook te doen:
Codevoorbeeld 2.3: De NIS domeinnaam instellen |
# nano -w /etc/conf.d/domainname
NISDOMAIN="my-nisdomain"
|
Uw Netwerk Configureren
Voordat u een "Hé dit heb ik al gedaan"-gevoel krijgt, moet u beseffen dat u uw
netwerk al aan de praat hebt gekregen voor de installatie. Dit was echter
alleen voor de installatieprocedure. Nu gaan we uw netwerk configureren voor
het permanente gebruik in uw Gentoo systeem.
Nota:
Meer gedetailleerde informatie over netwerken, inclusief de geavanceerde
onderwerpen zoals bonding, bridging, 802.11q VLANs en draadloze netwerken
worden behandeld het hoofdstuk Gentoo netwerk
configuratie.
|
Alle netwerk informatie is verzameld in /etc/conf.d/net. Dit
bestand gebruikt een simpele syntax, het is echter wel even wennen als dit de
eerste keer is. Maar wees niet bang, wij leggen alles uit. En een bestand met
commentaar bij de voorbeelden kunt u vinden in
/etc/conf.d/net.example.
DHCP wordt standaard gebruikt en heeft geen verdere aanpassingen nodig.
Wanneer u uw netwerk wilt instellen omdat u specifieke DHCP opties wilt
gebruiken of omdat u helemaal geen DHCP gebruikt, dan dient u
/etc/conf.d/net te openen met u favoriete
editor (nano wordt in dit voorbeeld gebruikt).
Codevoorbeeld 2.4: /etc/conf.d/net openen om aan te passen |
# nano -w /etc/conf.d/net
|
U ziet nu het volgende bestand:
Codevoorbeeld 2.5: Standaard /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 :]!).
|
Indien u zelf een IP adres, netmask en gateway wilt opgeven, dient u
config_eth0 en routes_eth0 in te stellen:
Codevoorbeeld 2.6: Handmatig de IP informatie voor eth0 instellen |
config_eth0=( "192.168.0.2 netmask 255.255.255.0 brd 192.168.0.255" )
routes_eth0=( "default gw 192.168.0.1" )
|
Om DHCP te gebruiken met bepaalde opties, definieert u config_eth0
en dhcp_eth0:
Codevoorbeeld 2.7: Automatisch verkrijgen van een IP adres voor eth0 |
config_eth0=( "dhcp" )
dhcp_eth0="nodns nontp nonis"
|
Lees /etc/conf.d/net.example voor een lijst met mogelijke
opties.
Indien u meerdere netwerkinterfaces heeft, herhaal dan de bovenstaande stappen
voor config_eth1, config_eth2, etc.
Sla nu uw configuratie op, en verlaat de editor, u kunt nu verder gaan.
Het netwerk automatisch starten tijdens het opstarten
Om uw netwerkkaarten automatisch te activeren tijdens het opstarten dient deze
toe te voegen aan het standaard runlevel. Als u PCMCIA kaarten gebruikt dient u
deze sectie over te slaan, omdat deze kaarten al door het PCMCIA init script
worden gestart.
Codevoorbeeld 2.8: net.eth0 toevoegen aan het standaard runlevel |
# rc-update add net.eth0 default
|
Als u meerdere netwerkkaarten hebt, dient u gepaste net.eth1,
net.eth2 etc. aan te maken. U kunt ln hiervoor gebruiken:
Codevoorbeeld 2.9: Extra initscripts aanmaken |
# cd /etc/init.d
# ln -s net.eth0 net.eth1
# rc-update add net.eth1 default
|
Extra netwerk informatie invoeren
U dient Linux in te lichten over uw netwerk. Dit wordt gedaan in
/etc/hosts en helpt met een vertalen van hostnames naar IP
adressen. U moet hier uw eigen systeem definiëren. U kunt ook nog andere
systemen die op het netwerk zitten definiëren, indien u geen intern DNS
systeem wilt opzetten.
Codevoorbeeld 2.10: /etc/hosts openen |
# nano -w /etc/hosts
|
Codevoorbeeld 2.11: De netwerk informatie invoeren |
127.0.0.1 tux.homenetwork tux localhost
192.168.0.5 jenny.homenetwork jenny
192.168.0.6 benny.homenetwork benny
|
Sla uw wijzigingen op, u kunt nu de editor verlaten en verder gaan.
Wanneer u geen PCMCIA gebruikt, kunt u verder gaan met Systeem Informatie. PCMCIA-gebruikers dienen het volgende
te lezen aangaande PCMCIA.
Optioneel: PCMCIA aan de praat krijgen
Nota:
pcmcia-cs is alleen beschikbaar voor x86, amd64 en ppc platformen.
|
PCMCIA-gebruikers dienen eerst het pcmcia-cs pakket te installeren. Dit
doen ook gebruikers die met een 2.6 kernel werken (zelfs wanneer ze geen
PCMCIA drivers van dit pakket zullen gebruiken). Het USE="-X" is nodig
om te voorkomen dat xorg-x11 op dit moment al gaat installeren:
Codevoorbeeld 2.12: pcmcia-cs installeren |
# USE="-X" emerge pcmcia-cs
|
Wanneer pcmcia-cs is geïnstalleerd, voeg pcmcia dan toe aan het
default runlevel.
Codevoorbeeld 2.13: pcmcia toevoegen aan het default runlevel |
# rc-update add pcmcia default
|
8.c. Systeem informatie
Root wachtwoord (Beheerder)
Eerst stellen we het root wachtwoord in door te typen:
Codevoorbeeld 3.1: Het root wachtwoord instellen |
# passwd
|
Indien u de root de mogelijkheid wilt geven om in te loggen via de seriële
console, voeg dan tts/0 toe aan /etc/securetty:
Codevoorbeeld 3.2: tts/0 aan /etc/securetty toevoegen |
# echo "tts/0" >> /etc/securetty
|
Systeem Informatie
Gentoo maakt gebruik van /etc/rc.conf voor algemene instellingen.
Open /etc/rc.conf en vermaak u met het commentaar in het
betreffende bestand :)
Codevoorbeeld 3.3: /etc/rc.conf openen |
# nano -w /etc/rc.conf
|
Wanneer u klaar bent met het wijzigen van de instellingen in
/etc/rc.conf, sla het bestand dan op en sluit het af.
Zoals u ziet is dit bestand van veel commentaar voorzien dat u helpt met het
instellen van de configuratie variabelen. U kunt hier uw systeem instellen om
unicode te gebruiken, uw standaard editor bepalen en een display manager kiezen
(bijvoorbeeld gdm of kdm).
Gentoo gebruikt /etc/conf.d/keymaps om de toetsenbord indeling
vast te leggen. Wijzig dit bestand om uw toetsenbord juist in te stellen.
Codevoorbeeld 3.4: /etc/conf.d/keymaps openen |
# nano -w /etc/conf.d/keymaps
|
Let goed op bij het in stellen van de KEYMAP variabele. Als u de
verkeerde KEYMAP selecteert, krijgt u vreemde resultaten wanneer u
iets typt.
Nota:
Gebruikers van USB-SPARC systemen en SPARC clonen
dienen wellicht een i386 keymap selecteren (zoals "us") in plaats van
"sunkeymap". PPC gebruikt x86 keymaps voor de meeste systemen.
Gebruikers die een ADB keymap willen opstarten moeten ADB keycode sendings
in de kernel compileren en de keymap in /etc/conf.d/keymaps
instellen op mac/ppc.
|
Wanneer de keymap juist is ingesteld kunt u /etc/conf.d/keymaps
opslaan en afsluiten.
Gentoo gebruikt /etc/conf.d/clock om de opties voor de klok op
te slaan. Pas dit bestand desgewenst aan.
Codevoorbeeld 3.5: /etc/conf.d/clock openen |
# nano -w /etc/conf.d/clock
|
Als uw hardware klok geen UTC gebruikt, dient u CLOCK="local" toe te
voegen in het bestand. Anders zal de klok gaan driften. Ook gaat Windows er
vanuit dat de hardware klok locale tijd gebruikt, dus bij een dualboot systeem
moet u deze variabele ook instellen.
We zijn nu klaar met het configureren van /etc/conf.d/clock,
sla deze op en verlaat de editor.
Als u Gentoo niet op een IBM PPC64 systeem aan het installeren bent,
kunt u verder gaan met De installatie van
enkele belangrijke systeem onderdelen.
De console configureren
Nota:
De volgende sectie is van toepassing op de IBM PPC64 hardware platformen.
|
Wanneer u Gentoo draait op IBM PPC64 hardware en u gebruikt een virtuele
console, dan moet u de juiste regel in /etc/inittab toevoegen
zodat een er login prompt opent op de virtuele console.
Codevoorbeeld 3.6: Hvc of hvsi ondersteuning aan zetten in /etc/inittab |
hvc0:12345:respawn:/sbin/agetty -L 9600 hvc0
hvsi:12345:respawn:/sbin/agetty -L 19200 hvsi0
|
U moet nu verifiëren of de juiste console in de lijst staat in
/etc/securetty/
U kunt nu verder gaan met De installatie van
enkele belangrijke systeem onderdelen.
9. Installatie van enkele belangrijke Systeem onderdelen
9.a. Apparaten beheer
Indien u een 2.4 kernel en Gentoo vanaf stage 3 installeert, zijn er een
aantal dingen die u moet doen. Omdat Gentoo standaard gebruik maakt van
udev en udev niet wordt ondersteund door 2.4 kernels, dient u gebruik te maken
van devfsd en udev te verwijderen.
Codevoorbeeld 1.1: Devfsd installeren |
# emerge --unmerge udev
# emerge devfsd
|
9.b. Systeem Logger
Toen we beschreven wat stage3 was, zeiden we dat het alle benodigde
systeemtools bevatte waarvan we de keus niet aan onze gebruikers kunnen
overlaten. We hebben ook gezegd dat we de andere tools later zouden
installeren. Wel, dat moment is nu gekomen.
Om te beginnen dient u te besluiten welke tool het loggen van het systeem voor
zijn rekening gaat nemen. Unix en Linux hebben een goede historie qua
logmogelijkheden -- als u wilt kunt u alles wat er in het systeem gebeurt
vastleggen in de daarvoor bestemde bestanden. Dit alles wordt door de
systeemlogger geregeld.
Gentoo biedt keuze uit diverse systeem loggers. Er zijn sysklogd, wat de
traditionele systeem logger is, syslog-ng, een geavanceerde systeem
logger, en metalog, wat een systeem logger met vele mogelijkheden is.
Anderen kunnen beschikbaar zijn via Portage - het aantal beschikbare pakketten
groeit per dag.
Als u sysklogd of syslog-ng wilt gebruiken wilt u wellicht
logrotate achteraf installeren aangezien die systeem loggers geen
mogelijkheid bieden om de log files verversen.
om de door jou gekozen systeem logger te installeren, emerge het en
zorg dat het standaard opstart met behulp van rc-update. Het volgende
voorbeeld installeert syslog-ng. U Vervangt dit natuurlijk door uw
gekozen systeem logger:
Codevoorbeeld 2.1: Installeren van een systeem logger |
# emerge syslog-ng
# rc-update add syslog-ng default
|
9.c. Optioneel: 'Cron Daemon'
De volgende op de lijst is de 'cron daemon'. Alhoewel deze optioneel is en niet
benodigd voor het systeem, is het verstandig om er wel één te installeren. Wat
is eigenlijk een cron daemon? Een cron daemon voert geplande commando's
uit. Het is erg handig wanneer u commando's op een regelmatig tijdstip uit wilt
voeren (bijvoorbeeld dagelijks, wekelijks of maandelijks).
Gentoo heeft de beschikking over drie verschillende cron daemons.
dcron, fcron en vixie-cron. De installatie is te
vergelijken met de installatie van een systeemlogger. Echter, dcron
en fcron vereisen een extra configuratiestap, namelijk
crontab /etc/crontab. Als u niet weet welke te kiezen, neem dan
vixie-cron.
We leveren voor netwerkloze installaties alleen vixie-cron. Als u een
andere 'cron deamon' wil, wacht dan en installeer deze later.
Codevoorbeeld 3.1: Installeren van een cron daemon |
# emerge vixie-cron
# rc-update add vixie-cron default
# crontab /etc/crontab
|
9.d. Optioneel: bestanden indexeren
Als u de bestanden van uw systeem wil laten indexeren zodat u ze snel terug
kunt vinden met behulp van de locate tool, dan dien
sys-apps/slocate te installeren.
Codevoorbeeld 4.1: Slocate installeren |
# emerge slocate
|
9.e. Programma's voor het bestandssysteem
Afhankelijk van welk bestandssysteem u gebruikt, dient u de bij behorende
hulpprogramma's te installeren (voor het controleren van de
integriteit van uw bestandssysteem, nieuwe bestandssystemen aanmaken, etc.).
De volgende tabel geeft de hulpprogramma's aan die u voor ieder van de
bestandssystemen dient te installeren:
| File System |
Hulpprogramma |
Installatie commando |
| XFS |
xfsprogs |
emerge xfsprogs |
| ReiserFS |
reiserfsprogs |
emerge reiserfsprogs |
| JFS |
jfsutils |
emerge jfsutils |
Als u EVMS gebruikt, moet u ook evms installeren:
Codevoorbeeld 5.1: EVMS utilities instaleren |
# USE="-gtk" emerge evms
|
Het USE="-gtk" voorkomt de installatie van afhankelijkheden. Wanneer u
evms met grafische ondersteuning wilt, kunt u evms later
opnieuw compileren.
Indien u geen extra netwerk gerelateerde programma's gebruikt (zoals p-pppoe
of een dhcp client), ga dan verder met De
bootloader configureren.
9.f. Netwerk programma's
Optioneel: een DHCP client installeren
Indien u eist dat Gentoo automatisch een IP adres voor uw netwerk interface(s)
verkrijgt, dient u dhcpcd (of een andere DHCP client -- neem een kijke
op Modulaire Netwerk voor een lijst van
beschikbare DHCP cliënten) op het systeem te installeren. Als u dit niet nu
doet, kunt u straks na de installatie misschien geen verbinding meer maken met
het internet.
Codevoorbeeld 6.1: dhcpcd installeren |
# emerge dhcpcd
|
Optioneel: een PPPoE client installeren
Als u rp-pppoe nodig heeft om verbinding te maken met internet, dan
dient u dit eerst te installeren.
Codevoorbeeld 6.2: rp-pppoe installeren |
# USE="-X" emerge rp-pppoe
|
USE="-X" voorkomt dat xorg-x11 als afhankelijkheid geïnstalleerd
wordt (rp-pppoe heeft grafische hulpprogramma's; als u die wilt
installeren, kunt u later rp-pppoe opnieuw compileren of xorg-x11
nu meteen installeren -- wat een tijd duurt op te compileren).
Optioneel: RAID hulpprogramma's voor IBM hardware
Als u gebruik maakt van SCSI RAID op een POWER5 systeem, kunt u
overwegen om iprutils te installeren. Dit stelt u in staat om onder
andere met de RAID disk array te werken, de status van de schijven in de arrays
te krijgen, de microcode updaten en meer.
Codevoorbeeld 6.3: Iprutils installeren |
# emerge iprutils
|
Ga nu verder met De bootloader
configureren.
10. Configuratie van de Bootlader
10.a. Uw keuze maken
Introductie
Nu uw kernel is geconfigureerd en gecompileerd en de nodige systeem
configuratie bestanden goed zijn ingevuld, is het tijd om een programma te
installeren dat de kernel zal starten als wanneer het systeem opstart. Zo'n
programma heet een bootloader.
Voor x86 levert Gentoo Linux GRUB en
LILO. Maar voor we een van beiden installeren,
zullen we u eerst vertellen hoe u de framebuffer moet configureren (aangenomen
dat u dat wilt natuurlijk). Met de framebuffer kunt u op de Linux command line
(beperkt) grafische features gebruiken (zoals een mooi bootsplash plaatje wat
Gentoo levert).
Optioneel: De Framebuffer
Als u de kernel hebt geconfigureerd met framebuffer ondersteuning (of
als u genkernel's standaard kernel configuratie heeft gebruikt), kunt u
deze activeren door een vga en/of een video argument toe te voegen
aan het bootloader configuratie bestand.
Om te beginnen moet u weten welke type framebuffer methode u gebruikt. Als u
een gepatchte Gentoo kernel (zoals gentoo-sources), hebt u de
mogelijkheid om vesafb-tng als het VESA driver type te gebruiken
(wat standaard is voor deze kernel broncodes). Als dit het geval is, gebruikt u
vesafb-tng en heeft u geen vga argument nodig. Als dit niet het
geval is, gebruikt u de vesafb driver en dient u wel het vga
argument in te stellen.
Het vga argument bepaalt de resolutie en kleurdiepte van uw framebuffer
scherm voor vesafb. Zoals vermeld in
/usr/src/linux/Documentation/fb/vesafb.txt (wat geïnstalleerd wordt
als u een kernelbroncodepakket installeert), dient u het het VESA nummer mee te
geven wat overeenkomt met de gewenste resolutie en kleurdiepte.
De volgende tabel geeft een lijst met beschikbare resoluties en kleurdieptes
en geeft de overeenkomende waarde die aan het vga argument meegegeven
dient te worden.
|
640x480 |
800x600 |
1024x768 |
1280x1024 |
| 256 |
0x301 |
0x303 |
0x305 |
0x307 |
| 32k |
0x310 |
0x313 |
0x316 |
0x319 |
| 64k |
0x311 |
0x314 |
0x317 |
0x31A |
| 16M |
0x312 |
0x315 |
0x318 |
0x31B |
Het video argument bepaalt de framebuffer opties. Het is vereist voor de
framebuffer driver (vesafb voor 2.6 kernels of vesa voor 2.4
kernels), gevolgd door de argumenten die u wenst te gebruiken. Alle variabelen
staan in /usr/src/linux/Documentation/fb/vesafb.txt, maar we zullen
u de drie meest gebruikte opties uitleggen:
| Optie |
Beschrijving |
| ywrap |
Aangenomen dat de grafische kaard zijn geheugen kan "wrappen", wat betekent
dat hij verder gaat bij het begin van het geheugen als het bij het einde
is aangekomen.
|
| mtrr |
MTRR registers gebruiken. n kan zijn:
0 - disabled
1 - uncachable
2 - write-back
3 - write-combining
4 - write-through
|
| mode |
(alleen vesafb-tng)
Stel de resolutie, de kleurdiepte en de ververssnelheid in. Bijvoorbeeld,
1024x786-32@85 voor een 1024x768 resolutie, 32 bit kleurdiepte en
een ververssnelheid van 85 Hz.
|
Het resultaat van deze twee argumenten kan iets zijn als vga=0x318
video=vesafb:mtrr:3,ywrap of
video=vesafb:mtrr:3,ywrap,1024x768-32@85. Onthoud (of noteer) deze
instelling; U heeft deze snel nodig.
Ga nu verder door GRUB of
LILO te installeren.
10.b. Standaard: GRUB gebruiken
GRUB's terminologie begrijpen
Het belangrijkste deel van GRUB begrijpen, is begrijpen hoe GRUB harde
schijven en partities noemt. Uw Linux partitie /dev/hda1 (voor IDE
schijven) of /dev/sda1 (voor SATA/SCSI schijven) heet zeer
waarschijnlijk (hd0,0) onder GRUB. Vergeet niet de haakjes rond
hd0,0 - ze zijn vereist.
Harde schijven tellen liever vanaf nul dan vanaf "a" en partities beginnen
bij nul in plaats van één. Merk ook op dat met hd apparaten alleen harde
schijven worden geteld en geen atapi-ide apparaten zoals cdrom spelers en
branders. Ook wordt hetzelfde gebruikt bij SCSI schijven. (Normaal gesproken
krijgen ze hogere nummers dan ide schijven tenzij de bios is ingesteld om vanaf
scsi schijven op te starten.) Als u de BIOS instelt om van een andere harde
schijf op te starten, wordt die harde schijf gezien als hd0.
Laten we een voorbeeld nemen. Stel dat u een harde schijf op
/dev/hda hebt, een cdrom speler op /dev/hdb, een
brander op /dev/hdc, een tweede harde schijf op
/dev/hdd en geen SCSI harde schijf, dan wordt
/dev/hdd7 vertaald tot (hd1,6). Het klinkt misschien
moeilijk en dat is het ook, maar zoals we zullen zien heeft GRUB een tab
aanvullingsmechanisme dat heel erg van pas komt voor diegene met veel schijven
en partities en een beetje verloren is geraakt in het GRUB schema.
Ik denk dat we nu wel toe zijn aan het installeren van GRUB.
GRUB installeren
Om GRUB te installeren, zullen we het eerst emergen:
Codevoorbeeld 2.1: Installeren van GRUB |
# emerge grub
|
Hoewel GRUB nu is geïnstalleerd, moeten we nog steeds een configuratie ervoor
schrijven en GRUB in onze MBR zetten zodat GRUB ook daadwerkelijk u nieuwe
kernel opstart. Maak /boot/grub/grub.conf met nano
(of een andere editor):
Codevoorbeeld 2.2: /boot/grub/grub.conf aanmaken |
# nano -w /boot/grub/grub.conf
|
Nu gaan we een grub.conf schrijven. Hieronder vindt u twee
mogelijke versies van grub.conf voor de partitie indeling die we
hebben gebruikt in deze handleiding. We hebben alleen uitgebreid commentaar
toegevoegd in de eerste grub.conf. Zorg dat u uw kernel
image bestandsnaam en, indien van toepassing, uw initrd image
bestandsnaam gebruikt.
-
De eerste grub.conf is voor mensen die geen genkernel
hebben gebruikt om hun kernel te bouwen
-
De tweede grub.conf is voor mensen die wel genkernel
hebben gebruikt
Nota:
Als uw root bestandssysteem JFS is, moet "ro" aan de kernel regel
toevoegen. Hier door kan JFS zijn log nakijken vo
While LILO does work on AMD64, Gentoo only supports using GRUB. Now continue by
its ordat het schrijven toelaat.
|
Codevoorbeeld 2.3: grub.conf for non-genkernel users |
default 0
timeout 30
splashimage=(hd0,0)/grub/splash.xpm.gz
title=Gentoo Linux 2.6.17-r5
root (hd0,0)
kernel /boot/kernel-2.6.17-gentoo-r5 root=/dev/hda3
title=Gentoo Linux 2.6.17-r5 (rescue)
root (hd0,0)
kernel /boot/kernel-2.6.17-gentoo-r5 root=/dev/hda3 init=/bin/bb
title=Windows XP
rootnoverify (hd0,5)
makeactive
chainloader +1
|
Codevoorbeeld 2.4: grub.conf voor genkernel gebruikers |
default 0
timeout 30
splashimage=(hd0,0)/grub/splash.xpm.gz
title=Gentoo Linux 2.6.17-r5
root (hd0,0)
kernel /boot/kernel-genkernel-2.6.17-r5 root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/hda3 udev
initrd /boot/initramfs-genkernel-2.6.17-r5
title=Windows XP
rootnoverify (hd0,5)
makeactive
chainloader +1
|
Nota:
Het udev aan het einde van de kernel regel is nodig om langs een bug in
enkele genkernel versies te werken. Dit is alleen nodig als u udev
gebruikt (wat standaard is).
|
Heeft u echter een andere partitie indeling en/of kernel image gebruikt, pas
dit dan aan. Zorg echter wel dat alles wat een GRUB-apparaat volgt (zoals
(hd0,0)) relatief is aan het mount punt, niet naar de root. In
andere woorden, (hd0,0)/grub/splash.xpm.gz is in werkelijkheid
/boot/grub/splash.xpm.gz omdat (hd0,0) gewoon
/boot is.
Verder geldt dat wanneer u een andere partitie indeling gebruikt en de
/boot niet in een aparte partitie heeft geplaatst, de
/boot prefix in de eerdere code voorbeelden echt nodig is.
Wanneer u de standaard partitie indeling heeft gevolgt, is de /boot
prefix niet nodig, maar een werkt alles toch via een boot symlink.
Kort samengevat, de bovenstaande voorbeelden horen te werken, of u nu een
aparte /boot hebt aangemaakt of niet.
Indien u extra opties aan de kernel wilt toevoegen, zet u die simpelweg aan het
einde van het kernel commando. We hebben nu al een optie toegevoegd
(root=/dev/hda3 of real_root=/dev/hda3), maar u kunt ook andere
argumenten meegeven, zo kunt u voor de eerder besproken framebuffer de
video en/of vga argumenten toevoegen.
Als u een een 2.6.7 of nieuwere kernel draait en u heeft de harde schrijf
gejumperd omdat uw BIOS geen grote harde schijven aan kan, dient u
hdX=stroke als optie toevoegen.
genkernel gebruikers moeten weten dat hun kernels dezelfde boot
opties gebruiken als de Installatie CD gebruikt. Bijvoorbeeld, als u SCSI
apparaten hebt, moet u doscsi als kernel optie toevoegen.
Sla nu het grub.conf bestand op en sluit af. Nu moeten we nog wel
GRUB in de MBR (Master Boot Record) installeren zodat GRUB daadwerkelijk start
wanneer u het systeem start.
De GRUB ontwikkelaars raden het gebruik van grub-install aan. Als echter
grub-install mislukt, zijn er nog steeds mogelijkheden om het handmatig
te doen.
Ga verder met Standaard: GRUB installeren met
grub-install of Alternatief: GRUB
handmatig installeren.
Standaard: GRUB installeren met grub-install
Om GRUB te installeren, moet u het commando grub-install gebruiken.
grub-install zal echter niet direct werken omdat we in een chroot zitten.
We zullen eerst /etc/mtab (het bestand met de informatie over alle
gemounte bestandssystemen) moeten aanmaken. Gelukkig is er een makkelijke manier om
dit te doen: kopieer gewoon /proc/mounts naar
/etc/mtab, waarbij u de rootfs regel weglaat indien u geen
aparte boot partitie heeft aangemaakt. Het volgende commando werkt voor beide
gevallen:
Codevoorbeeld 2.5: /etc/mtab aanmaken |
# grep -v rootfs /proc/mounts > /etc/mtab
|
Nu kunnen we GRUB installeren met behulp van grub-install:
Codevoorbeeld 2.6: grub-install draaien |
# grub-install --no-floppy /dev/hda
|
Als u verder nog vragen heeft over GRUB, lees dan de GRUB FAQ
(Engelstalig) of de
GRUB Handleiding(Engelstalig).
Ga verder met Het systeem herstarten.
Alternatief: GRUB handmatig installeren
Om de configuratie van GRUB te starten, typt u grub in. Je zult begroet
worden met de grub> grub command-line prompt. Nu kunt u de
commando's intypen om GRUB in uw MBR te krijgen.
Codevoorbeeld 2.7: De GRUB shell starten |
# grub
|
Nota:
Als uw systeem geen floppy drive heeft, voeg de --no-floppy optie toe
aan het bovenstaande commando zodat grub niet gaat zoeken naar (niet bestaande)
floppy drives.
|
In de voorbeeld configuratie willen we GRUB zo installeren zodat het zijn
informatie leest vanaf de boot partitie /dev/hda1, en dat het de
GRUB boot record op de MBR van de harde schijf zet zodat het eerste wat we zien
als de computer opstart GRUB is. Als u niet de voorbeelden hebt gevolgd, zorg
wel dat u de commando's daarop aanpast.
Het tab aanvullingsmechanisme van GRUB kan worden gebruikt binnen GRUB.
Bijvoorbeeld, als u "root (" typt, gevold door een TAB, zult u een lijst
met apparaten (zoals hd0) terugkrijgen. Als u
"root (hd0," intypt, gevolgd door een TAB zult u een lijst krijgen
met beschikbare partities (zoals hd0,0).
Nu met behulp van tab aanvulling, zou GRUB installeren niet zo moeilijk
moeten zijn. Ga nu verder, configureer GRUB, zullen we? :-)
Codevoorbeeld 2.8: GRUB in de MBR installeren |
grub> root (hd0,0)
grub> setup (hd0)
grub> quit
|
Nota:
Als u GRUB op een bepaalde partitie wil installeren in plaats van de MBR, dan
zult u het setup commando aan moeten passen zodat hij naar de juiste
partitie verwijst. Bijvoorbeeld, als u GRUB wil installeren in
/dev/hda3, dan zal het commando er zo uit ziet:
setup (hd0,2). Sommige gebruikers zullen dit willen doen.
|
Als u verder nog vragen hebt over GRUB, lees dan de GRUB FAQ
(Engelstalig) of de
GRUB Handleiding(Engelstalig).
Nota:
Wanneer u een nieuwe kernel installeert, hoeft u geen bestanden meer te
kopiëren. Draai gewoon make install na het compileren van de kernel en
de juiste bestanden worden gekopieerd en de GRUB configuratie wordt aangepast.
|
Ga verder met Het systeem herstarten.
10.c. Alternatief: LILO gebruiken
LILO installeren
LILO, de LInuxLOader, is het geteste en echte werkpaard van de Linux
bootloaders. Helaas mist het enkele mogelijkheden die GRUB wel heeft (en wat de
reden is dat GRUB nu veel aan populariteit wint). De reden dat LILO nog steeds
gebruikt wordt, is dat GRUB soms niet werkt en LILO wel. Natuurlijk zijn er ook
mensen die LILO kennen en daarom niet over willen stappen. Hoe dan ook, Gentoo
ondersteunt beide, en blijkbaar heeft u gekozen om LILO te gebruiken.
LILO installeren is een eitje; gebruik gewoon emerge.
Codevoorbeeld 3.1: LILO installeren |
# emerge lilo
|
LILO configureren
Om LILO te configureren moet u /etc/lilo.conf aanmaken. Start uw
favoriete editor (in dit handboek gebruiken we nano voor continuïteit)
en maak het bestand.
Codevoorbeeld 3.2: /etc/lilo.conf aanmaken |
# nano -w /etc/lilo.conf
|
Enkele secties geleden hebben we u gevraagd de naam van het door u gemaakte
kernel-image te onthouden. In het volgende voorbeeld lilo.conf
gebruiken we de standaard partitie indeling. Er zijn twee verschillende
delen:
-
Eén voor diegene die geen genkernel hebben gebruikt voor hun kernel
-
Eén voor diegene die wel genkernel hebben gebruikt voor hun kernel
Zorg dat u uw eigen kernel image bestandsnaam en, indien van toepassing,
uw eigen initrd images bestandsnaam gebruikt.
Nota:
Als uw root bestandssysteem JFS is, moet "ro" aan de kernel regel
toevoegen. Hier door kan JFS zijn log naspelen voordat hij schrijven toelaat.
|
Codevoorbeeld 3.3: Voorbeeld /etc/lilo.conf |
boot=/dev/hda
prompt
timeout=50
default=gentoo
image=/boot/kernel-2.6.12-gentoo-r10
label=gentoo
read-only
root=/dev/hda3
image=/boot/kernel-2.6.17-gentoo-r5
label=gentoo.rescue
read-only
root=/dev/hda3
append="init=/bin/bb"
image=/boot/kernel-genkernel-x86-2.6.17-r5
label=gentoo
read-only
root=/dev/ram0
append="init=/linuxrc ramdisk=8192 real_root=/dev/hda3 udev"
initrd=/boot/initramfs-genkernel-2.6.17-r5
other=/dev/hda6
label=windows
|
Nota:
Het udev aan het einde van de kernel regel is nodig om langs een bug in
enkele genkernel versies te werken. Dit is alleen nodig als u udev
gebruikt (wat standaard is).
|
Nota:
Indien u een andere partitie indeling en/of kernel image gebruikt, pas
dit dan op de juiste plaatsen aan.
|
Indien u nog andere opties wilt toevoegen aan de kernel, voeg append toe
aan de sectie. Als voorbeeld zullen we het video argument toevoegen
zodat we framebuffer kunnen gebruiken:
Codevoorbeeld 3.4: append gebruiken om kernel opties toe te voegen |
image=/boot/kernel-2.6.17-r5
label=gentoo
read-only
root=/dev/hda3
append="video=vesafb:mtrr,ywrap,1024x768-32@85"
|
Indien u een een 2.6.7 of nieuwere kernel draait en u heeft de harde schrijf
gejumperd omdat uw BIOS geen grote harde schijven aan kan, moet u
hdX=stroke als optie toevoegen.
genkernel gebruikers moeten weten dat hun kernels dezelfde boot
opties gebruiken als de Installatie CD gebruikt. Bijvoorbeeld, als u SCSI
apparaten heeft, moet u doscsi als kernel optie toevoegen.
Sla nu het bestand op en sluit af. Om het nog af te maken, moet u
/sbin/lilo nog starten zodat LILO /etc/lilo.conf kan
toepassen op uw systeem (zoals zichzelf installeren op de schijf). Onthoud dat
u /sbin/lilo opnieuw moet starten als u een nieuwe kernel installeert
of het menu van LILO verandert.
Codevoorbeeld 3.5: De LILO installatie afmaken |
# /sbin/lilo
|
Nota:
Als u de kernel opnieuw installeert, hoeft u niet alle bestanden opnieuw te
kopiëren. Draai gewoon make install nadat u uw kernel hebt gecompileerd;
hij zal dan automatisch de benodigde bestanden kopiëren en de LILO configuratie
aanpassen.
|
Je kunt nu verder gaan met Het systeem herstarten.
10.d. Het systeem herstarten
Verlaat de chroot en unmount alle gemounte partities. Typ dan het magische
commando waarop u heeft gewacht: reboot.
Codevoorbeeld 4.1: Unmount alle partities en reboot |
# exit
cdimage ~# cd
cdimage ~# umount /mnt/gentoo/boot /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo
cdimage ~# reboot
|
Vergeet natuurlijk niet de Gentoo CD er uit te halen, anders start u de CD
op in plaats van uw nieuwe Gentoo systeem.
Eenmaal opnieuw opgestart en in uw Gentoo installatie, ga verder met De Gentoo installatie afmaken.
11. Afmaken van uw Gentoo Installatie
11.a. Gebruikersbeheer
Gebruiker toevoegen voor dagelijks gebruik
Als root werken op een Unix/Linux systeem is riskant en moet
zoveel mogelijk vermeden worden. Daarom raden wij zeer sterk aan een
gebruiker toe te voegen voor dagelijks gebruik.
De groepen waar de gebruiker lid van is bepalen welke activiteiten de gebruiker
mag uitvoeren. De volgende tabel geeft een aantal belangrijke groepen die u
mogelijk wilt gebruiken:
| Groep |
Beschrijving |
| audio |
toegang tot de audio apparaten |
| cdrom |
directe toegang tot de optische apparaten |
| floppy |
directe toegang tot de floppy drives |
| games |
de mogelijkheid om spellen te spelen |
| portage |
als gewone gebruiker emerge --pretend kunnen gebruiken |
| usb |
toegang tot de USB apparaten |
| plugdev |
de mogelijkheid om verwisselbare schijven zoals camera's en USB sticks te
mounten en gebruiken
|
| video |
de toegang tot video capturing hardware en hardware acceleratie uit te
voeren
|
| wheel |
mogelijkheid om su te gebruiken |
Om een gebruiker john die lid is van de groepen wheel,
users en audio aan te maken dient u eerst als root in te loggen
(alleen root kan gebruikers aan maken) en useradd te draaien:
Codevoorbeeld 1.1: Gebruiker voor dagelijks gebruik toevoegen |
Login: root
Password:
# useradd -m -G users,wheel,audio -s /bin/bash john
# passwd john
Password:
Re-enter password:
|
Als een gebruiker ooit iets als root moeten uitvoeren kan hij su -
gebruiken om tijdelijk root privileges te krijgen. Een andere manier is om het
sudo pakket te gebruiken dat, mits goed geconfigureerd, zeer veilig is.
12. Hoe nu verder?
12.a. Documentatie
Gefeliciteerd! U hebt nu een werkend Gentoo systeem. Maar wat nu? Wat zijn nu
uw mogelijkheden? Welke dingen als eerste ontdekken? Gentoo geeft haar
gebruikers talloze mogelijkheden en heeft daarom ontzettend veel
gedocumenteerde (en minder gedocumenteerde) opties.
U zou zeker even moeten kijken in het volgende deel van het Gentoo Handboek,
getiteld Werken met Gentoo dat uitlegt
hoe u uw software up-to-date houdt, hoe u meer software installeert, wat USE
vlaggen zijn, hoe het Gentoo Init systeem werkt, etc.
Als u geïnteresseerd bent in het optimaliseren van uw systeem voor desktop
gebruik of wanneer u wilt leren hoe u uw systeem configureert tot een volledig
werkend desktop systeem, zie dan onze uitgebreide Gentoo Linux desktop configuratie
handleidingen. Daarnaast kunt u onze
landinstellingen handleiding kunnen gebruiken, om uw systeem specifiek
uw eigen taal klaar te maken.
We hebben ook een Gentoo veiligheidshandboek
(Engelstalig) welke het waard is om te lezen.
Voor een volledige lijst van al onze beschikbare documentatie, bekijk onze Gentoo Documentatie pagina.
12.b. Gentoo Online
U bent natuurlijk altijd welkom op onze
Gentoo Forums of een van onze
Gentoo IRC kanalen (Engelstalig).
We hebben ook verschillende mailinglists
(Engelstalig), toegankelijk voor al onze gebruikers. Ook informatie over het lid worden
van een mailinglist staat op die pagina.
Nu zijn we even stil en laten u van uw nieuwe installatie genieten :)
B. Werken met Gentoo
1. Een introductie van Portage
1.a. Welkom bij Portage
Portage is waarschijnlijk Gentoo's meest opmerkelijke innovatie in
softwarebeheer. Met zijn hoge flexibiliteit en zijn enorme hoeveelheid aan
mogelijkheden wordt het vaak gezien als de beste softwarebeheertool die voor
Linux beschikbaar is.
Portage is geheel geschreven in Python
en Bash en is daardoor
heel zichtbaar voor gebruikers omdat het beide script talen zijn.
De meeste gebruikers zullen met Portage werken via de emerge tool. Dit
hoofdstuk is niet bedoeld om de beschikbare informatie uit de emerge handleiding
te herhalen. Voor een complete lijst met emerge's mogelijkheden, lees de
handleiding:
Codevoorbeeld 1.1: De emerge handleiding lezen |
$ man emerge
|
1.b. De Portageboom
Ebuilds
Als we over pakketten praten, bedoelen we meestal softwaretitels die
beschikbaar zijn via de Portageboom. De Portageboom is een verzameling van
ebuilds, bestanden die alle informatie bevatten die Portage nodig heeft
(om te installeren, te zoeken, uit te lezen, ...). Deze ebuilds staan standaard
in /usr/portage.
Op het moment dat u Portage vraagt een taak met betrekking tot softwaretitels
uit te voeren, zal het de ebuilds op uw systeem als basis gebruiken. Daarom is
het belangrijk dat u regelmatig de ebuilds op uw systeem vernieuwt zodat
Portage weet over nieuwe software, beveiligingsupdates, etc.
De Portageboom updaten
De Portageboom wordt meestal bijgewerkt met rsync, een snel werkend
bestandsoverdrachtprogramma. Bijwerken is zeer simpel omdat het emerge
commando een front-end voor rsync biedt:
Codevoorbeeld 2.1: De Portageboom bijwerken |
# emerge --sync
|
Indien u door firewall-beperkingen geen rsync kunt gebruiken, kunt u nog
steeds de Portageboom updaten door onze dagelijks gegenereerde Portageboom
snapshots te gebruiken. De emerge-webrsync tool haalt deze automatisch
op en installeert deze meteen:
Codevoorbeeld 2.2: Emerge-webrsync draaien |
# emerge-webrsync
|
1.c. Software beheren
Zoeken naar software
Om door de Portageboom naar softwaretitels te zoeken, kunt u de in
emerge ingebouwde zoekfunctie gebruiken. Standaard geeft emerge
--search de naam terug van de pakketten waarbij de titel (volledig of
deels) overeenkomt met de opgegeven zoekterm.
Om bijvoorbeeld te zoeken naar alle pakketten met "pdf" in hun naam:
Codevoorbeeld 3.1: Zoeken naar pdf-genaamde pakketten |
$ emerge --search pdf
|
Indien u ook door de beschrijvingen wil zoeken, kunt u --searchdesc
(of -S) gebruiken:
Codevoorbeeld 3.2: zoeken naar pdf-gerelateerde pakketten |
$ emerge --searchdesc pdf
|
Als we kijken naar de resultaten, ziet u dat er veel informatie wordt
weergegeven. De velden hebben een duidelijke naam dus daar gaan we niet
verder op in:
Codevoorbeeld 3.3: Voorbeeld van de emerge --search resultaten |
* 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
|
Software installeren
Wanneer u een softwaretitel gevonden hebt die u wilt installeren, kunt u dit
simpel doen met emerge: voeg gewoon de pakket naam toe. Om
bijvoorbeeld gnumeric in installeren:
Codevoorbeeld 3.4: gnumeric installeren |
# emerge gnumeric
|
Omdat veel applicaties op elkaar steunen (afhankelijkheden), is het heel goed
mogelijk dat enkele andere applicaties ook worden geïnstalleerd. Geen zorgen,
Portage kan deze afhankelijkheden prima aan. Als u wilt weten wat Portage
zou installeren als u vraagt een bepaald pakket te installeren,
voeg --pretend toe:
Codevoorbeeld 3.5: Doe alsof u gnumeric installeert |
# emerge --pretend gnumeric
|
Als u Portage vraagt een pakket te installeren, zal het, indien nodig, de
benodigde broncode van internet downloaden en standaard opslaan in
/usr/portage/distfiles. Hierna zal het pakket worden uitgepakt,
gecompileerd en geinstalleerd. Als u wilt dat Portage de broncode alleen
downloadt zonder ze te installeren, voeg de --fetchonly optie toe aan
het emerge commando:
Codevoorbeeld 3.6: Alleen de broncodes downloaden voor gnumeric |
# emerge --fetchonly gnumeric
|
De documentatie bij een geïnstalleerd programma vinden
Veel pakketten komen met eigen documentatie. Soms wordt de doc USE vlag
gebruikt om te bepalen of de documentatie wel of niet mee geïnstalleerd moet
worden. U kunt controleren of een pakket een doc USE vlag heeft door
emerge -vp <naam van het pakket> te gebruiken.
Codevoorbeeld 3.7: Controleren of er een doc USE vlag aanwezig is |
# emerge -vp alsa-lib
[ebuild N ] media-libs/alsa-lib-1.0.9_rc3 +doc -jack 674 kB
|
U kunt de doc USE vlag voor het hele systeem aanzetten in het
/etc/make.conf bestand, of dit per pakket aangeven in het
/etc/portage/package.use bestand. Je kunt ook de map,
/etc/portage/package.use, genaamd aanmaken en de zelfde lijst
maken in een bestand in deze map. Het USE
vlaggen hoofdstuk geeft meer uitleg over dit onderwerp.
Wanneer een pakket is geïnstalleerd, kunt u de documentatie meestal vinden in
een submap in /usr/share/doc, genaamd naar het pakket. U kunt ook
een lijst van alle geïnstalleerde bestanden opvragen met behulp van het
equery programma, dat onderdeel is van de app-portage/gentoolkit
pakket (Engelstalig).
Codevoorbeeld 3.8: De documentatie bij een pakket vinden |
# ls -l /usr/share/doc/alsa-lib-1.0.9_rc3
total 28
-rw-r--r-- 1 root root 669 May 17 21:54 ChangeLog.gz
-rw-r--r-- 1 root root 9373 May 17 21:54 COPYING.gz
drwxr-xr-x 2 root root 8560 May 17 21:54 html
-rw-r--r-- 1 root root 196 May 17 21:54 TODO.gz
# equery files alsa-lib | less
media-libs/alsa-lib-1.0.9_rc3
* Contents of media-libs/alsa-lib-1.0.9_rc3:
/usr
/usr/bin
/usr/bin/alsalisp
|
Software verwijderen
Als u een softwarepakket van uw systeem wilt verwijderen, gebruikt u emerge
--unmerge. Dit vertelt Portage dat het alle bestanden van dat pakket moet
verwijderen behalve de configuratie bestanden van die applicatie als u
ze gewijzigd heeft na de installatie. De configuratie bestanden laten staan heeft
het voordeel dat u direct verder kunt werken als u besluit het pakket opnieuw
te installeren.
Echter, een grote waarschuwing is van toepassing: Portage zal
niet controleren of het pakket dat u wilt verwijderen vereist is voor
een ander pakket. Het zal echter wel waarschuwen als u een belangrijk pakket
wilt verwijderen wat tot gevolg heeft dat het systeem niet meer kan draaien.
Codevoorbeeld 3.9: Gnumeric van het systeem verwijderen |
# emerge --unmerge gnumeric
|
Als u een pakket van het systeem verwijdert, blijven de afhankelijkheden van
dat pakket op uw systeem geïnstalleerd. Om Portage al deze afhankelijkheden te
laten vinden, kun u de emerge --depclean functie gebruiken. We
gaan het hier later over hebben.
Uw systeem updaten
Om uw systeem in vorm te houden (en niet te vergeten de meest recente
beveiligingsupdates te installeren), dient u het systeem regelmatig te updaten.
Omdat Portage alleen de ebuilds in de Portageboom controleert, dient u eerst
de Portageboom te updaten. Als dat klaar is, kunt u het systeem updaten met
emerge --update world. In het volgende voorbeeld zullen we ook de
--ask optie gebruiken, die portage een lijst met te updaten pakketten
laat tonen, met de vraag of u verder wilt gaan of niet:
Codevoorbeeld 3.10: Uw systeem updaten |
# emerge --update --ask world
|
Portage zal dan zoeken naar een nieuwere versie van de applicaties die u heeft
geïnstalleerd. Het zal echter alleen de versies controleren van de applicaties
die u specifiek hebt geïnstalleerd - niet de afhankelijkheden. Als u ieder
pakket op uw systeem wil updaten, voeg het --deep argument toe:
Codevoorbeeld 3.11: Uw gehele systeem updaten |
# emerge --update --deep world
|
Omdat beveiligingsupdates ook nogal eens voorkomen in pakketten die u niet
expliciet zelf hebt geïnstalleerd (maar dus door het installeren van andere
pakketten), is het aan te raden om af en toe dit commando te gebruiken.
Als u een van uw USE vlaggen recent heeft
gewijzigd wilt u misschien ook --newuse toevoegen. Portage controleert
dan of er nieuwe pakketten geïnstalleerd moeten worden of hercompilatie van
reeds geïnstalleerde pakketten nodig is:
Codevoorbeeld 3.12: Een complete update uitvoeren |
# emerge --update --deep --newuse world
|
Mini pakketten
Sommige pakketten in de Portageboom hebben niet echt inhoud maar worden
gebruikt om een verzameling van pakketten te installeren. Het kde pakket
zal bijvoorbeeld de hele KDE-omgeving op uw systeem installeren door
KDE-gerelateerde pakketten als afhankelijkheden op uw systeem te installeren.
Als u zo'n pakket wilt verwijderen, zal emerge --unmerge weinig zin
hebben omdat de afhankelijkheden op uw systeem blijven staan.
Portage heeft de functionaliteit om zogenaamde wezen (programma's die zijn
achtergebleven na het verwijderen van een ander programma) te verwijderen,
maar omdat de beschikbaarheid van software dynamisch afhankelijk is, dient u
eerst het gehele systeem te updaten, inclusief veranderingen die u heeft
doorgevoerd door uw USE vlaggen aan te passen. Hierna kunt u emerge
--depclean gebruiken om de wezen te verwijderen. Als
dit klaar is, dient u de applicaties te herbouwen die gelinkt waren
aan de nu verwijderde software titels.
Dit gebeurt met de drie volgende commando's:
Codevoorbeeld 3.13: Wezen verwijderen |
# emerge --update --deep --newuse world
# emerge --depclean
# revdep-rebuild
|
revdep-rebuild wordt geleverd door het gentoolkit pakket; vergeet
dit niet eerst te emergen:
Codevoorbeeld 3.14: Het gentoolkit pakket installeren |
# emerge gentoolkit
|
1.d. Als Portage klaagt ...
Over SLOTs, virtuals, branches, architecturen en profielen
Zoals eerder gezegd, Portage is extreem krachtig en ondersteunt veel
mogelijkheden die andere softwarebeheer tools niet hebben. Om dit te begrijpen
zullen we enkele aspecten van Portage uitleggen zonder er te diep op in te gaan.
Met Portage kunnen verschillende versies van een enkel pakket gelijktijdig op
het systeem staan. Terwijl andere distributies de gewoonte hebben hun pakketten
te noemen naar de versie (zoals freetype en freetype2) gebruikt
Portage een technologie genaamd SLOTs. Een ebuild stelt een bepaald SLOT
voor zijn versie vast. Ebuilds met verschillende SLOTs kunnen gelijktijdig op
het systeem staan. Het freetype pakket heeft bijvoorbeeld ebuilds met
SLOT="1" en SLOT="2".
Er zijn ook pakketten die dezelfde functionaliteit bieden, maar op een andere
manier geïmplementeerd zijn. metalog, sysklogd en syslog-ng
zijn bijvoorbeeld allemaal systeemloggers. Applicaties die steunen op de
beschikbaarheid van "een systeemlogger" kunnen bijvoorbeeld niet steunen op
metalogd omdat andere systeemloggers net zo goed er op kunnen staan.
Portage staat daarom virtuals toe: iedere systeemlogger biedt
virtual/syslog zodat applicaties op virtual/syslog kunnen steunen.
Software in de Portageboom kan in verschillende branches zitten. Standaard
accepteert uw systeem alleen pakketten die Gentoo stabiel acht. De
meeste nieuwe softwaretitels zitten nadat ze worden toegevoegd in de testing
branch, wat betekent dat er meer getest moet worden voordat ze stabiel worden
bevonden. Hoewel u de ebuilds wel zult zien in de Portageboom, zal Portage ze
niet updaten voordat ze in de stable branch worden gezet.
Bepaalde software is slechts beschikbaar voor enkele architecturen. Of de
software werkt niet op andere architecturen of het moet verder getest worden of
de ontwikkelaar die de software in de Portageboom heeft gezet kan niet
controleren of de software op andere architecturen werkt.
Iedere Gentoo installatie volgt een bepaald profiel wat, onder andere,
de lijst met voor het systeem noodzakelijke software bevat.
Blokkerende pakketten
Codevoorbeeld 4.1: Portage waarschuwing over blokkerende pakketten (met --pretend) |
[blocks B ] mail-mta/ssmtp (is blocking mail-mta/postfix-2.2.2-r1)
|
Codevoorbeeld 4.2: Portage waarschuwing over blokkerende pakketten (zonder --pretend) |
!!! Error: the mail-mta/postfix package conflicts with another package.
!!! both can't be installed on the same system together.
!!! Please use 'emerge --pretend' to determine blockers.
|
Ebuilds bevatten specifieke velden die Portage vertellen over zijn
afhankelijkheden. Er zijn twee mogelijke afhankelijkheden: build
afhankelijkheden, bepaald in DEPEND en run-time (draai) afhankelijkheden,
bepaald in RDEPEND. Als een van deze afhankelijkheden uitdrukkelijk een
pakket of virtual als niet compatibel markeert, volgt er een blokkade.
Om een blokkade op te lossen, kunt u kiezen om het pakket niet te installeren of
het pakket wat problemen geeft te unmergen. In het gegeven voorbeeld kunt u
kiezen om postfix niet te installeren of ssmtp eerst te
verwijderen.
Het is ook mogelijk dat twee pakketten twee pakketten die u wilt installeren
elkaar blokkeren. In dit uitzonderlijke geval kunt het beste kijken of u wel
echt beide pakketten nodig heeft of ook met slechts één van de twee verder
kunt. Zo niet, vul dan een bugrapport in op
Gentoo's bugtracking systeem.
Verborgen pakketten
Codevoorbeeld 4.3: Portage waarschuwing over verborgen pakketten |
!!! all ebuilds that could satisfy "bootsplash" have been masked.
|
Codevoorbeeld 4.4: Portage waarschuwing over verborgen pakketten - reden |
!!! possible candidates are:
- gnome-base/gnome-2.8.0_pre1 (masked by: ~x86 keyword)
- lm-sensors/lm-sensors-2.8.7 (masked by: -sparc keyword)
- sys-libs/glibc-2.3.4.20040808 (masked by: -* keyword)
- dev-util/cvsd-1.0.2 (masked by: missing keyword)
- media-video/ati-gatos-4.3.0 (masked by: package.mask)
- sys-libs/glibc-2.3.2-r11 (masked by: profile)
|
Wanneer u een pakket wil installeren dat niet voor uw systeem beschikbaar is,
zult u een foutmelding zien. U kunt een andere applicatie die wel voor u
beschikbaar is installeren of wachten tot het pakket wel voor u
beschikbaar komt. Er is altijd een reden waarom een pakket verborgen is:
-
~arch keyword betekent dat de applicatie niet voldoende is getest om
in de stabiele branch gezet te worden. Wacht een paar dagen of weken en
probeer het opnieuw.
-
-arch keyword of -* keyword betekent dat de applicatie niet
werkt op uw architectuur. Als u gelooft dat het pakket prima werkt, vul
dan een bug in op onze bugzilla
website. Doe dit alstublieft wel in het Engels.
-
missing keyword betekent dat de applicatie nog niet op uw
architectuur is getest. Vraag het architectuur porting team om het te
testen of test het pakket voor ze en vertel uw bevindingen op onze bugzilla website. Ook dit graag in het
Engels.
-
package.mask betekent dat het pakket corrupt, onstabiel (of erger)
bevonden is en daarom met opzet verborgen is, gebruik dit dus niet.
-
profile betekent dat het pakket niet geschikt bevonden is voor uw
profiel. De applicatie kan uw systeem beschadigen als u het installeert of
het is gewoon niet compatibel met het door u gebruikte profiel.
Afwezige afhankelijkheden
Codevoorbeeld 4.5: Portage waarschuwing over afwezige afhankelijkheden |
emerge: there are no ebuilds to satisfy ">=sys-devel/gcc-3.4.2-r4".
!!! Problem with ebuild sys-devel/gcc-3.4.2-r2
!!! Possibly a DEPEND/*DEPEND problem.
|
De applicatie die u probeert te installeren steunt op een ander pakket dat niet
beschikbaar is voor uw systeem. Controleer bugzilla of het bekend is en zo niet, meldt
het dan alstublieft. Tenzij u branches combineert zou dit niet voor mogen komen
en is dus een bug.
Overkoepelende ebuild naam
Codevoorbeeld 4.6: Portage waarschuwing over overkoepelende ebuild namen |
!!! The short ebuild name "aterm" is ambiguous. Please specify
!!! one of the following fully-qualified ebuild names instead:
dev-libs/aterm
x11-terms/aterm
|
De applicatie die u probeert te installeren heeft een naam die overeenkomt met
andere pakketten. U dient de categorienaam ook op te geven. Portage zal u
meerdere opties geven waaruit u kunt kiezen.
Circulaire afhankelijkheden
Codevoorbeeld 4.7: Portage waarschuwing over Circulaire afhankelijkheden |
!!! 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
|
Twee (of meer) pakketten die u wilt installeren hangen af van elkaar en kunnen
daarom niet geïnstalleerd worden. Dit is zeer waarschijnlijk een fout in de
Portageboom. Resync na een tijdje en probeer het opnieuw. U kunt ook op bugzilla kijken of het een bekend probleem
is, zo niet, vertel het ons dan alstublieft. Ook nu weer graag in het Engels.
Fetch faalde
Codevoorbeeld 4.8: Portage waarschuwing over fetch failed |
!!! Fetch failed for sys-libs/ncurses-5.4-r5, continuing...
!!! Some fetch errors were encountered. Please see above for details.
|
Portage was niet in staat om de broncode van de gegeven applicatie te
downloaden en zal (indien mogelijk) proberen door te gaan met andere applicaties
te installeren. Deze fout kan ontstaan doordat een mirror nog niet volledig
gesynchroniseerd is of omdat de ebuild naar de verkeerde locatie verwijst. De
server waar de broncodes staan kan ook om een of andere reden down zijn.
Probeer het na een uur opnieuw om te zien of het probleem nog steeds bestaat.
Systeem profiel beveiliging
Codevoorbeeld 4.9: Portage waarschuwing over profiel-beveiligde pakketten |
!!! Trying to unmerge package(s) in system profile. 'sys-apps/portage'
!!! This could be damaging to your system.
|
U heeft gevraagd om een pakket wat deel uitmaakt van de hoofd pakketten
van uw systeem te verwijderen. Het staat in uw profiel als noodzakelijk en zou
daarom niet van uw systeem verwijderd moeten worden.
2. USE variabelen
2.a. Wat zijn USE vlaggen?
Het idee achter USE vlaggen
Als u Gentoo (of een willekeurige andere distributie, of zelfs
besturingssysteem) installeert, maakt u, afhankelijk van de bestemming ervan,
keuzes. Een setup voor een server verschilt van een setup voor een workstation.
Een spelletjes-pc verschilt van een 3D-rendering workstation.
Dit is niet alleen waar voor de keuzes qua pakketten die u wilt installeren,
maar ook welke mogelijkheden een bepaald pakket moet hebben. Als u geen OpenGL
nodig heeft, waarom zou u dan OpenGL willen installeren en OpenGL-ondersteuning
in de meeste van uw pakketten bouwen? Als u geen KDE wilt gebruiken, waarom zou
u pakketten willen compileren met KDE-ondersteuning terwijl ze perfect zonder
werken?
Om u te helpen kiezen wat wel en wat niet te installeren en activeren,
willen we u op een eenvoudige manier uw omgeving laten definiëren. Dit dwingt
u een keuze te maken wat u echt wilt en maakt het voor Portage, ons
pakketbeheersysteem, makkelijker om nuttige beslissingen te maken.
Definitie van een USE vlag
Voer de USE vlaggen in. Zo'n vlag is een sleutelwoord dat staat voor de
ondersteunings- en afhankelijkheidsinformatie voor een bepaald concept. Als u
een bepaalde USE-vlag definieert, zal Portage weten dat u ondersteuning voor
het gekozen sleutelwoord wil. Natuurlijk verandert dit ook de
afhankelijkheden van een pakket.
Laten we kijken naar een specifiek voorbeeld: het kde sleutelwoord. Als
u dit sleutelwoord niet in uw USE variabele hebt, zullen alle pakketten
met optionele KDE-ondersteuning zonder KDE-ondersteuning
gecompileerd worden. Alle pakketten met een optionele KDE-afhankelijkheid
zullen zonder de KDE-bibliotheken (als afhankelijkheid) geïnstalleerd
worden. Als u het kde sleutelwoord wel gebruikt, zullen die pakketten
wel met KDE-ondersteuning gecompileerd worden, en de KDE-bibliotheken
zullen als afhankelijkheid geïnstalleerd worden.
Door de sleutelwoorden op de correcte wijze te kiezen, kunt u een systeem
krijgen dat precies aan uw eisen voldoet.
Welke USE vlaggen bestaan?
Er zijn twee typen USE vlaggen: globale en lokale USE vlaggen.
-
Een globale USE vlag wordt door meerdere pakketten gebruikt, over
het hele systeem. Dit is wat de meeste mensen als een USE vlag zien.
-
Een lokale USE vlag wordt gebruikt door één enkel pakket om
pakket specifieke keuzes te maken.
Een lijst met beschikbare globale USE vlaggen kan online (Engelstalig) of lokaal in
/usr/portage/profiles/use.desc worden gevonden.
Een lijst met beschikbare lokale USE vlaggen kan worden gevonden in
/usr/portage/profiles/use.local.desc.
2.b. USE vlaggen gebruiken
Permanente USE vlaggen vaststellen
In de hoop dat u overtuigd bent van het belang van USE vlaggen, zullen we u
nu vertellen hoe u USE vlaggen definieert.
Zoals eerder vermeld, alle USE vlaggen zijn gedefinieerd binnen de
USE variabele. Om het voor gebruikers makkelijker te maken om
USE vlaggen te kiezen, bieden we een standaard USE-instelling.
Deze instelling is een verzameling van USE vlaggen waarvan wij denken dat ze
algemeen gebruikt worden door Gentoo-gebruikers. Deze standaardinstelling is
vastgesteld in de make.defaults bestanden, die deel uitmaken
van uw profiel.
Naar het profiel waarnaar u systeem luistert, wordt verwezen door de
/etc/make.profile symlink. Ieder profiel werkt boven een ander,
groter, profiel wat resulteert in een optelsom van alle profielen. Het bovenste
profiel is het basis-profiel
(/usr/portage/profiles/base).
Laten we een blik werpen op deze standaard instelling:
Codevoorbeeld 2.1: Cumulatieve make.defaults USE variabele voor het 2004.3 profiel |
USE="x86 oss apm arts avi berkdb bitmap-fonts crypt cups encode fortran f77
foomaticdb gdbm gif gpm gtk imlib jpeg kde gnome libg++ libwww mad
mikmod motif mpeg ncurses nls oggvorbis opengl pam pdflib png python qt
quicktime readline sdl spell ssl svga tcpd truetype X xml2 xmms xv zlib"
|
Zoals u kunt zien bevat deze variabele al een redelijk aantal sleutelwoorden.
Verander geen make.defaults bestand om de USE
variabele naar uw wens aan te passen: veranderingen worden ongedaan gemaakt
zodra u Portage update!
Om deze standaard instelling aan te pasen, dient u sleutelwoorden toe te voegen
of te verwijderen uit de USE variabele. Dit wordt globaal gedaan door de
USE variabele in /etc/make.conf te definiëren. In deze
variabele kunt u benodigde extra USE vlaggen toevoegen, of ongewenste
USE vlaggen verwijderen. Dit laatste wordt gedaan door een min-teken ("-") voor
het sleutelwoord te zetten.
Om bijvoorbeeld ondersteuning voor KDE en QT te verwijderen maar ondersteuning
voor ldap toe te voegen, kan de volgende USE vastgesteld worden in
/etc/make.conf:
Codevoorbeeld 2.2: Een voorbeeld USE instelling in /etc/make.conf |
USE="-kde -qt ldap"
|
USE vlaggen voor individuele pakketten
Soms wilt u een bepaalde USE-vlag voor een (of een paar) applicaties
vaststellen, maar niet voor het hele systeem. Om dit te bereiken, zult u de map
/etc/portage moeten aanmaken (indien deze nog niet bestaat) en
/etc/portage/package.use aanpassen.
Wanneer u bijvoorbeeld globaal geen ondersteuning wilt voor berkdb, maar
u wilt wel dat mysql het ondersteunt, kunt u dit toevoegen:
Codevoorbeeld 2.3: /etc/portage/package.use voorbeeld |
dev-db/mysql berkdb
|
U kunt natuurlijk ook expliciet USE vlaggen uit zetten voor een bepaalde
applicatie. Bijvoorbeeld, indien u geen java ondersteuning in PHP wil:
Codevoorbeeld 2.4: /etc/portage/package.use tweede voorbeeld |
dev-php/php -java
|
Tijdelijk USE vlaggen vaststellen
Soms wilt u slechts één keer een bepaalde USE instelling gebruiken. In plaats
van twee keer /etc/make.conf aan te passen (instellen en weer er
uit halen), kunt u ook de USE variabele als omgevingsvariabele instellen.
Onthoud dat de veranderingen verloren gaan wanneer u deze applicatie remerget
of update (expliciet of als deel van een systeem update)!
Als voorbeeld zullen we tijdelijk java uit de USE instelling halen tijdens de
installatie van Mozilla.
Codevoorbeeld 2.5: USE als omgevings variabele gebruiken |
# USE="-java" emerge mozilla
|
Automatische USE vlaggen
Sommige pakketten voegen automatisch USE vlaggen toe wanneer u deze niet
expliciet uitschakeld. Een lijst van pakketten die automatisch USE vlaggen
toevoegen is te vinden in /etc/make.profile/use.defaults en in
de use.defaults bestanden van de onderliggende profielen.
Codevoorbeeld 2.6: Een stukje van /etc/make.profile/use.defaults |
gnome gnome-base/gnome
gtk x11-libs/gtk+
qt x11-libs/qt
kde kde-base/kdebase
motif x11-libs/openmotif
|
Prioriteiten
Natuurlijk is er een bepaalde voorrang die bepaalt welke USE-vlag ingesteld zal
staan. U wilt niet USE="-java" instellen om er dan achter te komen dat
java sowieso gebruikt wordt omdat er een instelling met een hogere
prioriteit is. De voorkeur voor de USE-instelling is op volgorde van prioriteit
(eerste heeft de laagste prioriteit):
-
Standaard USE instelling, vastgesteld in de make.defaults
bestanden die deel uitmaken van uw profiel
-
Geërfde USE instelling als een pakket uit
/etc/make.profile/use.defaults geïnstalleerd is.
-
Door de gebruiker ingestelde USE instelling in /etc/make.conf
-
Door de gebruiker ingestelde USE instelling in
/etc/portage/package.use
-
Door de gebruiker als omgevingsvariabele ingestelde USE instelling
Om de uiteindelijke USE instelling te zien zoals Portage die ziet, draai
emerge --info. Dit zal alle relevante variabelen met hun inhoud laten
zien (inclusief de USE variabele).
Codevoorbeeld 2.7: Emerge --info draaien |
# emerge --info
|
Uw hele systeem aanpassen aan nieuwe USE vlaggen
Als u de USE vlaggen hebt aangepast en u wilt het hele systeem updaten zodat
de nieuwe USE vlaggen worden gebruikt, gebruik dan emerge's
--newuse optie:
Codevoorbeeld 2.8: Je hele systeem updaten |
# emerge --update --deep --newuse world
|
Draai nu Portage's depclean om de voorwaardelijke afhankelijkheden die zijn
gemerged op uw "oude" systeem, maar nu niet meer nodig zijn, te verwijderen.
Waarschuwing:
emerge --depclean draaien is een gevaarlijke operatie en dient met zorg
behandeld te worden. Double-check de lijst met "oude" pakketten om er zeker van
te zijn dat het geen benodigde pakketten verwijdert. In het volgende voorbeeld
voegen we de -p optie toe zodat hij alleen de lijst met pakketten geeft
zonder ze te verwijderen.
|
Codevoorbeeld 2.9: Oude pakketten verwijderen |
# emerge -p --depclean
|
Als depclean klaar is, draai revdep-rebuild om applicaties te herbouwen
die dynamisch gelinkt zijn met gedeelde objecten die mogelijk werden geleverd
door verwijderde pakketten. revdep-rebuild is een deel van het
gentoolkit pakket; vergeet dit niet eerst te emergen.
Codevoorbeeld 2.10: Revdep-rebuild draaien |
# revdep-rebuild
|
Als dit klaar is, gebruikt uw systeem de nieuwe USE vlag instellingen.
2.c. Pakket specifieke USE vlaggen
Beschikbare USE vlaggen bekijken
Laten we het voorbeeld van mozilla nemen: naar welke USE vlaggen
luistert het? Om dit uit te vinden gebruiken we emerge met de
--pretend en --verbose opties:
Codevoorbeeld 3.1: De gebruikte USE vlaggen bekijken |
# emerge --pretend --verbose mozilla
These are the packages that I would merge, in order:
Calculating dependencies ...done!
[ebuild R ] www-client/mozilla-1.7.12-r2 USE="crypt gnome java mozsvg ssl
truetype xprint -debug -ipv6 -ldap -mozcalendar -mozdevelop -moznocompose
-moznoirc -moznomail -moznoxft -postgres -xinerama" 0 kB
|
emerge is niet het enige gereedschap voor deze job. Sterker nog, we
hebben een speciale tool om pakketinformatie te zien. Deze heet equery
en is onderdeel van het gentoolkit pakket. Installeer eerst
gentoolkit:
Codevoorbeeld 3.2: Gentoolkit installeren |
# emerge gentoolkit
|
Draai nu equery met het uses argument om de USE vlaggen van een
bepaald pakket te zien. Voor het gnumeric pakket bijvoorbeeld:
Codevoorbeeld 3.3: Etcat gebruiken om de gebruikte USE vlaggen te zien |
# equery uses gnumeric
[ Colour Code : set ]
[ Legend : (U) Col 1 - Current USE flags ]
[ : (I) Col 2 - Installed With USE flags ]
U I [ Found these USE variables in : app-office/gnumeric-1.2.0 ]
- - : Adds GNU Data Access (CORBA wrapper) support for gnumeric
- - : unknown
+ + python : Adds support/bindings for the Python language
+ + bonobo : Adds support for gnome-base/bonobo (Gnome CORBA interfaces)
|
3. Functionaliteiten van Portage
3.a. De Portage Functies
Portage heeft verschillende functies die uw Gentoo-ervaring nog beter kunnen
maken. Veel van deze functies zijn afhankelijk van softwaretools die onder
andere de prestaties, de betrouwbaarheid en de veiligheid verbeteren.
Om bepaalde Portage-functies in of uit te schakelen moet de FEATURES
variabele in /etc/make.conf gewijzigd worden. Deze bevat de
verschillende feature keywords, gescheiden door een spatie. In enkele gevallen
moet ook software geïnstalleerd worden waar de functie afhankelijk van is.
Niet alle functies die Portage ondersteunt, worden hier besproken. Raadpleeg
voor een volledig overzicht de make.conf manpage:
Codevoorbeeld 1.1: De make.conf manpage raadplegen |
$ man make.conf
|
Voer emerge --info uit om te achterhalen welke FEATURES standaard
ingeschakeld zijn en zoek naar de FEATURES-variabele. Of gebruik grep om
de FEATURES variabele eruit te filteren:
Codevoorbeeld 1.2: Uitvinden welke FEATURES momenteel ingeschakeld zijn |
$ emerge --info | grep FEATURES
|
3.b. De compilaties verdelen
distcc gebruiken
distcc is een programma om te compileren bestanden te verdelen over
meerdere, niet perse identieke, computers in een netwerk. De distcc
client zendt alle nodige informatie naar de beschikbare distcc-servers
(distccd) zodat deze delen van de broncode kunnen compileren voor de
client. Het resultaat is een kortere compileertijd.
Meer informatie over distcc (en het met Gentoo laten werken) is te
vinden in onze Gentoo Distcc Documentatie
(Engelstalig).
Distcc installeren
Distcc wordt geleverd met een grafische schil om te kunnen zien welke taken
door de computer worden verzonden om gecompileerd te worden. Als u Gnome
gebruikt, dan kunt u 'gnome' in uw USE variabele opnemen. Als u geen Gnome
gebruikt en toch graag de grafische schil wilt gebruiken zult u 'gtk' in de
USE variabele op moeten nemen.
Codevoorbeeld 2.1: Distcc installeren |
# emerge distcc
|
Portage ondersteuning activeren
Voeg distcc toe aan de FEATURES variabele in
/etc/make.conf. Pas daarna de MAKEOPTS variabele aan naar eigen
wens. Een vuistregel zegt "-jX" in te vullen, waarbij X het aantal CPU's is
waarop distccd draait (inclusief de huidige host) plus een. Maar het
zou kunnen zijn dat betere resultaten behaald worden met andere getallen.
Start nu distcc-config en vul de lijst met beschikbare distcc-servers in.
Als simpel voorbeeld nemen we aan dat de beschikbare distcc-servers
192.168.1.102 (de huidige host), 192.168.1.103 en 192.168.1.104 (twee "remote"
hosts) zijn:
Codevoorbeeld 2.2: Distcc configureren om drie distcc servers te gebruiken |
# distcc-config --set-hosts "192.168.1.102 192.168.1.103 192.168.1.104"
|
Vergeet niet om zelf ook de distccd deamon te starten:
Codevoorbeeld 2.3: De distccd daemon starten |
# rc-update add distccd default
# /etc/init.d/distccd start
|
3.c. Compileren met gebruik van cache
Over ccache
ccache is een snelle compiler cache. Wanneer een programma gecompileerd
wordt, zal het de resultaten cachen zodat iedere keer dat hetzelfde programma
opnieuw gecompileerd wordt, de compileertijd flink gereduceerd wordt. Over het
algemeen kan dit resulteren in 5 tot 10 maal snellere compilaties.
Als u geïnteresseerd bent in de ins en outs van ccache, bezoek dan de
ccache homepage (Engelstalig).
Ccache installeren
Voer emerge ccache uit om ccache te installeren:
Codevoorbeeld 3.1: Ccache installeren |
# emerge ccache
|
Portage-ondersteuning activeren
Open /etc/make.conf en voeg ccache toe aan de
FEATURES variabele. Voeg daarna een nieuwe variabele toe met de naam
CCACHE_SIZE en geef deze de waarde "2G":
Codevoorbeeld 3.2: CCACHE_SIZE instellen /etc/make.conf |
CCACHE_SIZE="2G"
|
Om ccache-functies te controleren, kunnen er statistieken opgevraagd worden,
maar omdat Portage een andere ccache map gebruikt dan de standaard ccache
installatie, moet u de CCHACHE_DIR variabele gebruiken:
Codevoorbeeld 3.3: Ccache statistieken bekijken |
# CCACHE_DIR="/var/tmp/ccache" ccache -s
|
De map /var/tmp/ccache is de standaard ccache lokatie voor
Portage; wanneer u dit wilt veranderen, kunt u de variabele CCACHE_DIR
toevoegen in /etc/make.conf.
Wanneer u echter ccache buiten Portage om gebruikt, wordt de standaard
lokatie ${HOME}/.ccache gebruikt. Daarom moet u de variabele
CCACHE_DIR ingeven wanneer u de (Portage-)ccache statistieken wilt zien.
Ccache gebruiken voor niet-Portage-compilaties
Om ccache te gebruiken voor niet-Portage-compilaties, dient
/usr/lib/ccache/bin aan het begin van de PATH-variabele opgenomen
te worden (voor /usr/bin). Dit kan bereikt worden door
/etc/env.d/00basic aan te passen, omdat dit het eerste bestand is
dat wordt gebruikt om de PATH variabele te definieren:
Codevoorbeeld 3.4: /etc/profile aanpassen |
PATH="/usr/lib/ccache/bin:/opt/bin"
|
3.d. Ondersteuning voor binaire pakketten
Binaire pakketten maken
Portage ondersteunt de installatie van binaire pakketten. Hoewel Portage zelf
niet voorziet in binaire pakketten (afgezien van de GRP-snapshots) kan Portage
er wel mee omgaan.
Om een binair pakket te maken, kan voor reeds geïnstalleerde pakketten gebruik
worden gemaakt van quickpkg. Als het pakket nog niet geïnstalleerd is,
kan emerge met behulp van de --buildpkg of --buildpkgonly
opties een binair pakket gemaakt worden.
Om van elk pakket dat geïnstalleerd wordt een binair pakket te maken, kan
buildpkg aan de FEATURES-variabele toegevoegd worden.
Meer uitgebreide ondersteuning voor het maken van binaire pakketten kan worden
verkregen met catalyst. Voor meer informatie over catalyst, lees de Catalyst Reference Manual
(Engelstalig) en de Catalyst
Veelgestelde Vragen (Engelstalig).
Binaire pakketten installeren
Hoewel Gentoo er geen biedt, kan er een centrale plaats aangemaakt worden waar
de binaire pakketten opgeslagen worden. Om Portage hiervan op de hoogte te
stellen, dient de variabele PORTAGE_BINHOST te verwijzen naar deze plek. Als
bijvoorbeeld de binaire pakketten zich op ftp://buildhost/gentoo bevinden:
Codevoorbeeld 4.1: PORTAGE_BINHOST in /etc/make.conf instellen |
PORTAGE_BINHOST="ftp://buildhost/gentoo"
|
Om een binair pakket te installeren moet de --getbinpkg optie na de
--usepkg optie aan het emerge-commando meegegeven worden. De eerste
vertelt emerge om het binaire pakket te downloaden van de eerder ingestelde
server. De laatste vraagt emerge om eerst te proberen een binair pakket te
installeren voordat de broncode gedownload en gecompileerd wordt.
Om bijvoorbeeld gnumeric met een binair pakket te installeren:
Codevoorbeeld 4.2: Het gnumeric binaire pakket installeren |
# emerge --usepkg --getbinpkg gnumeric
|
Meer informatie over emerge's binaire pakket mogelijkheden kan gevonden worden
in de manpage van emerge:
Codevoorbeeld 4.3: De emerge manpage lezen |
$ man emerge
|
4. Initialisatie scripts
4.a. Runlevels
Het starten van het Systeem
Als uw systeem opstart, ziet u steeds regels tekst voorbij schieten.
Wanneer u heel goed kijkt, zult u zien dat deze tekst steeds dezelfde zijn.
De volgorde waarin alles voorbij komt wordt de boot sequence genoemd,
is ligt (min of meer) vast.
Allereerst laadt uw bootloader de kernel image die u hebt aangegeven in het
configuratie bestand in het geheugen. Daarna vertelt het de processor om de
kernel uit te voeren. Wanneer de kernel is geladen en uitgevoerd, worden alle
kernel specifieke onderdelen en taken geïnitialiseerd en wordt het init
proces gestart.
Dit proces zorgt ervoor dat alle bestandssystemen (als gedefinieerd in
/etc/fstab) aangekoppeld en klaar gemaakt worden. Daarna
voert het verschillende scripts uit die terug te vinden zijn in
/etc/init.d. Deze scripts starten de hulpmiddelen die nodig
zijn om uw systeem volledig te starten.
Als alle scripts zijn uitgevoerd, activeert init de terminals
(in de meeste gevallen alleen de consoles die achter Alt-F1,
Alt-F2, etc zijn verborgen) met agetty dat als toepassing
wordt mee gestart, zodat u kunt inloggen via login.
Init Scripts
Echter, init voert de scripts in /etc/init.d niet in
willekeurige volgorde uit. Sterker nog, het voert alleen de scripts in
/etc/init.d uit die uitgevoerd moeten worden. Het bepaalt welke
scripts dat zijn door te kijken naar /etc/runlevels.
Als eerste voert init de scripts uit in /etc/init.d met
een symlink naar /etc/runlevels/boo. Meestal worden de scripts
in alfabetische volgorde gestart, maar sommige scripts hebben informatie
bijgevoegd waarin staat dat een ander script gestart moet zijn voordat
zijzelf kunnen starten.
Wanneer alles met een link naar /etc/runlevels/boot is gestart,
gaat init verder met de scripts met een symlink naar
/etc/runlevels/default. Ook deze worden in alfabetische volgorde
gestart, tenzij een script vraagt om een ander script eerder te starten, waarna
de volgorde wordt verandert.
Hoe Init Werkt
Natuurlijk kan init dit niet allemaal zelf. Het heeft een configuratie
bestand nodig waarin staat wat er moet gebeuren. Dit configuratie bestand is
/etc/inittab.
Als u zich de boot volgorde nog kunt herinneren, dan weet u dat init
eerst alle bestandssystemen aankoppelt. Dit wordt bepaald door de volgende
regel in /etc/inittab:
Codevoorbeeld 1.1: De initialisatie regel in /etc/inittab |
si::sysinit:/sbin/rc sysinit
|
Deze regel laat init sbin/rc sysinit draaien om het systeem te
initialiseren. Het /sbin/rc script zorgt voor de initialisatie,
dus eigenlijk doet init zelf niet zo veel -- het besteed de taak
van het initialiseren uit aan een andere toepassing.
Hierna voert init dus de scripts met symlinks naar
/etc/runlevels/boot uit. Dit wordt bepaald door de volgende regel:
Codevoorbeeld 1.2: Verder met het systeem initialiseren |
rc::bootwait:/sbin/rc boot
|
Hier voert eigenlijk rc de benodigde taken uit. Het valt misschien op
dat de optie bij rc (boot) hetzelfde is als de submap van
/etc/runlevels.
Nu checkt init het configuratie bestand om te bepalen welke
runlevel het moet draaien. Hiervoor lijst het de volgende regel in
/etc/inittab:
Codevoorbeeld 1.3: De initdefault regel |
id:3:initdefault:
|
In de meeste gevallen (dus voor het overgrote deel van de Gentoo gebruikers) zal
het runlevel hier het nummer 3 zijn. Daarom zal init nu
kijken wat er gestart moet worden in runlevel 3:
Codevoorbeeld 1.4: De definities voor de runlevels |
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
|
De regel die runlevel 3 definieert, roept opnieuw het rc script aan om
toepassingen te starten (nu met het argument default). Ook hier is het
argument bij rc gelijk aan de naam van de submap van
/etc/runlevels.
Wanneer rc klaar is, bepaalt init welke consoles geactiveerd
worden en welke commando's gegeven moeten worden in die consoles:
Codevoorbeeld 1.5: De definities voor de consoles |
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
|
Wat is een runlevel?
U hebt nu kunnen zien dat init een genummerde lijst gebruikt om te
bepalen welk runlevel als eerste wordt geactiveerd. Een runlevel
is een vooraf ingestelde staat waarin uw systeem draait en bevat enkele scripts
(runlevel scripts of initscripts) die moeten worden uitgevoerd wanneer
u het runlevel start of beëindigt.
Binnen Gentoo zijn zeven runlevels gedefinieerd: drie interne runlevels, en
vier gebruikersrunlevels. De interne runlevels zijn sysinit,
shutdown en reboot en doen wat hun name impliceert:
respectievelijk het systeem initialiseren, afsluiten en herstarten.
De gebruikersrunlevels hebben een /etc/runlevels submap:
boot, default, nonetwork en
single. Het boot runlevel start alle systeem
toepassingen, die door de andere runlevels gebruikt worden. De drie andere
runlevels verschillen door welke toepassingen ze starten: default
wordt gebruikt voor dagelijkse toepassingen, nonetwork indien
er geen netwerk wordt gebruikt, en single wanneer het systeem
gerepareerd moet worden.
Werken met de Init Scripts
De scripts die door rc worden gestart noemen we init scripts.
Elk script in /etc/init.d kan worden uitgevoerd met de argumenten
start, stop, restart, pause, zap,
status, ineed, iuse, needsme, usesme of
broken.
Om een toepassing te starten, stoppen or herstarten (inclusief afhankelijke
toepassingen), kunt u start, stop en restart gebruiken:
Codevoorbeeld 1.6: Start Postfix |
# /etc/init.d/postfix start
|
Nota:
Alleen wanneer een toepassing een andere toepassing nodig heeft, wordt
deze opnieuw gestart of gestopt. Toepassingen die een andere toepassing blijven
gewoon draaien.
|
Wanneer u een toepassing wilt stoppen, maar de toepassingen die er op steunen
niet, dan kunt u het pause argument gebruiken:
Codevoorbeeld 1.7: Postfix stoppen, maar de afhankelijke toepassingen laten door draaien |
# /etc/init.d/postfix pause
|
Wanneer u wilt zien wat de status van een toepassing is (gestart, gestopt,
gepauzeerd, ...), kunt u status gebruiken:
Codevoorbeeld 1.8: Status van postfix opvragen |
# /etc/init.d/postfix status
|
Als de informatie aangeeft dat de toepassing draait, maar u weet zeker dat het
niet zo is, dan kunt u de status informatie resetten met behulp van het
zap argument:
Codevoorbeeld 1.9: Resetten van de status voor postfix |
# /etc/init.d/postfix zap
|
Om te kunnen zien welke afhankelijkheden een toepassing heeft, kunt u
iuse of ineed gebruiken. Met ineed kunt u zien welke
toepassing nodig zijn om correct te kunnen functioneren. iuse geeft
aan welke toepassing gebruikt kunnen worden, maar niet nodig zijn voor
het correct functioneren.
Codevoorbeeld 1.10: Een lijst met benodigde toepassing opvragen voor postfix |
# /etc/init.d/postfix ineed
|
Op dezelfde manier kunt u opvragen welke toepassing een bepaalde toepassing
gebruiken (needsme) of kunnen gebruiken (usesme):
Codevoorbeeld 1.11: Een lijst met toepassing opvragen die postfix nodig hebben |
# /etc/init.d/postfix needsme
|
Als laatste kunt u opvragen welke afhankelijkheden een toepassing nodig heeft
en mist:
Codevoorbeeld 1.12: Een lijst met missende afhankelijkheden opvragen voor postfix |
# /etc/init.d/postfix broken
|
4.b. Werken met rc-update
Wat is rc-update?
Gentoo's init systeem gebruikt een lijst met afhankelijkheden om te bepalen
welke toepassing als eerste moet worden gestart. Aangezien dit een
arbeidsintensieve taak is, willen we u als gebruiker dit niet handmatig laten
doen. Daarom hebben we hulpprogramma's ontwikkeld die het beheer van runlevels
en init scripts vergemakkelijken.
Met rc-update kunt u init scripts toevoegen en verwijderen bij een
runlevel. Het rc-update programma zal steeds automatisch het
depscan.sh script de lijst met afhankelijkheden laten updaten.
Het toevoegen en verwijderen van toepassingen
Tijdens de installatie hebt u al init scripts toegevoegd aan het "default"
runlevel. Toen wist u misschien nog niet waar "default" voor stond, maar dat
zou u nu moeten weten. Het rc-update script heeft een tweede argument
nodig, dat de actie definieert: add, del of show.
Om een init script toe te voegen of te verwijderen, voegt u gewoon add
of del als optie toe aan rc-update. Dit wordt gevolgd door het
te gebruike init script en het aan te passen runlevel. Bijvoorbeeld:
Codevoorbeeld 2.1: Postfix verwijderen uit het default runlevel |
# rc-update del postfix default
|
Het rc-update show commando geeft u alle beschikbare init scripts en een
lijst van de runlevels waarin zij draaien:
Codevoorbeeld 2.2: Init script informatie opvragen |
# rc-update show
|
4.c. Toepassingen configureren
Waarom extra configuraties?
Init scripts kunnen redelijk complex zijn. Daarom is het niet echt wenselijk
dat gebruikers de scripts direct moeten aanpassen, de kans op fouten is
gewoonweg te groot. Het is echter wel belangrijk om een toepassing te kunnen
configureren. U kunt bijvoorbeeld extra opties aan een toepassing willen
toevoegen.
Een tweede reden voor configuratie buiten het init script om, is om de
mogelijkheid te hebben init scripts te updaten zonder uw configuratie
kwijt te raken.
De /etc/conf.d map
Gentoo heeft een simpele manier om toepassingen te configureren: elk init script
heeft een configuratiebestand in /etc/conf.d. Het apache2 init
script (/etc/init.d/apach2 heeft bijvoorbeeld een
configuratiebestand /etc/conf.d/apache2, waarmee u verschillende
opties aan de Apache2 server kunt meegeven, als deze wordt gestart:
Codevoorbeeld 3.1: Variabele in /etc/conf.d/apache2 |
APACHE2_OPTS="-D PHP4"
|
Deze configuratiebestanden bevatten alleen variabelen (net als
/etc/make.conf, waardoor het gemakkelijk is om toepassingen te
configureren. Het geeft ons ook de mogelijkheid om meer informatie te geven
over de variabelen (als commentaar).
4.d. Init Scripts scrhijven
Moet ik dat doen?
Nee, het schrijven van een init script is normaal niet nodig, omdat Gentoo
voor alle toepassingen init scripts mee levert. Wanneer u echter een toepassing
installeert zonder Portage te gebruiken, is het heel goed waarschijnlijk dat u
wel zelf een init script moet schrijven.
Let op dat u niet het init script gebruikt dat door een toepassing zelf wordt
meegeleverd, indien dit niet speciaal voor Gentoo is geschreven: Gentoo's init
scripts zijn namelijk niet compatible met init scripts voor andere linux
distributies.
Indeling
De basis indeling van een init script wordt hieronder gegeven.
Codevoorbeeld 4.1: Basis indeling van een init script |
#!/sbin/runscript
depend() {
}
start() {
}
stop() {
}
restart() {
}
|
Elk init script moet een start() functie hebben. De andere delen
zijn niet verplicht.
Afhankelijkheden
Er zijn twee soorten afhankelijkheden die u kunt definiëren: use en
need. Zoals eerder uitgelegd, need is stricter dan use.
Met behulp van deze afhankelijkheden voert u de toepassing toe waar u van
afhankelijk bent, of de virtuele afhankelijkheid.
Een virtuele afhankelijkheid is een afhankelijkheid die door
verschillende toepassingen kan worden geleverd. Uw init script kan bijvoorbeeld
een systeem logger nodig hebben, maar er zijn meerdere systeem loggers
beschikbaar (metalogd, syslog-ng, sysklogd, ...). Aangezien u niet elke logger
afzonderlijk moet hebben (het is niet echt logisch om drie systeem
loggers te installeren), zorgen we er voor dat deze toepassingen een virtuele
afhankelijkheid leveren (provide).
We kijken naar de afhankelijkheden voor de postfix toepassing.
Codevoorbeeld 4.2: Afhankelijkheden voor Postfix |
depend() {
need net
use logger dns
provide mta
}
|
Zoals u kunt zien, geldt dat postfix:
-
de (virtuele) net afhankelijkheid nodig heeft (bijvoorbeeld
geleverd door /etc/init.d/net.eth0
-
de (virtuele) logger gebruikt (bijvoorbeeld geleverd door
/etc/init.d/syslog-ng)
-
de (virtuele) dns afhankelijkheid gebruikt (bijvoorbeeld geleverd
door /etc/init.d/named)
-
een (virtuele) mta afhankelijkheid levert (wat alle mail servers
doen)
De volgorde instellen
In sommige gevallen hebt u een toepassing niet direct nodig, maar wilt u de
toepassing starten voor (of na) een andere toepassing
indien de toepassing op het systeem aanwezig is (let op de voorwaarde
- dit is geen afhankelijkheid meer) en laten draaien in dezelfde
runlevel (let weer op de voorwaarde - er zijn alleen toepassingen in hetzelfde
runlevel bij betrokken). U kunt dit doen met before en after.
Als voorbeeld kijken we naar de instellingen van portmap:
Codevoorbeeld 4.3: De depend() functie in de Portmap toepassing |
depend() {
need net
before inetd
before xinetd
}
|
U kunt ook het sterretje "*" gebruiken om uw toepassing voor alle andere
toepassingen in hetzelfde runlevel te plaatsen, maar dit is niet aan te raden.
Codevoorbeeld 4.4: Het draaien van een init script als eerste in een runlevel |
depend() {
before *
}
|
Standaard functies
Naast de depend functie moet u ook de start functie definiëren.
Deze functie bevat alle commando's die nodig zijn om de toepassing te starten.
Het is verder aan te raden om de ebegin en eend functies te
gebruiken om te laten weten wat er gebeurt tijdens het uitvoeren van de
toepassing.
Codevoorbeeld 4.5: Voorbeeld start() functie |
start() {
ebegin "Starting my_service"
start-stop-daemon --start --quiet --exec /path/to/my_service
eend $?
}
|
Indien u meer voorbeelden nodig hebt van de start() functie, kunt u de
init scripts uit de map /etc/init.d er op na slaan. En voor de
start-stop-daemon is een goede handleiding beschikbaar, die u op elk
moment kunt bekijken voor meer informatie:
Codevoorbeeld 4.6: De handleiding voor de start-stop-daemon bekijken |
# man start-stop-daemon
|
Andere functies die u kunt gebruiken zijn: stop() en restart().
U bent echter niet verplicht deze functies aan te roepen! Het init systeem kan
zelf deze functies aanvullen wanneer u de start-stop-daemon gebruikt.
De Gentoo init script programmeertaal is gebaseerd op de Bourne Again Shell
(bash). U kunt daarom zonder meer bash commando's gebruiken in uw init script.
Eigen functies toevoegen
Wanneer u in uw init script andere functies wilt gebruiken dan de eerder
genoemde, kunt u die functie toevoegen via de variabele opts. U kunt
dan een functie maken met dezelfde naam, bijvoorbeeld om een functie
restartdelay te gebruiken:
Codevoorbeeld 4.7: De restartdelay functie aanmaken |
opts="${opts} restartdelay"
restartdelay() {
stop
sleep 3
start
}
|
Configuratie variabelen voor uw toepassing
U hoeft niets extra te doen om een configuratie bestand in de map
/etc/conf.d te kunnen gebruiken: wanneer uw init script wordt
gestart worden de volgende bestanden automatisch ingelezen:
- /etc/conf.d/<Uw init script>
- /etc/conf.d/basic
- /etc/rc.conf
Wanneer uw init script een virtuele afhankelijkheid bevat (zoals net)
zal het bestand dat hierbij hoort (in dit geval /etc/conf.d/net)
ook ingelezen worden.
4.e. Het gedrag van het runlevel veranderen
Wie hebben hier iets aan?
Veel laptop gebruikers zullen de volgende situatie herkennen: thuis wilt u
net.eth0 starten, maar onderweg wilt u het netwerk juist niet starten
(omdat er toch geen netwerk beschikbaar is). Binnen Gentoo kunt u het gedrag
van het runlevel daarom aanpassen naar uw eigen wensen.
U kunt bijvoorbeeld een tweede "default" runlevel aanmaken, met daarin andere
init scripts. U kunt dan tijdens het opstarten kiezen welk default runlevel u
wilt gebruiken.
Softlevel gebruiken
Allereerst maakt u een map aan voor uw tweede "default" runlevel. Hier maken
we als voorbeeld het runlevel offline aan:
Codevoorbeeld 5.1: Een map maken voor een runlevel |
# mkdir /etc/runlevels/offline
|
Nu kunt u de init scripts toevoegen die u wilt gebruiken in het nieuwe
runlevel. Een exacte kopie van uw huidige default runlevel, maar dan
zonder net.eth0 maakt u zo:
Codevoorbeeld 5.2: Het toevoegen van de juiste init scripts |
# 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 |
|
Nu kunt u het configuratie bestand van uw bootloader aanpassen en het runlevel
offline toevoegen. Voor Grub past u /boot/grub/grub.conf
aan:
Codevoorbeeld 5.3: Het runlevel offline toevoegen voor Grub |
title Gentoo Linux Offline Usage
root (hd0,0)
kernel (hd0,0)/kernel-2.4.25 root=/dev/hda3 softlevel=offline
|
En voilà, u bent klaar. U kunt nu tijdens het opstarten kiezen voor uw nieuwe
offline runlevel. Dit wordt dan gestart in plaats van default.
Bootlevel gebruiken
Het gebruik van bootlevel is gelijk aan softlevel. Het enige
verschil is dat u nu geen tweede runlevel "default" aanmaakt, maar een tweede
runlevel "boot".
5. Omgevingsvariabelen
5.a. Omgevingsvariabelen?
Wat zijn dat
Een omgevingsvariabele is een ding dat een naam heeft en informatie bevat die
wordt gebruikt door één of meer toepassingen. Veel gebruikers (met name degenen
die nieuw zijn binnen Linux) vinden dit vreemd en onhandig. Niets is minder
echter waar: door omgevingsvariabelen te gebruiken kunt u eenvoudig de
instellingen voor één of meer toepassingen veranderen.
Belangrijke voorbeelden
De onderstaande tabel laat enkele variabelen zien die een Linux systeem
gebruikt en geeft daar een korte uitleg bij. Voorbeelden van bruikbare waarden
zullen na de tabel worden gegeven.
| Variabele |
Beschrijving |
| PATH |
Deze variabele bestaat uit een lijst van mappen waarin een systeem zoekt
naar programma's. Wanneer u de naam van een programma in typt (zoals
ls, rc-update of emerge) en het programma staat niet
in de lijst, zal het programma niet worden uitgevoerd. Tenzij u natuurlijk
de volledig naam van de map en het programma opgeeft (zoals
/bin/ls).
|
| ROOTPATH |
Deze variabele doet hetzelfde als PATH, maar dan voor mappen die
worden doorzocht wanneer de root een commando intypt.
|
| LDPATH |
Deze variabele bevat de mappen waar wordt gezocht naar bibliotheken, door
de zogenaamde dynamische linker.
|
| MANPATH |
Deze variabele bevat een lijst met mappen waar het commando man
zoekt naar handleidingen.
|
| INFODIR |
Deze variabele bevat een lijst met mappen waar het commando info
zoekt naar info pagina's.
|
| PAGER |
Deze variabele bevat de verwijzing naar een programma dat de inhoud van
bestanden kan weergeven (zoals less of more).
|
| EDITOR |
Deze variabele bevat de verwijzing naar uw (favoriete) editor (zoals
nano of vi).
|
| KDEDIRS |
Deze variabele bevat een lijst met mappen die door KDE worden gebruikt.
|
| CLASSPATH |
Deze variabele bevat een lijst met mappen waarin Java classes zijn
opgeslagen.
|
| CONFIG_PROTECT |
Deze variabele bevat een lijst met mappen die beveiligd worden door Portage
tijdens updates (let op, spaties in plaats van dubbele punten).
|
| CONFIG_PROTECT_MASK |
Deze variabele bevat een lijst met mappen die niet beveiligd worden door
Portage tijden updates (let op, spaties in plaats van dubbele
punten).
|
Hieronder worden enkele voorbeelden gegeven voor deze variabelen:
Codevoorbeeld 1.1: Voorbeelden |
PATH="/bin:/usr/bin:/usr/local/bin:/opt/bin:/usr/games/bin"
ROOTPATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin"
LDPATH="/lib:/usr/lib:/usr/local/lib:/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3"
MANPATH="/usr/share/man:/usr/local/share/man"
INFODIR="/usr/share/info:/usr/local/share/info"
PAGER="/usr/bin/less"
EDITOR="/usr/bin/vim"
KDEDIRS="/usr"
CLASSPATH="/opt/blackdown-jre-1.4.1/lib/rt.jar:."
CONFIG_PROTECT="/usr/X11R6/lib/X11/xkb /opt/tomcat/conf \
/usr/kde/3.1/share/config /usr/share/texmf/tex/generic/config/ \
/usr/share/texmf/tex/platex/config/ /usr/share/config"
CONFIG_PROTECT_MASK="/etc/gconf"
|
5.b. Variabelen globaal definiëren
De map /etc/env.d
Om de definities bij elkaar te kunnen houden, heeft Gentoo de map
/etc/env.d. In deze map bevinden zich een aantal bestanden,
waaronder bijvoorbeeld 00basic en 05gcc, waarin
de variabelen voor de toepassing waar ze naar vernoemd zijn worden ingesteld.
Toen u gcc hebt geïnstalleerd is bijvoorbeeld het bestand
05gcc aangemaakt door de ebuild, met daarin de volgende
variabelen:
Codevoorbeeld 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"
|
Andere distributies hebben deze variabelen bijvoorbeeld in
/etc/profile. Gentoo maakt het eenvoudiger voor u (en voor
Portage) door zelf de omgevingsvariabelen bij te houden, zonder dat u de
verschillende bestanden moet aanpassen waarin omgevingsvariabelen kunnen staan.
Wanneer u gcc update wordt het bestand/etc/env.d/05gcc
automatisch ge-update, zonder dat u iets hoeft te doen.
Dit is niet alleen een voordeel voor Portage, maar ook voor uzelf. Toch moet
u soms zelf een omgevingsvariabele invoeren. Als voorbeeld nemen we hier de
variabele http_proxy. Deze kunt u eenvoudig definiëren door een bestand
/etc/env.d/99local aan te maken met de variabele daarin:
Codevoorbeeld 2.2: /etc/env.d/99local |
http_proxy="proxy.server.com:8080"
|
Wanneer u alle variabelen toevoegt in hetzelfde bestand zet, hebt u een
goed overzicht van de variabelen die u zelf instelt.
Het env-update Script
De verschillende bestanden in /etc/env.d definieren samen de
variabelePATH: op deze manier kunt u door env-update te draaien
de verschillende definities toevoegen, waardoor het eenvoudiger is voor
pakketten (en gebruikers) om hun eigen variabelen toe te voegen, zonder daarbij
met de reeds bestaande waarden aan te hoeven passen.
Het env-update script voegt de waarden in alfabetische volgorde toe. De
bestandsnamen moeten daarom beginnen met twee getallen.
Codevoorbeeld 2.3: Volgorde om toe te voegen door env-update |
00basic 99kde-env 99local
+-------------+----------------+-------------+
PATH="/bin:/usr/bin:/usr/kde/3.2/bin:/usr/local/bin"
|
Niet alle variabelen worden op de bovenstaande manier samengevoegd. Dit geldt
alleen voor: KDEDIRS, PATH, CLASSPATH, LDPATH,
MANPATH, INFODIR, INFOPATH, ROOTPATH,
CONFIG_PROTECT, CONFIG_PROTECT_MASK, PRELINK_PATH en
PRELINK_PATH_MASK. Voor de rest van de variabelen wordt de laatst
gedefinieerde waarde gebruikt die in /etc/env.d is gedefinieerd
(op alfabetische volgorde).
Wanneer u env-update draait, worden alle omgevingsvariabelen aangemaakt
en in het bestand /etc/profile.env geplaatst (wat dan gebruikt
wordt door /etc/profile). Het bestand /etc/ld.so.conf
wordt aangemaakt met de informatie uit LDPATH. Daarna wordt
ldconfig gedraaid om /etc/ld.so.cache overnieuw aan te maken,
voor gebruik door de dynamische linker.
Wanneer u direct gebruik wilt maken van de omgevingsvariabelen die door
env-update zijn toegevoegd, moet u het onderstaande commando uitvoeren.
Indien u Gentoo zelf hebt geïnstalleerd, herinnert u zich dit waarschijnlijk
nog wel uit de installatie instructies:
Codevoorbeeld 2.4: De omgevingsvariabelen updaten |
# env-update && source /etc/profile
|
Nota:
Het bovenstaande commando werkt alleen voor de variabelen in uw huidige
terminal en voor nieuwe consoles. Dus wanneer u X11 draait, moet u
in elke nieuwe terminal source /etc/profile draaien of X herstarten.
Wanneer u een login manager gebruikt kunt u /etc/init.d/xdm restart
draaien als root. Als u dit niet doet, moet u uitloggen en overnieuw inloggen
om de nieuwe variabelen te kunnen gebruiken.
|
5.c. Variabelen lokaal definiëren
User Specific
Soms wilt u een omgevingsvariabele niet globaal definiëren. U kunt bijvoorbeeld
de map /home/my_user/bin en de map waarin u werkt aan de variabele
PATH willen toevoegen, zonder dat alle andere gebruikers deze mappen in
hun PATH hebben staan. Dit kan door een variabele lokaal te definiëren
in ~/.bashrc of ~/.bash_profile:
Codevoorbeeld 3.1: PATH lokaal uitbreiden via ~/.bashrc |
PATH="${PATH}:/home/my_user/bin:"
|
Zodra u overnieuw inlogt wordt uw PATH variabele bijgewerkt.
Per sessie
Soms wilt u een omgevingsvariabele helemaal niet permanent gebruiken. U kunt
bijvoorbeeld een tijdelijke map hebben, waarvoor u de niet steeds de hele
map wilt intypen en niet ~/.bashrc wilt aanpassen, omdat u de
verwijzing maar tijdelijk nodig heeft.
In zo'n geval kunt u de variabele PATH in de huidige sessie aanpassen
met het commando export. De variabele blijft dan actief totdat u
uitlogt.
Codevoorbeeld 3.2: Een omgevingsvariabele definieren voor één sessie |
# export PATH="${PATH}:/home/my_user/tmp/usr/bin"
|
C. Werken met Portage
1. Bestanden en mappen
1.a. Portage bestanden
Configuratie Instellingen
Portage komt met een standaard configuratie die opgeslagen is in
/etc/make.globals. Als u er naar kijkt, zult u zien dat de
configuratie afgehandeld wordt door middel van variabelen. Welke variabelen
Portage gebruikt en wat deze betekenen, zal later beschreven worden.
Omdat veel configuratie instellingen verschillen per architectuur, heeft Portage
tevens standaard configuratie bestanden die deel uitmaken van uw profiel. Naar
uw profiel wordt verwezen door de /etc/make.profile symlink;
Portage configuraties worden gezet in de make.defaults bestanden
van uw profiel en alle bovenliggende profielen. We zullen later meer
uitleggen over profielen en de /etc/make.profile map.
Als u van plan bent een wijziging aan te brengen in een configuratie variabele,
pas dan niet /etc/make.globals of make.defaults
aan. Gebruik in plaats daarvan /etc/make.conf die voorrang heeft
boven de eerder genoemde bestanden. U kunt ook het voorbeeld bestand
/etc/make.conf.example bekijken. Zoals de naam aangeeft, is dit
een voorbeeld bestand, Portage leest de gegevens in dit bestand niet.
U kunt ook een Portage configuratie variabele als een omgevingsvariabele
definiëren, maar we raden dit niet aan.
Profiel Informatie
We zijn de map /etc/make.profile reeds tegen gekomen. Het is niet
echt een map, maar een symbolische link naar een profiel, standaard degene die
in /usr/portage/profiles staat, hoewel u ook uw eigen profielen
kunt aanmaken en naar deze profielen kunt verwijzen. Het profiel waar deze
symbolische link naar verwijst is het profiel die uw systeem gebruikt.
Een profiel bevat architectuur-gebonden informatie voor Portage, zoals een
lijst van pakketten die bij het systeem behoren overeenkomstig met het profiel,
een lijst van pakketten die niet werken (of gemaskeerd zijn) voor dat profiel,
etc.
Gebruikers Configuratie
Als het nodig is het gedrag van Portage te veranderen betreffende de installatie
van applicaties, zult u de bestanden binnen /etc/portage moeten
aanpassen. We raden u streng aan de bestanden binnen
/etc/portage te gebruiken en raden het streng af om het
gedrag aan te passen door middel van omgevingsvariabelen!
Binnen /etc/portage kunt u de volgende bestanden aanmaken:
-
package.mask waarin de pakketten staan waarvan u wilt dat
Portage ze nooit zal installeren.
-
package.unmask waarin de pakketten staan die u wilt
installeren, zelfs als dit door de Gentoo ontwikkelaars streng afgeraden
wordt.
-
package.keywords waar de pakketten staan die u wilt
installeren, zelfs als deze pakketten (nog) niet geschikt zijn bevonden voor
uw architectuur.
-
package.use welke de USE argumenten staan die u wilt gebruiken
voor bepaalde pakketten zonder dat het hele systeem deze argumenten zal
gebruiken.
Meer informatie over de map /etc/portage en een volledige
lijst van mogelijke bestanden die u kunt aanmaken, kan gevonden worden in de
Portage man pagina:
Codevoorbeeld 1.1: Het lezen van de Portage man pagina |
$ man portage
|
Het veranderen van Portage bestanden & mappen lokaties
De eerder genoemde configuratie bestanden kunnen niet ergens anders geplaatst
worden - Portage zal altijd op deze lokaties naar deze configuratie bestanden
zoeken. Portage gebruikt echter ook vele andere lokaties voor verschillende
doeleinden: build map, opslag van broncodes, Portage boom lokatie, ...
Al deze doeleinden hebben bekende standaard lokaties maar kunnen aangepast
worden naar eigen smaak door /etc/make.conf. De rest van dit
hoofdstuk zal uitleggen welke lokaties Portage voor speciale doeleinden
gebruikt en hoe de plaats van deze lokaties gewijzigd kunnen worden binnen uw
bestandssysteem.
Dit document is niet bedoeld als naslag. Als u 100% van de informatie wilt
lezen, neem dan de Portage en make.conf man pagina's door:
Codevoorbeeld 1.2: Het lezen van de Portage en make.conf man pagina's |
$ man portage
$ man make.conf
|
1.b. Bestanden opslaan
De Portage Boom
De standaard lokatie van de Portage boom is /usr/portage. Dit is
gedefinieerd door middel van de variabele PORTDIR. Als u de Portage boom ergens
anders opslaat (door de eerder genoemde variabele aan te passen), vergeet dan
niet ook de symbolische link /etc/make.profile aan te passen.
Als u de variabele PORTDIR aanpast, zult u de volgende variabelen
waarschijnlijk ook aan willen passen, anders zullen deze niet op de hoogte zijn
van de nieuwe lokatie van PORTDIR. Dit komt door de manier waarop Portage de
volgende variabelen behandelt: PKGDIR, DISTDIR, RPMDIR.
Voorgecompileerde pakketten
Ondanks het feit dat Portage geen voorgecompileerde paketten gebruikt, is er
wel ondersteuning voor ze. Wanneer u Portage instelt om te werken met
voorgecompileerde pakketten, zoekt het deze in de map
/usr/portage/packages. Deze map is gedefinieerd in de variabele
PKGDIR.
Broncodes
De broncodes voor alle pakketten worden standaard opgeslagen in de map
/usr/portage/distfiles. Deze lokatie wordt gedefinieerd door
de variabele DISTDIR.
RPM Bestanden
Hoewel Portage geen RPM bestanden kan gebruiken, is het in staat deze bestanden
te genereren door gebruik te maken van het ebuild commando
(De Ebuild applicatie). De standaard
lokatie waar Portage RPM bestanden opslaat is /usr/portage/rpm,
dit is gedefinieerd door de RPMDIR variabele.
1.c. Applicaties compileren
Tijdelijke Portage Bestanden
Tijdelijke bestanden van Portage worden standaard opgeslagen in de map
/var/tmp. Dit is gedefinieerd door de variabele PORTAGE_TMPDIR.
Als u de PORTAGE_TMPDIR variabele aanpast, zult u tevens de volgende variabelen
willen aanpassen, omdat deze anders de verandering van de PORTAGE_TMPDIR niet
zullen opmerken. Dit komt door de manier waarop Portage omgaat met deze
variabele: BUILD_PREFIX.
Build mappen
Portage maakt per pakket dat het installeert een specifieke build map aan in
/var/tmp/portage. Deze lokatie is gedefinieerd door de
BUILD_PREFIX variabele.
Lokatie in het bestandssysteem
Portage installeert standaard alle bestanden in het huidige bestandssysteem
(/), maar u kunt dit veranderen door de ROOT omgevingsvariabele
aan te passen. Dit is handig als u nieuwe installaties wilt compileren.
1.d. Mogelijkheden om te loggen
Loggen per Ebuild
Portage kan per ebuild log bestanden aanmaken, maar alleen als de variabele
PORT_LOGDIR is ingesteld op een lokatie die schrijfbaar is voor Portage (de
portage gebruiker). Standaard is deze variabele niet ingesteld.
2. Configuratie via variabelen
2.a. Portage Configuratie
Zoals eerder gezegd is Portage in te stellen door verschillende variabelen die
je kunt wijzigen in /etc/make.conf. Lees de make.conf
man pagina voor meer informatie:
Codevoorbeeld 1.1: Lezen van de make.conf man pagina |
$ man make.conf
|
2.b. Installatie specifieke instellingen
Configuratie en compileeropties
Als Portage applicaties installeert, geeft het de waarde van de volgende
variabelen door aan de compiler en het configuratie script:
-
CFLAGS & CXXFLAGS definiëren de gewenste compileeropties voor C en C++
compilatie.
-
CHOST definieert de systeeminstallatie informatie voor het configuratie
script van de betreffende applicatie.
-
MAKEOPTS wordt doorgegeven aan het make commando en wordt meestal
gebruikt om de mate van parallelliteit te definiëren tijdens de compilatie.
Meer informatie over de 'make' opties kan gevonden worden in de man pagina
van make.
De USE variabele wordt gebruikt tijdens de configuratie en compilatie, maar is
in eerdere hoofdstukken reeds uitgebreid besproken.
Merge Opties
Als Portage een nieuwere versie van een bepaald stuk software geïnstalleerd
heeft, zal het de oude bestanden of de oude versie van je systeem verwijderen.
Portage geeft de gebruiker 5 seconden de tijd voordat het verwijderen van de
oude versie begint. Deze 5 seconden zijn gedefinieerd door de CLEAN_DELAY
variabele.
2.c. Configuratie van bestandsbescherming
Beschermde lokaties van Portage
Portage overschrijft bestanden door nieuwere versies als de bestanden niet
opgeslagen zijn in een beschermde lokatie. Deze beschermde lokaties zijn
gedefinieerd door de CONFIG_PROTECT variabele en zijn voornamelijk lokaties waar
configuratie bestanden staan. De mappen in de lijst worden door een spatie
gescheiden.
Een bestand dat in een beschermde lokatie wordt geschreven wordt van naam
veranderd en de gebruiker wordt gewaarschuwd over de aanwezigheid van een
nieuwere versie van het (waarschijnlijke) configuratie bestand.
Je kunt meer te weten komen over de huidige CONFIG_PROTECT instellingen via
de emerge --info informatie:
Codevoorbeeld 3.1: Verkrijgen van de CONFIG_PROTECT instellingen |
$ emerge --info | grep 'CONFIG_PROTECT='
|
Meer informatie over de bestand bescherming configuratie van Portage is
beschikbaar via emerge:
Codevoorbeeld 3.2: Meer informatie over de configuratie van de bestandsbescherming |
$ emerge --help config
|
Mappen uitsluiten
Om de bescherming van bepaalde submappen van beschermde lokaties op te heffen,
kun je de CONFIG_PROTECT_MASK variabele gebruiken.
2.d. Download Opties
Server Lokaties
Als de gevraagde informatie of data niet beschikbaar is op je systeem, zal
Portage deze informatie van het internet halen. De serverlokaties voor de
verschillende informatie en data kanalen zijn gedefinieerd door de volgende
variabelen:
-
GENTOO_MIRRORS definieert een lijst van server lokaties die broncode
bevatten (distfiles)
-
PORTAGE_BINHOST definieert een specifieke server lokatie die reeds gebouwde
bestanden voor je systeem bevat.
Een derde instelling betreft de lokatie van de rsync server die je gebruikt om
je Portage-boom te vernieuwen.
-
SYNC definieert een specifieke server die Portage gebruikt om de Portage
boom vandaan te halen.
De GENTOO_MIRRORS en SYNC variabelen kunnen automatisch worden ingesteld met
behulp van de applicatie mirrorselect. Voer eerst
emerge mirrorselect uit voordat je het kan gebruiken. Kijk voor meer
informatie, in de online hulp van mirrorselect:
Codevoorbeeld 4.1: Meer informatie over mirrorselect |
# mirrorselect --help
|
Als het voor jou omgeving nodig is om een proxyserver te gebruiken, kun je de
HTTP_PROXY, FTP_PROXY en RSYNC_PROXY variabelen gebruiken om je proxy server
bekend te maken.
Commando's voor het ophalen
Als het nodig is dat Portage broncode ophaalt, gebruikt deze standaard
wget. Dit kan veranderd worden via de FETCHCOMMAND variabele.
Portage kan verder gaan met eerder gedeeltelijk opgehaalde bron code. Het
gebruikt standaard wget, maar dit kan aangepast worden door middel
van de RESUMECOMMAND variabele.
Zorg ervoor dat FETCHCOMMAND en RESUMECOMMAND de bron code in de juiste lokatie
opslaan. Binnen de variabelen kunnen \${URI} en \${DISTDIR} gebruikt worden om
de locatie van de broncode en de lokatie van de distfiles aan te geven.
Protocol-gebonden eigenschappen kunnen worden gedefinieerd door middel van
FETCHCOMMAND_HTTP, FETCHCOMMAND_FTP, RESUMECOMMAND_HTTP, RESUMECOMMAND_FTP, etc.
Rsync instellingen
Het rsync commando dat gebruikt wordt door Portage om de Portage-boom te
vernieuwen kan niet aangepast worden, maar sommige variabelen die gerelateerd
zijn aan het rsync commando kunnen wel aangepast worden:
-
RSYNC_EXCLUDEFROM verwijst naar een bestand met de softwarepakketten en/of
categorieën die rsync dient te negeren tijdens het update proces.
-
RSYNC_RETRIES definieert hoe vaak rsync zal proberen contact te maken met de
server waarnaar verwezen wordt door de SYNC variabele, voordat opgegeven
wordt. De standaard waarde van deze variabele is 3.
-
RSYNC_TIMEOUT definieert het aantal seconden dat een rsync connectie
inactief kan zijn voordat rsync deze als verbroken ziet. De standaard waarde
van deze variabele is 180, maar mensen met een inbelverbinding zullen het
waarschijnlijk op 300 of hoger willen zetten.
2.e. Gentoo configuratie
Branch selectie
De standaard branch kan aangepast worden met de ACCEPT_KEYWORDS variabele. De
standaard is de stabiele branche van de architectuur die gebruikt wordt. Meer
informatie over de branches van Gentoo kan in het volgende hoofdstuk gevonden
worden.
Portage mogelijkheden
Bepaalde mogelijkheden van Portage kunnen geactiveerd worden door de FEATURES
variabele. De Portage mogelijkheden zijn besproken in eerdere hoofdstukken,
zoals Portage Mogelijkheden.
2.f. Portage gedrag
Hulpbronnen beheer
Met de PORTAGE_NICENESS variabele kan de vriendelijkheidswaarde van Portage
worden aangepast. De PORTAGE_NICENESS waarde wordt toegevoegd aan de
huidige vriendelijkheidswaarde.
Voor meer informatie over vriendelijkheidswaarden, zie de nice man pagina:
Codevoorbeeld 6.1: Meer informatie over nice |
$ man nice
|
Schrijf Gedrag
De NOCOLOR, welke standaard de waarde "false" heeft, bepaalt of Portage wel of
geen kleuren gebruikt.
3. Software takken door elkaar gebruiken
3.a. Het gebruik van verschillende software takken door elkaar
De stabiele tak
De ACCEPT_KEYWORDS variabele definieert welke software tak op uw systeem
wordt gebruikt. Gebruik van de standaard, stabiele software voor de gebruikte
architectuur, wordt aangeduid met bijvoorbeeld x86.
We raden u aan alleen de stabiele tak te gebruiken. Indien u echter niet
zoveel geeft om stabiliteit en u wilt Gentoo helpen door het zenden van BUG
rapporten naar http://bugs.gentoo.org, lees dan verder.
De Test Tak
Als u de meest recente applicaties wilt gebruiken, kunt u overwegen de
test tak te gebruiken. Om Portage de test tak te laten gebruiken, plaats
een ~ voor uw architectuur.
De pakketten in de test tak is bedoeld om te testen - zoals de naam al doet
vermoeden. Het geeft aan dat de ontwikkelaars het pakket functioneel vinden,
maar dat het nog niet genoeg getest is. U kunt de eerste zijn die een fout
vindt, die u dan kunt rapporteren op
bugzilla. Laat de ontwikkelaars weten wat er fout gaat, zodat ze er iets
aan kunnen doen (aub wel in het engels invullen).
U moet er wel rekening mee houden dat uw systeem onstabiel kan worden,
pakketten verkeerd instelt (bijvoorbeeld de afhankelijkheden), erg vaak een
update wordt gemaakt (de resultaten van het testen) of dat een pakket helemaal
niet werkt. Als u nog niet goed weet hoe Gentoo werkt en de bovenstaande
problemen niet zelf kunt oplossen, dan raden we aan om alleen de stabiele
tak van Gentoo te gebruiken.
Om bijvoorbeeld de test tak voor de x86 architectuur te kiezen, wijzig
/etc/make.conf en zet:
Codevoorbeeld 1.1: Het zetten van de ACCEPT_KEYWORDS variabele |
ACCEPT_KEYWORDS="~x86"
|
Als u nu uw systeem vernieuwt, zult u zien dat veel pakketten worden
vernieuwd. Vergeet echter niet: als u het systeem vernieuwd hebt, zodat de test
tak gebruikt wordt, is er meestal geen gemakkelijke weg terug naar de
stabiele, officiële tak (tenzij u van te voren een back-up gemaakt hebt
natuurlijk).
3.b. Combineren van stabiel met test
De locatie van het package.keywords bestand
Portage kan gevraagd worden om de test tak voor specifieke pakketten te
gebruiken en de stabiele tak voor de rest van het systeem te gebruiken. Om
dit voor elkaar te krijgen, dient de pakket categorie en de naam die u wilt
gebruiken in de test tak toegevoegd te worden aan
/etc/portage/package.keywords. Je kunt ook een map maken (met de
zelfde naam) en een lijst van de pakketten van de bestanden in die map.
Bijvoorbeeld om de test tak toe
te passen voor gnumeric:
Codevoorbeeld 2.1: /etc/portage/package.keywords instellingen voor gnumeric, volledige regel |
app-office/gnumeric ~x86
|
Specifieke versies gebruiken om te testen
Als u een specifieke versie van een applicatie wilt gebruiken van de test
tak, maar u wilt niet dat Portage de test tak voor andere versies
gebruikt, kunt u de versie toevoegen aan het package.keywords
locatie. In dit geval moet u de = operator gebruiken. U kunt ook een
versie-reeks opgeven door gebruik te maken van de <=, <, > or
>= operators.
Als u versie-informatie toevoegt, moet u altijd een operator gebruiken.
Als u de versie-informatie weglaat, kunt u ervoor kiezen geen operator
te gebruiken.
In het volgende voorbeeld vragen we Portage om gnumeric-1.2.13 te accepteren:
Codevoorbeeld 2.2: Gebruik van een specifieke gnumeric versie |
=app-office/gnumeric-1.2.13 ~x86
|
3.c. Gebruik van gemaskeerde pakketten
Het package.unmask locatie
De ontwikkelaars van Gentoo geven geen ondersteuning voor het gebruik
van deze locatie. Gebruik ze dus voorzichtig. Vragen om hulp met betrekking
tot package.unmask en/of package.mask zullen niet worden
beantwoord. U bent bij deze gewaarschuwd!
Als een pakket gemaskeerd is door de Gentoo ontwikkelaars en u het, ondanks de
reden die genoemd wordt in het package.mask bestand (standaard te
vinden in /usr/portage/profiles), toch wilt gebruiken, plaats dan
exact dezelfde regel in /etc/portage/package.unmask (of in
een bestand in die map, moest het een map zijn).
Bijvoorbeeld, als =net-mail/hotwayd-0.8 gemaskeerd is, kun u dit masker
eraf halen door exact dezelfde regel te plaatsen in het
package.unmask locatie:
Codevoorbeeld 3.1: /etc/portage/package.unmask |
=net-mail/hotwayd-0.8
|
Het package.mask locatie
Als u niet wilt dat Portage een bepaald pakket of een specifieke versie van een
pakket gebruikt, kunt u deze zelf maskeren door de betreffende regel op te nemen
in het /etc/portage/package.mask locatie (of in dat bestand of een
bestand in die map).
Bijvoorbeeld, als u niet wilt dat Portage een nieuwere kernelversie dan
gentoo-sources-2.6.8.1 installeert, kunt u de volgende regel toevoegen
aan het package.mask locatie:
Codevoorbeeld 3.2: /etc/portage/package.mask voorbeeld |
>sys-kernel/gentoo-sources-2.6.8.1
|
4. Extra Portage hulpmiddelen
4.a. etc-update
etc-update is programma dat helpt bij het installeren van
._cfg0000_<naam> bestanden. Het levert een interactieve
installatie setup en kan ook belangrijke wijzigingen automatisch installeren.
._cfg0000_<naam> bestanden worden aangemaakt door Portage
als het een bestand wil plaatsen in een door de CONFIG_PROTECT variabele
beschermde map.
Starten van etc-update is vrij eenvoudig:
Codevoorbeeld 1.1: Het starten van etc-update |
# etc-update
|
Na het installeren van de eenvoudige veranderingen, zult u een lijst met
beschermde bestanden te zien krijgen. Deze wachten met een verandering.
Onderaan zult u begroet worden door de mogelijke keuzes:
Codevoorbeeld 1.2: etc-update keuzes |
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'):
|
Als u -1 geeft, zal etc-update stoppen zonder een wijziging uit
te voeren. Bij -3 of -5 zullen alle getoonde configuratie
bestanden overschreven worden door de nieuwere versies. Het is daar om erg
belangrijk om eerst de bestanden te kiezen die niet gewijzigd dienen te worden.
Dit kan door eenvoudig het nummer links van een configuratie bestand op te
geven.
Als voorbeeld kiezen we het configuratie bestand /etc/pear.conf:
Codevoorbeeld 1.3: Vernieuwen van een specifiek configuratie bestand |
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
|
U kunt nu de verschillen tussen beide bestanden zien. Als u denkt dat het
nieuwe configuratie bestand zonder problemen gebruikt kan worden, geef dan
1. Als u denkt dat het nieuwe bestand niet nodig is, of geen nieuwe of
bruikbare informatie bevat, kies dan een 2. Als u het huidige
configuratie bestand interactief wilt vernieuwen, kies dan 3.
Er is geen reden om het interactief samenvoegen hier verder uit te leggen. Om
compleet te zijn, zullen we nu de mogelijke commando's bespreken die u tot uw
beschikking hebt tijdens het interactief samenvoegen van twee bestanden.
U zult begroet worden met twee regels (de originele regel en de nieuwe,
voorgestelde, regel) en een regel waar u één van de volgende commando's op kan
geven:
Codevoorbeeld 1.4: Commando's die beschikbaar zijn voor het interactief samenvoegen |
ed: Pas aan en gebruik dan beide versies, elk voorzien van een commentaar.
eb: Pas aan en gebruik dan beide versies.
el: pas aan en gebruik dan de linkse versie.
er: Pas aan en gebruik dan de rechtse versie.
e: Pas een nieuwe versie aan.
l: Gebruik de linkse versie.
r: Gebruik de rechtse versie.
s: Voeg stil de overeenkomstige regels toe.
v: Voeg, uitgebreid overeenkomstige regels toe.
q: Einde.
|
Als u klaar bent met het vernieuwen van belangrijke configuratie bestanden,
kunt u automatisch de andere configuratie bestanden vernieuwen.
etc-update zal sluiten als het geen te wijzigen configuratie bestanden
meer kan vinden.
4.b. dispatch-conf
Door dispatch-conf te gebruiken, bent u in staat de vernieuwingen toe te
passen en tegelijkertijd alle wijzigingen bij te houden. dispatch-conf
slaat de verschillen tussen de configuratie bestanden als patches of door
gebruik te maken van het RCS versie systeem.
Net als etc-update kunt u vragen om het configuratie bestand te
behouden, het nieuwe configuratie bestand te gebruiken, het huidige aan te
passen of om alle wijzigingen interactief samen te voegen. Tevens heeft
dispatch-conf enkele extra mogelijkheden:
-
Voeg automatisch configuratie bestanden toe die enkel vernieuwingen in het
commentaar bevatten.
-
Voeg automatisch configuratie bestanden toe die enkel verschillen in de
hoeveelheid lege ruimte.
Wees er zeker van dat u /etc/dispatch-conf.conf eerst aanpast en
de map aanmaakt waar naar verwezen wordt door de archive-dir variabele
Kijk voor meer informatie naar de dispatch-conf man pagina:
Codevoorbeeld 2.1: Het lezen van de dispatch-conf man pagina |
$ man dispatch-conf
|
4.c. quickpkg
Met quickpkg kunt u bestanden maken van pakketten die al op uw systeem
geïnstalleerd zijn. Deze bestanden kunnen dan gebruikt worden als
voorgecompileerde pakketten. Het starten van quickpkg is eenvoudig: Voeg
de namen van de pakketten die u wilt bewaren als bestanden.
Om bijvoorbeeld, curl, arts en procps om te zetten:
Codevoorbeeld 3.1: Voorbeeld gebruik quickpkg |
# quickpkg curl arts procps
|
Het voorgecompileerde bestand zal opgeslagen worden in
/usr/portage/packages/All. Symbolische links die naar deze
bestanden verwijzen worden geplaatst in de map
$PKGDIR/<category>.
5. Afwijken van de officiële boom
5.a. Het gebruik van een deel van de Portage boom
Uitsluiten van pakketten en/of categorieën
U kunt bepaalde categorieën en/of pakketten selectief vernieuwen en andere
categorieën/pakketten negeren. We doen dit door rsync bepaalde
categorieën/pakketten te laten negeren gedurende de emerge --sync fase.
rsync zal normaal de inhoud van /etc/portage/rsync_excludes
controleren, indien aanwezig. Hierin staan de categorieën en/of pakketten
waarvan u niet wilt dat rsync ze vernieuwt.
Codevoorbeeld 1.1: De variabele RSYNC_EXCLUDEFROM in /etc/make.conf |
RSYNC_EXCLUDEFROM=/etc/portage/rsync_excludes
|
Codevoorbeeld 1.2: Alle spellen in /etc/portage/rsync_excludes zetten |
games-*/*
|
Vergeet echter niet dat dit tot afhankelijkheidsproblemen kan leiden omdat
nieuwe, toegevoegde pakketten wellicht afhankelijk zijn van nieuwe, maar
genegeerde pakketten.
5.b. Toevoegen van niet-Gentoo ebuilds
Definiëren van de map Portage_overlay
U kunt Portage vragen om ebuilds te gebruiken die niet beschikbaar zijn gesteld
via de Portage boom. Maak een nieuwe map aan (bijvoorbeeld
/usr/local/portage) waarin u deze ebuilds in plaatst.
Gebruik dezelfde mappenstructuur als in de officiële Portage-boom!
Vervolgens definieert u PORTDIR_OVERLAY in /etc/make.conf en laat
deze verwijzen naar de eerder aangemaakte map. Als u nu Portage gebruikt, zal
het deze ebuilds ook gebruiken zonder deze ebuilds de volgende keer dat u
emerge --sync gebruikt te verwijderen of te overschrijven.
Met meerdere overlays werken
Sommige gebruikers zullen meerdere overlays willen gebruiken, om pakketten te
kunnen testen voordat ze officieel in de Portage boom komen of omdat ze niet
ondersteunde ebuilds willen gebruiken. Zij kunnen gebruik maken van
gensync uit het pakket app-portage/gentoolkit-dev, waarmee ze hun
overlays kunnen bijhouden.
Met gensync kunt u een verzameling eigen ebuild op een eenvoudige manier
bijhouden. Elke verzameling heeft een bestand .syncsource in de
map /etc/gensync/. Dit bestand bevat de lokatie van de
verzameling, naam, ID, etc.
Stel dat u twee extra ebuild verzamelingen hebt, die u java (voor het
testen van java ebuilds) en entapps (voor applicaties voor uw eigen
bedrijf) noemt. U kunt deze dan updaten met het volgende commando:
Codevoorbeeld 2.1: Gebruiken van gensync om te updaten |
# gensync java entapps
|
5.c. Niet door Portage onderhouden applicaties
Het gebruik van Portage met zelf onderhouden applicaties
Soms wilt u applicaties zelf configureren, installeren en onderhouden zonder dat
Portage dit proces voor u automatiseert, ook al kan Portage de applicaties
leveren. Bekende gevallen zijn de kernel nvidia drivers. Je kunt Portage
zo configureren dat het weet dat een bepaalde applicatie handmatig geïnstalleerd
is op uw systeem. Dit proces wordt injecting genoemd en wordt door
Portage ondersteund via het /etc/portage/profile/package.provided
bestand.
Als u bijvoorbeeld Portage wilt informeren over vanilla-sources-2.6.11.6
die u zelf handmatig geïnstalleerd hebt, neem dan de volgende regel op in
/etc/portage/profile/package.provided:
Codevoorbeeld 3.1: Voorbeeld regel voor package.provided |
sys-kernel/vanilla-sources-2.6.11.6
|
D. Gentoo Netwerk Configuraties
1. Meteen beginnen
1.a. Beginnen
Nota:
We gaan er in deze handleiding vanuit dat u uw kernel op een juiste manier
hebt geconfigureerd. Verder nemen we aan dat u de juiste hardware modules
heeft en dat u weet wat voor netwerkkaart u heeft. We gaan er verder vanuit
dat u eth0 wilt configureren, maar voor eth1, wlan0 is
de methode natuurlijk hetzelfde.
|
Nota:
Om deze handleiding goed te kunnen gebruiken met u gebruik maken van
baselayout-1.11.11 of hoger.
|
Om uw netwerkkaart in te kunnen stellen moet u Gentoo's RC systeem op de hoogte
brengen van de aanwezigheid van de kaart. Dit doet u met een symbolische link
vanuit net.lo naar net.eth0 in
/etc/init.d
Codevoorbeeld 1.1: Symlinken van net.eth0 naar net.lo |
# cd /etc/init.d
# ln -s net.lo net.eth0
|
Gentoo's RC systeem is nu op de hoogte van het bestaan van uw netwerkkaart. Het
moet nu weten hoe de kaart in te stellen. Alle netwerkkaarten worden ingesteld
in /etc/conf.d/net. Hieronder staat een voorbeeld voor het gebruik
van DHCP en voor vaste IP adressen.
Codevoorbeeld 1.2: Voorbeeld /etc/conf.d/net |
config_eth0=( "dhcp" )
config_eth0=( "192.168.0.7/24" )
routes_eth0=( "default via 192.168.0.1" )
config_eth0=( "192.168.0.7 netmask 255.255.255.0" )
routes_eth0=( "default gw 192.168.0.1" )
|
Nota:
Indien u niets instelt wordt automatisch DHCP gekozen.
|
Nota:
CIDR staat voor Classless InterDomain Routing.
Van oudsher werden IPv4 adressen opgedeeld in A, B of C. Deze eerste
verdeling was niet bedoeld voor een massaal gebruik van internet, waardoor er
al snel een te kort aan unieke IP adressen dreigde te ontstaan. CIDR zorgt
ervoor dat één IP adressen veel meer gebruikers kan voorzien. Een CIDR IP
adres ziet er hetzelfde uit, alleen eindigt het met een schuine streep en een
nummer, bijvoorbeeld 192.168.0.0/16. CIDR wordt beschreven in
RFC 1519.
|
Nu dat uw netwerkkaart is geconfigureerd, kunt u die opstarten en weer stoppen
met de onderstaande commando's:
Codevoorbeeld 1.3: Starten en stoppen van netwerk scripts |
# /etc/init.d/net.eth0 start
# /etc/init.d/net.eth0 stop
|
Belangrijk:
Indien u problemen hebt met het netwerk, is het aan te raden om de optie
RC_VERBOSE="yes" te gebruiken in /etc/conf.d/rc zodat u
meer informatie krijgt over wat er eventueel fout gaat.
|
Nu dat u de netwerkkaart kunt opstarten en afsluiten, kunt u deze automatisch
laten opstarten wanneer Gentoo opstart. Hieronder wordt beschreven hoe u dit
in kunt stellen. En met het "rc" commando start u alle scripts in het huidige
runlevel die nog niet gestart zijn.
Codevoorbeeld 1.4: Netwerkkaart instellen om te starten bij het opstarten van de PC |
# rc-update add net.eth0 default
# rc
|
2. Geavanceerde configuratie
2.a. Geavanceerde configuratie
De variabele config_eth0 is het hart van een netwerkkaart configuratie.
Het is een geavanceerde instructielijst om de netwerkkaart (eth0 in dit
geval) in te stellen. Elk commando wordt na het vorige uitgevoerd en wanneer
tenminste één commando werkt zal de netwerkkaart zijn werk kunnen uitvoeren.
Hieronder volgt een lijst met ingebouwde instructies.
| Commando |
Beschrijving |
| null |
Doe niets |
| noop |
Wanneer de netwerkkaart het doet en er een IP adres is, breek dan de
verdere configuratie af
|
| Een IPv4 of IPv6 adres |
Voeg het adres toe aan de netwerkkaart |
|
dhcp, adsl of apipa (of een ander commando van een
ander programma)
|
Start de module die het commando opgeeft. Zo zal dhcp een module
starten die DHCP beschikbaar maakt, bijvoorbeeld dhcpcd,
udhcpc, dhclient of pump.
|
Voor het geval een commando niet werkt, kunt u een tweede keus opgeven. Deze
tweede keus moet de structuur van de configuratie bestanden uiteraard ook
volgen.
U kunt verschillende commando's achter elkaar gebruiken. Hieronder volgen
enkele voorbeelden.
Codevoorbeeld 1.1: Voorbeeld instellingen |
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"
)
|
Nota:
Wanneer u de module ifconfig gebruikt en meer dan één adres toevoegt,
worden er aliassen gecreëerd voor de extra adressen. Dus met de bovenstaande
voorbeelden krijgt u de netwerk interfaces eth0, eth0:1 en
eth0:2. U kunt verder niets met deze interfaces; de kernel en alle
toepassing zullen ze als eth0 beschouwen.
|
Belangrijk:
Het instellen van de tweede keus is heel belangrijk. Indien we de optie
null niet instellen, zal apipa alleen starten wanneer noop
niet werkt namelijk.
|
Nota:
APIPA en DHCP worden later besproken.
|
2.b. Netwerk afhankelijkheden
De init scripts in de map /ect/init.d kunnen op een specifieke
netwerkkaart zijn toegespitst of in het algemeen op de netwerkkaarten.
net kunt u definiëren in /etc/conf.d/rc. Hier kunnen
verschillende instellingen worden gekozen via RC_NET_STRICT_CHECKING.
| Waarde |
Beschrijving |
| none |
De service net wordt geacht altijd online te zijn |
| no |
Dit betekent dat er tenminste één service van het type net.*
moet werken naast net.lo. Dit is handig voor laptop gebruikers
die een WIFI en een vaste netwerkverbinding hebben en slechts één van
beiden tegelijk online willen hebben.
|
| lo |
Dit een zelfde optie als de optie no, alleen wordt nu
net.lo ook meegeteld. Dit is handig voor mensen die niet
altijd een netwerkkaart willen opstarten.
|
| yes |
In dit geval moeten ALLE netwerkkaarten werken om de service
net als online te laten zien.
|
Maar hoe werkt het nu wanneer u net.br0 heeft, die afhankelijk
is van net.eth0 en net.eth1? net.eth1
kan in dit geval bijvoorbeeld een wireless of PPP verbinding zijn, die moet
worden ingesteld voordat deze wordt toegevoegd aan de netwerkbrug. Dit kan niet
gebeuren in /etc/init.d/net.br0, aangezien dit een symlink naar
net.lo is.
Hiervoor zult u een eigen depend() functie in
/etc/conf.d/net moeten aanmaken.
Codevoorbeeld 2.1: net.br0 afhankelijkheden in /etc/conf.d/net |
depend_br0() {
need net.eth0 net.eth1
}
|
Voor een uitgebreidere uitleg over afhankelijkheden, kunt u het hoofdstuk
Initialisatie Scripts lezen
uit het Gentoo handboek.
2.c. Namen en waarden van variabelen
Namen van variabelen veranderen. Meestal volgen ze een gelijke structuur als
variable_${interface|mac|essid|apmac}. Zo bevat de variabele
dhcpcd_eth0 de waarde voor de dhcpcd opties voor eth0 en bevat
dhcpcd_essid de waarde voor de dhcpcd opties met betrekking tot de
interface die verbinding maakt met de ESSID "essid".
Er zijn echter geen vaste regels voor het benoemen van netwerk interfaces. Ze
dus ethx heten, maar veel draadloze interfaces heten bijvoorbeeld wlanx, rax of
toch gewoon ethx. Sommige interfaces, zoals netwerkbruggen, kunnen een
willekeurige naam hebben. En wireless Acces Points kunnen zelfs namen hebben
met niet alpha-numerieke karakters erin - dit is belangrijk om te weten, omdat
u parameters voor uw netwerk kunt instellen per ESSID.
Er is echter één maar: Gentoo gebruikt bash variabelen voor het netwerk - en
bash kan alleen Engelse alpha-numerieke karakters gebruiken. Daarom worden alle
niet alpha-numerieke karakters omgezet in een _.
Een ander nadeel van bash, is de inhoud van de variabelen - sommige karakters
moeten vooraf gegaan worden door een \, het zogenaamde escapen. Dit
geldt voor de volgende karakters: ", ' en \.
In het volgende voorbeeld zullen we verschillende karakters gebruiken. We
noemen daarom de ESSID My "\ NET:
Codevoorbeeld 3.1: Voorbeeld naam voor variabele |
dns_domain_My____NET="My \"\\ NET"
|
3. Netwerken in modules
3.a. Netwerk Modules
Omdat we tegenwoordig modulaire netwerk scripts gebruiken, kunnen we eenvoudig
nieuwe interfaces en configuratie modules toevoegen, terwijl de oude interfaces
ondersteund blijven.
De modules worden automatisch geladen indien een pakket geïnstalleerd wordt dat
ze nodig heeft. Als u een module instelt om te gebruiken waarvan u het pakket
niet hebt geïnstalleerd krijgt u een waarschuwing, dat u het pakket moet
installeren. In principe hoeft u modules alleen in te stellen wanneer u meer
dan één pakket hebt geïnstalleerd voor dezelfde functie en u er één prefereert
boven de andere.
Nota:
Alle instellingen worden opgeslagen in /etc/conf.d/net tenzij
anders wordt aangegeven.
|
Codevoorbeeld 1.1: Module instellen |
modules=( "iproute2" )
modules_eth0=( "udhcpc" )
modules=( "!iwconfig" )
|
3.b. Interface Handlers
Op dit moment worden twee hulpprogramma's ondersteund: ifconfig en
iproute2. U moet één van beide gebruiken indien u een netwerk op
wilt zetten.
ifconfig is Gentoo's standaard en wordt met het systeem mee
geïnstalleerd. iproute2 heeft meer mogelijkheden, maar wordt niet
standaard mee geleverd.
Codevoorbeeld 2.1: Het installeren van iproute2 |
# emerge sys-apps/iproute2
modules=( "iproute2" )
|
ifconfig en iproute2 doen ongeveer hetzelfde, daarom kunnen
beide naast elkaar draaien. De onderstaande code zou bijvoorbeeld voor
beide programma's gebruikt kunnen worden.
Codevoorbeeld 2.2: ifconfig en iproute2 voorbeelden |
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 is een manier om netwerk informatie te verkrijgen (IP adres, DNS servers,
een gateway, etc) van een DHCP server. Wanneer er dus een DHCP server op uw
netwerk aanwezig is, kunt u elke client instellen om DHCP te gebruiken en op
die manier automatisch het netwerk in te stellen. U moet dan natuurlijk wel
nog zaken als wireless en PPP zelf instellen voor u gebruik kunt maken van
DHCP via deze protocollen.
DHCP kan geleverd worden door dhclient, dhcpcd, pump of
udhcpc. Ieder van deze pakketten heeft zo zijn voor- en nadelen, die
hieronder op een rijtje worden gezet.
| DHCP Module |
Pakket |
Voordelen |
Nadelen |
| dhclient |
net-misc/dhcp |
Ontwikkeld bij ISC, dezelfde mensen die de BIND DNS software maken. Heel
veel instellingen mogelijk
|
Instellingen zijn betrekkelijk complex, de software heeft misschien te
veel functies. Kan geen gebruik maken van NTP via DHCP, stuurt de
hostnaam niet automatisch door
|
| dhcpcd |
net-misc/dhcpcd |
Sinds lang de standaard in Gentoo. Geen andere toepassingen nodig
|
Wordt niet meer bijgehouden door zijn ontwikkelaars, kan traag zijn. Werkt
niet als daemon wanneer de verbinding oneindig is
|
| pump |
net-misc/pump |
Weinig resources nodig, geen andere toepassingen nodig
|
Wordt niet meer bijgehouden door zijn ontwikkelaars, onbetrouwbaar, met
name over modems. Kan niet met NIS servers overweg via DHCP
|
| udhcpc |
net-misc/udhcp |
Weinig resources nodig - kleinste DHCP cliënt, ontwikkeld voor embedded
systems
|
Unbekend - geen enkele distributie gebruikt deze client standaard. Moet
elke 3 seconden de verbinding checken (geen andere instelling mogelijk)
|
Wanneer u meer dan één DHCP cliënt hebt geïnstalleerd moet u aangeven welke u
wilt gebruiken - indien u dat niet doet wordt dhcpcd gebruikt, indien
aanwezig.
Om opties aan een DHCP module mee te geven, gebruiken we
module_eth0="..."
(Verander module in de DHCP module die u gebruikt - bijv.
dhcpcd_eth0
We hebben geprobeerd DHCP zo eenvoudig mogelijk te maken - daarom worden de
volgende commando's ondersteund via de variabele dhcp_eth0. Standaard
hoeven deze niet ingesteld:
-
release - IP adressen vernieuwen
-
nodns - overschrijf /etc/resolv.conf niet
-
nontp - overschrijf /etc/ntp.conf niet
-
nonis - overschrijf /etc/yp.conf niet
Codevoorbeeld 3.1: Voorbeeld DHCP instellingen in /etc/conf.d/net |
modules=( "dhcpcd" )
config_eth0=( "dhcp" )
dhcpcd_eth0="-t 10"
dhcp_eth0="release nodns nontp nonis"
|
Nota:
dhcpcd, udhcpc en pump sturen automatisch de huidige
hostnaam naar de DHCP server. Dit hoeft u dus niet meer in te stellen.
|
3.d. ADSL Modem
Allereerst moeten we de ADSL software installeren.
Codevoorbeeld 4.1: Installeer het rp-pppoe pakket |
# emerge net-dialup/rp-pppoe
|
Waarschuwing:
baselayout-1.11.x ondersteunt alleen PPPoE. In de toekomst hopen we
dat ook PPPoA wordt ondersteund.
|
Nu moeten we aangeven dat eth0 een ADSL interface is en onze
gebruikersnaam invullen door /etc/conf.d/net aan te passen.
Codevoorbeeld 4.2: Instellen van eth0 voor ADSL in /etc/conf.d/net |
config_eth0=( "adsl" )
adsl_user_eth0="gebruikersnaam"
|
Tot slot moet u uw gebruikersnaam en wachtwoord in
/etc/ppp/pap-secrets zetten.
Codevoorbeeld 4.3: Voorbeeld /etc/ppp/pap-secrets |
"gebruikersnaam" * "wachtwoord"
|
3.e. APIPA (Automatic Private IP Addressing)
APIPA probeert een vrij adres te vinden binnen het bereik van 169.254.0.0 tot
169.254.255.255, door willekeurig een adres aan te spreken. Als er geen
antwoord komt, wordt het adres gebruikt voor de interface.
Dit is alleen handig voor LAN's zonder DHCP server, wanneer u niet direct met
internet verbonden bent en de andere computers in het netwerk ook APIPA
gebruiken.
Om APIPA te kunnen gebruiken, typt u emerge net-misc/iputils of
net-analyzer/arping.
Codevoorbeeld 5.1: APIPA instellen in /etc/conf.d/net |
config_eth0=( "dhcp" )
fallback_eth0=( "apipa" )
config_eth0=( "apipa" )
|
3.f. Bonding (samenvoegen van netwerkverbindingen)
Om gebruik te maken van link bonding/trunking, typt u emerge
net-misc/ifenslave.
Bonding wordt gebruikt om meer bandbreedte te creëren. Als u twee
netwerkkaarten in hetzelfde netwerk hebt, kunt u die samenvoegen zodat uw
toepassingen ze als één kaart zien, maar wel beide kaarten gebruiken.
Codevoorbeeld 6.1: bonding instellen in /etc/conf.d/net |
slaves_bond0="eth0 eth1 eth2"
config_bond0=( "null" )
depend_bond0() {
need net.eth0 net.eth1 net.eth2
}
|
3.g. Netwerkbrug instellen (802.1d ondersteuning)
Voor het gebruiken van een netwerkbrug typt u emerge
net-misc/bridge-utils.
Een netwerkbrug voegt netwerken samen. U kunt bijvoorbeeld een server instellen
die via een ADSL modem verbinding heeft met internet en via een wireless kaart
de andere computers in uw netwerk in staat stelt via het ADSL modem verbinding
te maken met het internet. Met een netwerkbrug kunt u de twee netwerkkaarten
verbinden.
Codevoorbeeld 7.1: Netwerkbrug instellingen in /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
}
|
Belangrijk:
Voor meer informatie over netwerkbruggen kunt u kijken in de handleiding
het benoemen van variabelen.
|
3.h. MAC Adres
Wanneer u sys-apps/baselayout-1.11.14 of nieuwer gebruikt, hoeft u geen
extra software te installeren om uw MAC adres te veranderen. Wanneer u echter
een willekeurig MAC adres wilt of een oudere versie van de baselayout gebruikt,
dan kunt u net-analyzer/macchanger installeren om gebruik te maken
van deze mogelijkheid.
Codevoorbeeld 8.1: MAC Adres veranderen |
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. Tunnelen
Om de functie tunnelen te gebruiken hoeft u niets te doen, dit is een standaard
functie.
Codevoorbeeld 9.1: Tunnelen instellen in /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 ondersteuning)
Voor VLAN ondersteuning typt u emerge net-misc/vconfig.
Een virtueel LAN is een groep netwerk apparaten die zich gedragen alsof ze
samen in een netwerk zitten - ook al hoeft dit niet het geval te zijn. VLAN
leden kunnen alleen leden van hetzelfde VLAN zien, ook al gebruiken ze dezelfde
netwerk verbinding.
Codevoorbeeld 10.1: VLAN instellen in /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" )
|
Belangrijk:
Voor het gebruik van VLAN kunt u ook kijken in de handleiding
het benoemen van variabelen
|
4. Draadloos netwerk
4.a. Inleiding
Op dit moment wordt het instellen van een wireless netwerk ondersteunt voor
wireless-tools en wpa_supplicant. Het belangrijkste om te
onthouden is dat een wireless netwerk niet ingesteld wordt op basis van de
interface, maar globaal.
wpa_supplicant is de beste keus voor uw netwerk, maar niet alle drivers
worden ondersteund. Voor een lijst van ondersteunde drivers kijkt u op wpa_supplicant site. Ook
kan wpa_supplicant op dit moment alleen ingestelde SSID's aan.
wireless-tools ondersteund praktisch elke netwerkkaart, maar het kan
geen verbinding maken met Acces Points die alleen WPA gebruiken.
Waarschuwing:
De driver van linux-wlan-ng wordt op dit moment niet ondersteund door
baselayout. Dit komt omdat linux-wlan-ng een geheel eigen manier heeft
om de netwerkkaart in te stellen. Er gaan geruchten dat de ontwikkelaars van
linux-wlan-ng een soort gelijke instelling willen gaan gebruiken als de
wireless-tools. Als dit gebeurt kunt u linux-wlan-ng gebruiken
met baselayout.
|
4.b. WPA Supplicant
WPA Supplicant is een
pakket waarmee u verbinding kunt maken met WPA Access Points. Het is redelijk
eenvoudig in te stellen en hoewel het nog in de beta fase is werkt bijna alles
zoals het moet.
Codevoorbeeld 2.1: Het installern wpa_supplicant |
# emerge net-wireless/wpa_supplicant
|
Belangrijk:
U moet CONFIG_PACKET aan hebben staan in uw kernel om
wpa_supplicant te kunnen gebruiken.
|
We moeten nu /etc/conf.d/net instellen, zodat we
wpa_supplicant gebruiken in plaats van wireless-tools
(als beiden geïnstalleerd zijn, is wireless-tools eerste keus).
Codevoorbeeld 2.2: /etc/conf.d/net instellen voor wpa_supplicant |
modules=( "wpa_supplicant" )
wpa_supplicant_eth0="-Dmadwifi"
|
Nota:
Als u de host-ap driver gebruikt moet u de kaart in Managed mode zetten,
voordat deze gebruikt kan worden met wpa_supplicant. U doet dit door
de variabee iwconfig_eth0="mode managed" toe te voegen in
/etc/conf.d/net.
|
Dit was eenvoudig, niet? We moeten wpa_supplicant echter nog in stellen,
en dat is wat moeilijker, al is dit afhankelijk van de beveiliging van het
Access Point waarmee u de verbinding wilt maken. Het onderstaande voorbeeld komt
rechtstreeks uit /etc/wpa_supplicant.conf.example. Dit bestand
komt met wpa_supplicant mee wanneer u het installeert.
Codevoorbeeld 2.3: Een voorbeeld /etc/wpa_supplicant.conf |
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. Wireless Tools
Basis instelling en Managed Mode
Wireless
Tools geeft een eenvoudige methode om een eenvoudig wireless netwerk via
WEP op te zetten. Hoewel WEP een zwakke beveiliging is, is het wel de meest
gebruikte.
Het instellen van wireless tools gebeurd via enkele variabelen. Het onderstaande
voorbeeld beschrijft alles wat u nodig heeft. Wat u moet onthouden is dat
geen configuratie betekent dat u verbinding zoekt met het sterkste onbeveiligde
netwerk in de buurt - er wordt altijd geprobeerd u ergens mee te verbinden.
Codevoorbeeld 3.1: Installeren van wireless-tools |
# emerge net-wireless/wireless-tools
|
Nota:
U kunt de instellingen voor uw draadloos netwerk in
/etc/conf.d/wireless opslaan, maar we raden aan om
/etc/conf.d/net te gebruiken.
|
Belangrijk:
U moet kijken in het hoofdstuk benoemen van variabelen voor
meer informatie.
|
Codevoorbeeld 3.2: Voorbeeld van een iwconfig setup in /etc/conf.d/net |
modules=( "iwconfig" )
key_ESSID1="[1] s:yourkeyhere key [1] enc open"
key_ESSID2="[1] aaaa-bbbb-cccc-dd key [1] enc restricted"
preferred_aps=( "ESSID1" "ESSID2" )
|
Verdere instellingen voor de keuze van een Access Point
U kunt extra optie toevoegen om een Acces Point te kiezen, maar meestal is
dit niet nodig.
U kunt zelf beslissen of u alleen verbindingen wilt met door u gekozen Access
Points of niet. Standaard zal altijd geprobeerd worden om een verbinding te
maken met een onbeveiligd Access Point, indien alle ingestelde opties werkten.
U kunt dit instellen met de variabele associate_order. De onderstaande
tabel laat de mogelijkheden zien.
| Waarde |
Beschrijving |
| any |
Standaard instelling |
| preferredonly |
Alleen verbinding maken met zichtbare AP's uit de voorkeurslijst |
| forcepreferred |
Probeer toch een verbinding te maken met de AP's uit de voorkeurslijst,
ook als ze niet worden gevonden tijdens een scan
|
| forcepreferredonly |
Scan niet naar AP's - probeer de AP's in de voorkeurslijst één voor één
|
| forceany |
Hetzelfde als forcepreferred + verbinden met elk ander beschikbaar
AP
|
Tot slot hebben we een de lijsten van de blacklist_aps en
unique_ap. blacklist_aps werkt op eenzelfde manier als
preferred_aps. unique_ap is altijd ja of nee en
bepaald of een tweede wireless interface een verbinding mag leggen met
hetzelfde Access Point als de eerste interface.
Codevoorbeeld 3.3: Voorbeeld met blacklist_aps en unique_ap |
blacklist_aps=( "ESSID3" "ESSID4" )
unique_ap="yes"
|
Ad-Hoc en Master Modes
Als u een Ad-Hoc knooppunt wilt opzetten als u geen Access Point kunt
bereiken in managed mode, dan kan dat.
Codevoorbeeld 3.4: Terugvallen op ad-hoc mode |
adhoc_essid_eth0="This Adhoc Node"
|
U wilt verbinding maken met Ad-Hoc netwerken of als in Master mode draaien om
zelf een Access Point te worden? De instelling om dat te doen staan hieronder.
U kunt WEP sleutels instellen zoals hierboven is beschreven.
Codevoorbeeld 3.5: Voorbeeld van een ad-hoc/master instelling |
mode_eth0="ad-hoc"
essid_eth0="This Adhoc Node"
channel_eth0="9"
|
Belangrijk:
Het onderstaande tekst is letterlijk overgenomen uit de BSD wavelan
documentatie. Er zijn 14 kanalen mogelijk. In Noord Amerika is het
gebruik van de kanalen 1-11 toegestaan, in het grootste gedeelte van Europa
de kanalen 1-13, in Frankrijk de kanalen 10-13 en in Japan alleen kanaal 14.
Als u twijfelt, kijk dan in de documentatie van uw netwerkkaart of Acces Point.
Zorg er in ieder geval voor dat u hetzelfde kanaal gebruik als uw Acces Point.
Voor de meeste in Noord Amerika en Europa verkochte kaarten is dit kanaal 3;
In Frankrijk is de standaard 11 en in Japan uiteraard kanaal 14.
|
Problemen met Wireless Tools
Er zijn nog enkele variabelen die u kunnen helpen wanneer u wireless kaart
niet naar behoren werkt. In de onderstaande tabel staan mogelijke
oplossingen.
| Variabele |
Standaard Instelling |
Beschrijving |
| iwconfig_eth0 |
|
Kijk in de iwconfig handleiding voor de mogelijke opties voor iwconfig
|
| iwpriv_eth0 |
|
Kijk in de iwpriv handleiding voor de mogelijke opties voor iwpriv
|
| sleep_scan_eth0 |
0 |
Het aantal seconden dat gewacht wordt voor een scan. Dit is nodig wanneer
de driver/firmware meer tijd nodig om te activeren.
|
| sleep_associate_eth0 |
5 |
Het aantal seconden dat gewacht wordt op een verbinding voordat wordt
gezocht naar een volgend Access Point
|
| associate_test_eth0 |
MAC |
Sommige drivers resetten het MAC adres niet naar een geldig alternatief
wanneer er iets fout gaat. Andere drivers resetten de kwaliteit van de
verbinding niet wanneer ze de verbinding verliezen. Mogelijke instellingen
zijn MAC, quality en all.
|
| scan_mode_eth0 |
|
Sommige drivers moeten scannen in ad-hoc mode, dus als het fout gaat
bij het scannen, stel hier dan ad-hoc in.
|
| iwpriv_scan_pre_eth0 |
|
Stuur iwpriv commando's naar de interface voor het scannen.
Kijk in de iwpriv handleiding voor de mogelijkheden.
|
| iwpriv_scan_post_eth0 |
|
Stuur iwpriv commando's naar de interface na het scannen.
Kijk in de iwpriv handleiding voor de mogelijkheden.
|
4.d. Instellen van de netwerk instellingen per ESSID
Het kan zijn dat u met een vast IP adres werkt als u verbinding heeft met
ESSID1 en dat u DHCP wilt gebruiken bij ESSID2. De meeste
module variabelen kunt u dan ook instellen per ESSID. Dat doen we als volgt.
Nota:
Dit werkt indien u wpa_supplicant of Wireless Tools gebruikt.
|
Belangrijk:
U kunt ook moeten kijken in deBenoemen van variabelen documentatie.
|
Codevoorbeeld 4.1: Instelling per ESSID instellen |
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. Extra functies toevoegen
5.a. Standaard functies en hun mogelijkheden
Er kunnen vier functies rondom start en stop worden
aangeroepen. Deze functies worden aangeroepen met een verwijzing naar een
interface naam, zo kunt u meedere adapters aansturen met één functie.
Zowel preup() als predown() geven de waarde 0 als resultaat
wanneer ze hun werk goed hebben gedaan. Het instellen van de interface kan
dan verder gaan. Als preup() een andere waarde dan nul als resultaat
heeft, wordt het instellen van de interface gestopt. Als dit bij
predown gebeurt wordt het uitschakelen van de interface gestopt.
De resultaten die postup() en postdown() geven worden genegeerd
omdat met deze informatie niets kan worden gedaan.
${IFACE} is wordt ingesteld op de interface die u wilt starten.
${IFVAR} is de waarde van ${IFACE}, maar dan in een formaat dat
bash kan gebruiken.
Codevoorbeeld 1.1: Voorbeelden van pre/post up/down functies |
preup() {
if mii-tool ${IFACE} 2> /dev/null | grep -q 'no link'; then
ewarn "No link on ${IFACE}, aborting configuration"
return 1
fi
if ethtool ${IFACE} | grep -q 'Link detected: no'; then
ewarn "No link on ${IFACE}, aborting configuration"
return 1
fi
return 0
}
predown() {
if is_net_fs /; then
eerror "root filesystem is network mounted -- can't stop ${IFACE}"
return 1
fi
return 0
}
postup() {
return 0
}
postdown() {
return 0
}
|
5.b. Wireless Tools functies en hun mogelijkheden
Nota:
Het onderstaande werkt niet met WPA Supplicant - maar de variabelen
${ESSID} en ${ESSIDVAR} wel beschikbaar voor postup().
|
De twee onderstaande functies ondersteuning de functie associate. De functies
roepen een interface aan en u kunt zodoende meerdere interfaces met één
functie aansturen.
De functie preassociate() geeft een 0 als resultaat wanneer alles werkt.
Het instellen van de interface kan dan verder gaan. Indien
preassociate() een andere waarde dan 0 als resultaat geeft, kan het
instellen van de interface niet verder gaan.
Het resultaat van de functie postassociate() wordt weer genegeerd, omdat
u niets hoeft te doen indien de functie niet werkt.
${ESSID} wordt ingesteld op de exacte ESSID van het access poaint waar u
verbinding mee wilt maken. ${ESSIDVAR} is de variabele ${ESSID},
maar dan bruikbaar gemaakt voor bash.
Codevoorbeeld 2.1: pre/post association functions |
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
}
|
Nota:
${ESSID} en ${ESSIDVAR} zijn niet te gebruiken in de functies
predown() en postdown().
|
6. Netwerk management
6.a. Netwerk Beheer
Als u vaak met uw computer onderweg bent, hebt u lang niet altijd een netwerk,
kabel of via een access point, tot uw beschikking. Ook kan het handig zijn
wanneer het netwerk automatisch start zodra u een netwerkkabel in de computer
steekt of wanneer er een access point wordt gevonden.
In dit hoofdstuk vindt u enkele toepassingen die u hierbij kunnen helpen.
Nota:
Deze handleiding bespreekt alleen ifplugd, maar er zijn ook
alternatieven als quickswitch beschikbaar.
|
6.b. ifplugd
ifplugd is een
daemon die uw netwerk interfaces opstart en stopt wanneer de netwerkkabel in of
uit de computer gaat. Het kan ook access points detecteren wanneer u in de
buurt komt.
Codevoorbeeld 2.1: Installeren van ifplugd |
# emerge sys-apps/ifplugd
|
Het instellen van ifplugd is eenvoudig. Het bestand met de instellingen staat
in /etc/conf.d/ifplugd. Voor meer details kunt u kijken in
de handleiding op uw pc, man ifplugd.
Codevoorbeeld 2.2: Voorbeeld instellingen voor ifplug |
INTERFACES="eth0"
AUTO="no"
BEEP="yes"
IGNORE_FAIL="yes"
IGNORE_FAIL_POSITIVE="no"
IGNORE_RETVAL="yes"
POLL_TIME="1"
DELAY_UP="0"
DELAY_DOWN="0"
API_MODE="auto"
SHUTDOWN="no"
WAIT_ON_FORK="no"
MONITOR="no"
ARGS=""
MONITOR_wlan0="yes"
DELAY_UP_wlan0="5"
DELAY_DOWN_wlan0="5"
|
The contents of this document are licensed under the Creative Commons -
Attribution / Share Alike license.
|