Indhold:
Til at starte med, velkommen til Gentoo. Du går nu ind i en verden af valg og ydelse. Gentoo handler om valg. Når du installerer Gentoo vil du se dette flere gange -- du kan vælge hvor meget du selv vil kompilere, hvordan du vil installer Gentoo, hvilken systemlogger du vil have, osv.
Gentoo er en hurtig, moderne metadistibution med et rent og fleksibelt design. Gentoo er bygget op omkring frit software og skjuler ikke hvad der ligger under motorhjelmen for sine brugere. Portage, pakke-vedligeholdelsessystemet, er skrevet i Python, hvilket betyder at du nemt kan se og ændre i kildekoden. Gentoos pakkesystem benytter kildekoder (selvom der også er understøttelse af præ-kompilerede pakker) og konfigurering af Gentoo sker gennem normale tekstfiler. Med andre ord, åbent overalt.
Det er meget vigtigt, at du forstår at valg er hvad der får Gentoo til at køre. Vi vil ikke tvinge dig til noget du ikke kan lide. Hvis du føler vi gør det, så send en fejlrapport
Hvordan er installationen struktureret?
Gentoo installationen kan ses som en 10-trins procedure, svarende til kapitel 2 - 11. Hvert trin vil resultere i en ny tilstand.
Når du er stillet overfor et valg, vil vi gøre vores bedste for at forklare hvilke fordele og ulemper, der er. Vi vil så fortsætte med standardvalget, mærket med "Standard:" i titlen. De andre muligheder er mærket med "Alternativt:". Tro ikke at standard er hvad vi anbefaler. Det er derimod det vi tror at de fleste vil bruge.
Nogle gange kan du følge et valgfrit trin. Sådanne trin er mærket med "Valgfrit:" og behøves ikke for at få installeret Gentoo. Imidlertidig vil nogle valgfrie trin afhænge af tidligere beslutninger du har taget. Vi vil informere dig når dette sker, både når du laver valget og lige før det valgfrie trin er beskrevet.
Du kan installere Gentoo på mange forskellige metoder. Du kan hente og installere fra en af vores installationsCDer, fra en eksisterende distribution, fra en startbar CD (som f.eks. Knoppix), fra en netopstartet miljø, fra en redningsdiskette osv.
Dette dokument dækker installationen ved brug af Gentoo installationsCDer eller i enkelte tilfælde, et netopstartet miljø. Denne installation formoder at du vil have den sidste nye version af alle pakker. Hvis du vil udføre en netværksfri installation, bør du læse Gentoo 2005.1 Handbook (engelsk), som indeholder installationsinstruktioner til et netværksfrit miljø.
Noter også at hvis du planlægger at bruge GRP (Gentoo Reference Platform, en samling af præ-byggede pakker, som er ment til brug direkte efter en Gentoo-installation), skal du følge instruktionerne i Gentoo 2005.1 Handbooks (engelsk).
For at få hjælp til andre installationsmetoder, læs vores Alternative installationsinstruktioner. Vi har også et Gentoo installation tips og tricks(engelsk) dokument, som også kan være interessant at læse. Hvis du føler at de nuværende installationsinstruktioner er for meget, kan du bruge vores Hurtige installationsvejledning klar fra vores Dokumentationsressourcer, hvis velogmærke din arkitektur har sådanne et dokument.
Du har også mange muligheder: du kan kompilere hele dit system fra bunden af eller installere præ-byggede pakker, for at få dit Gentoo-miljø op at køre på ingen tid. Og selvfølgelig får du indledende løsninger, hvor du ikke behøver at kompilere det hele, men kan starte fra et semi-klart system.
Hvis du finder problemer i installationen (eller i installationsdokumentationen) så besøg vores fejlopfølgningssystem og se om fejlen er kendt. Hvis dette ikke er tilfældet så opret venligst en fejlrapport, så vi kan se på det. Vær ikke bange for de udviklere, der bliver tilknyttet (din) fejl -- de spiser normalt ikke folk.
Noter venligst at, selv dokumentet du nu læser er arkitektur-specifik, indeholder den også referencer til andre arkitekturer. Dette er sket, fordi at store dele af Gentoo-håndbogen bruger kildekoder, som er fælles for alle arkitekturer (for at undgå overlapninger af opgaver og udtømning af udviklingsressourcer). Vi vil prøve at holde det til et minimum for at undgå forvirring.
Hvis du er usikker på om et problem er en brugerfejl (en fejl du har lavet på trods af at du har læst dokumentationen) eller et softwareproblem (en fejl vi har lavet trods vi har testet installationen/dokumentationen) er du velkommen til at gå ind på #gentoo på irc.freenode.net. Du er selvfølgelig også velkommen selvom du ikke har problemer.
Hvis du har et spørgsmål om Gentoo, så tjek vores ofte stillede spørgsmål, som er tilgængelig via Gentoo dokumentationen. Du kan også se de OSS på vores forums. Hvis du ikke kan finde svar der så spørg på #gentoo, vores IRC-kanal på irc.freenode.net. Ja, mange af os er faktisk nørder, der sidder på IRC :-)
Før vi starter, viser vi en liste over de hardwarekrav, som du skal opfylde for at installere Gentoo på din computer.
| Processor | IBM RS/6000s, Power Macintosh G5, IBP pSeries og IBM iSeries |
| Hukommelse | 64 MB |
| Diskplads | 1,5 GB (udover swapplads) |
| Swapplads | Mindst 256 MB |
For en fuld liste gå til http://www.linuxppc64.org/hardware.shtml.
2.b. Gentoo Linux Installationsmetoderne
Gentoo Linux kan blive installeret ved brug af tre stage-tarball filer. En stage-fil er en tarbal (komprimeret arkiv), som indeholder et minimalt miljø.
For at hjælpe dig med at vælge den stage-fil, som du ønsker at bruge, har vi nedskrevet de typiske fordele og ulemper for hver fil.
En stage1 er brugt, når du vil bootstrappe og bygge hele systemet fra bunden af.
Ved at starte fra stage1, tillader du dig fuld kontrol over optimeringsindstillingerne og optimal bygge-tidsfunktionalitet, som fra starten af, er aktiveret på dit system. Dette gør stage1-installationen god til power-brugere, som ved hvad de gør. Det er også en udemærket installationsmetode for dem, som har lyst til at lære mere om den indre funktionalitet af Gentoo Linux.
| Stage1 | Fordele og ulemper |
| + | Tillader dig at have fuld kontrol over optimeringsindstillingerne og optimal bygge-tidsfunktionalitet, som er fra starten af, aktiveret på dit system |
| + | Brugbart for power-brugere, som ved hvad de gør |
| + | Tillader dig at lære mere om den indre funktionalitet af Gentoo |
| - | Installationen er lang tid om at afslutte |
| - | Hvis du ikke har tænkt dig at fin-indstille, er det sikkert spild af tid |
| - | Kræver en fungerende Internet-forbindelse igennem installationen |
En Stage2 er brugt til at bygge hele systemet fra en "semi-samlet" bootstrappet status.
Stage2 installationer tillader dig at springe over bootstrap-processen; ved at gøre dette er fint, hvis du er tilfreds med de optimeringsindstillinger, som vi har valgt til din specifikke stage2-tarball.
| Stage2 | Fordele og ulemper |
| + | Du behøver ikke at bruge bootstrap |
| + | Hurtigere end at starte fra stage1 |
| + | Du kan stadigvæk fin-indstille |
| - | Du kan ikke indstille så meget som i stage1 |
| - | Det er stadigvæk ikke den hurtigste metode at installere Gentoo |
| - | Du bliver nødt til at acceptere de optimeringer vi har lavet til bootstrap |
| - | Kræver en fungerende Internet-forbindelse igennem installationen |
En stage3 installation indeholder et Gentoo Linux basissystem, som er bygget for dig. Du behøver kun at bygge få pakker, som vi ikke kan vælge for dig på forhånd.
At vælge stage3, giver dig den hurtigste installation af Gentoo Linux, men det betyder også at dit basissystem vil have de optimeringsindstillinger, som vi har valgt for dig (og lad os være ærlig, det er gode indstillinger, som vi med omhug har valgt til at forøge præstationerne, samt vedligeholde stabilitet). Stage3 kræves også, hvis du vil installere Gentoo ved brug af præbyggede pakker eller uden en netværksforbindelse.
| Stage3 | Fordele og ulemper |
| + | Hurtigste metode for at få et Gentoo basissystem |
| - | Du kan ikke fin-indstille dit system - det er allerede bygget |
| - | Du kan ikke blære dig med at have brugt stage1 eller stage2 |
Du vil måske være interesseret i at høre, at hvis du vælger forskellige optimeringsindstillinger efter at have installeret Gentoo, vil du have mulighed for at gensamle hele systemet med de ny optimeringsindstillinger.
2.c. Gentoo installationsCDerne
Gentoo installationsCDerne er startbare CDer, som indeholder et selv-eksisterende Gentoo-miljø. De tillader dig at starte Linux fra CDen. Igennem opstartsprocessen vil dit hardware blive fundet og de passende drivere bliver hentet. De er vedligeholdt af Gentoo udviklere.
Alle installationsCDer tillader dig at starte, opsætte netværk, forberede dine partitioner samt starte med at installere Gentoo fra Internet. Vi leverer i øjeblikket to installationsCDer, som er lige gode til at installere Gentoo fra, så længe du planlægger at udføre en Internet-baseret installation, ved brug af de sidste nye pakker.
Hvis du ønsker at installere Gentoo uden en fungerende Internet-forbindelse, læs venligst vores installationsinstruktioner beskrevet i Gentoo 2005.0 Handbook (engelsk).
Til PowerPC64-arkitekturen leverer vi kun en minimal installationsCD, en lille, ingen-pjat, opstartbar CD med det ene formål at opstarte systemet, forberede netværk og fortsætte med installationen af Gentoo.
Gentoos minimale installationsCD
Den minimale installationsCD er kaldet install-ppc64-g5-minimal-2005.0.iso eller install-ppc64-ibm-minimal-2005.0.iso og optager kun 350 MB diskplads. Du kan bruge denne installationsCD til at installere Gentoo, men, som altid, kun med en fungerende Internet-forbindelse.
| Minimale installationsCD | Fordele og ulemper |
| + | Mindste download |
| + | Du kan lave en stage1, stage2 eller stage3 ved at hente stage-tarballen fra Internet |
| - | Indeholder ingen stages, ingen Portage-snapshot, ingen præ-byggede pakker og derfor ikke brugbar til netværksfrie installationer. |
2.d. Hent, brænd og start en Gentoo installationsCD
At Hente og brænde installationsCDerne
Du har valgt at bruge en Gentoo installationsCD. Vi vil først starte med at hente og brænde den valgte installationsCD. Vi har forinden diskuteret de mulige installationsCDer, men hvor kan du finde dem?
Du kan hente en installationsCD på en af vores filspejle. installationsCDerne er placeret i experimental/ppc64/installcd-folderen.
Indenfra dette bibliotek kan du finde de såkaldte ISO-filer. Disse er fulde CD-billedfiler, som du kan skrive til en CD-R.
Hvis du er bekymret om din downloaded fil er korrupt eller ikke, så kan du tjekke dens MD5 checksum og sammenligne den med den MD5 checksum vi stiller til rådighed (såsom install-ppc64-g5-minimal-2005.0.iso.md5). Du kan tjekke MD5 checksummen med md5sum værktøjet under Linux/Unix eller md5sum til Windows.
En anden måde at tjekke ægtheden af den hentede fil, er ved at bruge GnuPG til verificere den krypterede signatur (underskrift), som vi leverer (filen som ender med .asc). Hent signaturfilen og modtag den offentlige nøgle:
Kode oversigt 4.1: Modtagelse af den offentlige nøgle |
$ gpg --keyserver pgp.mit.edu - -recv-keys 17072058
|
Verficer nu signaturen:
Kode oversigt 4.2: Verificering af den krypterede signatur |
$ gpg - -verify <signature file> <downloaded iso>
|
For at brænde de hentede ISO(er), skal du vælge 'raw-burning'. Hvordan du gør dette, er meget afhængigt at programmet. Vi vil diskutere cdrecord og k3B her; der kan findes mere information i vores Gentoo FAQ.
Standard: Opstart af installationsCDen på Apple/IBM
Placer installationsCDen i CDROM-drevet og genstart systemet. Hold 'C' tasten nede ved opstart. Du vil blive budt velkommen med en venlig velkomst besked og en boot: prompt i bunden af skærmen.
Du er også i stand til at finstille nogle kernemuligheder ved denne prompt. Den følgende tabel lister de tilgængelige opstartsmuligheder som du kan tilføje:
| Opstartsmuligheder | Beskrivelse |
| video | Denne mulighed tager en af de følgende leverandør-specifikke tags: radeonfb, rivafb, atyfb, aty128 eller ofonly. Du kan efterfølge dette tag med den opløsning og opdateringrate du vil bruge. F.eks. video=radeonfb:1280x1024@75. Hvis du usikker på hvad du skal vælge, vil ofonly bestemt virke. |
| nol13 | Slår level 3 cache fra på nogle powerbooks (nødvendig minimum for 17'') |
| debug | Slår opstart med skrift til skærmen til, laver en initrd shell der kan bruges til at fejlrette installationsCDen |
| sleep=X | Venter X sekunder før den fortsætter; dette er nødvendigt for nogle gamle SCSI-CDROM-drev, som ikke sætter fart nok på CDen. |
| bootfrom=X | Start fra en anden enhed |
Ved denne prompt, tryk Enter, og et komplet Gentoo Linux miljø vil blive hentet fra CDen. Fortsæt med Og når du har genstartet ....
Til pSeries bokse, vil cd'erne måske ikke altid boote automatisk. Du bliver måske nødt til at sætte din cdrom som en bootbar enhed i multi-boot menuen. (F1 ved opstart) Den anden mulighed er at hoppe ind i OF og gøre det der:
1) Boot ind i OF (dette er 8 fra den serielle konsol eller F8 fra en grafisk konsol, start med at trykke på knappen når du ser beskeder for keyboard, mus etc.
2) kør kommandoen 0> boot cdrom:1,yaboot
3) kig og nyd det!
Du burde nu have en root ("#") prompt på den nuværende konsole, og du kan også skifte til andre konsoler ved at bruge Alt-fn-F2, Alt-fn-F3 og Alt-fn-F4. Gå tilbage til den oprindelige konsol, ved at trykke Alt-fn-F1.
Hvis du installerer Gentoo på et system med ikke-US tastatur (som dansk tastatur), brug loadkeys til at hente keymap til dit tastatur. For at vise en liste over mulige keymaps, udfør denne kommando: ls /usr/share/keymaps/i386.
Kode oversigt 4.3: Udføre en liste over mulige keymaps |
(PPC bruger x86 keymap på de fleste systemer. mac/ppc keymap der stilles til rådighed på installationsCDen er ADB keymaps og ubrugelige med installationsCDens kerne) # ls /usr/share/keymaps/i386 |
Hente nu det keymap du ønsker:
Kode oversigt 4.4: Hente og bruge en keymap |
# loadkeys dk-latin1
|
Fortsæt nu med Ekstra Hardwareopsætning.
Når installationsCDen starter, prøver den at finde alle dine hardware-enheder og at hente de passende kerne-moduler for at understøtte dit hardware. I langt de fleste tilfælde gør den et godt arbejde. Men, i nogle tilfælde, vil den ikke automatisk hente de kerne-moduler, du har brug for. Hvis PCI automatisk-finding ikke fik noget af dit systems hardware, bliver du nødt til at hente de passende kerne-moduler manuelt.
I det næste eksempel, vil vi prøve at hente 8139too-modulet (understøttelse til specifikke slags netværksgrænseflader):
Kode oversigt 4.5: Hentning af kerne-moduler |
# modprobe 8139too
|
Valgfrit: Finindstilling af harddisk-ydelse
Hvis du er en expert-bruger vil du måske gerne fin-indstille IDE harddisk-ydelse ved brug af hdparm. Med -tT valgmuligheden kan du teste ydelsen af dine diske (Udfør det flere gang for at få et mere præcist udtryk):
Kode oversigt 4.6: Test af harddisk-ydelse |
# hdparm -tT /dev/hda
|
For at fin-indstille, kan du bruge alle disse følgende eksempler (eller experimentere selv), som bruger /dev/hda som harddisk (udskift det med din egen harddisk):
Kode oversigt 4.7: Fin-indstilling af harddisk-ydelse |
Aktivering af DMA: # hdparm -d 1 /dev/hda Deaktivering af DMA + sikre ydelse-udvidelsesmuligheder: # hdparm -d 1 -A 1 -m 16 -u 1 -a 64 /dev/hda |
Hvis du planlægger at give adgang til andre folk til dit installationsmiljø eller vil chatte ved brug af irssi uden root-privilegier (af sikkerhedsårsager), bliver du nødt til at lave de nødvendige brugerkonti og ændre root kodeordet.
For at ændre root kodeordet, brug passwd-værktøjet:
Kode oversigt 4.8: Ændring af root kodeordet |
# passwd Password: (Skriv dit nye kodeord) Re-enter password: (Skriv dit nye kodeord igen) |
For at lave en brugerkonto, skal vi først skrive hans brugernavn, fulgt af et kodeord. Vi bruger useradd og passwd til disse opgaver. I det næste eksempel, laver vi en bruger, som bliver kaldet "jens".
Kode oversigt 4.9: Skabelse af en brugerkonto |
# useradd -m -G users jens # passwd jens New password: (Skriv jens' kodeord) Re-enter password: (skriv jens' kodeord igen) |
Du kan ændre din brugers id fra root til den nyoprettede bruger ved brug af su:
Kode oversigt 4.10: Ændring af bruger id |
# su - jens
|
Valgfrit: At kunne se dokumentationen imens du installerer
Hvis du ønsker at se Gentoo-håndbogen (enten fra CD eller online) igennem installationen, vær sikker på at du har oprettet en brugerkonto (se Valgfrit: brugerkonto). Så tryk Alt-F2 for at gå til en ny terminal og log ind.
Du kan se den ved også at bruge links2, men kun efter at have afsluttet Opsætning af netværk-kapitlet (ellers kan du ikke gå på Internet for at se dokumentet):
Kode oversigt 4.11: Se dokumentationen online |
# links2 http://www.gentoo.org/doc/en/handbook/handbook-ppc64.xml
|
Du kan gå tilbage til din originale terminal ved at trykke Alt-F1.
Valgfrit: Start af en SSH-daemon (baggrundsprocess)
Hvis du vil tillade andre bruger at få adgang til din computer, imens du installerer Gentoo (måske fordi at disse brugere vil hjælpe dig med at installere Gentoo, eller måske endda gøre det for dig), vil du blive nødt til at lave en brugerkonto til dem, og måske endda give dem dit root kodeord (gør det kun hvis du virkelig tror fuldt ud på denne bruger).
For at starte en SSH-daemon op, udfør følgende kommando:
Kode oversigt 4.12: Start af en SSH-daemon |
# /etc/init.d/sshd start
|
For at være i stand til at bruge sshd, skal du først sætte dit netværk op. Fortsæt til næste kapitel som omhandler Opsætning af dit netværk.
3.a. Automatisk netværksfinding
Hvis dit system er sat på et Ethernet-netværk via en DHCP-server, er det højt sandsynligt at din netværksopsætning allerede er opsat automatisk for dig. Hvis dette er tilfældet, bør du have mulighed for at tage brug af de mange inkluderede netværksrelaterede kommandoer på installationsCDen, som f.eks. ssh, scp, ping, irssi, wget og links samt andre.
Hvis netværket er opsat for dig, vil /sbin/ifconfig-kommandoen vise en liste over netværksgrænseflader, som udover lo, f.eks. er eth0:
Kode oversigt 1.1: /sbin/ifconfig ved en fungerende netværksopsætning |
# /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 |
Hvis du har adgang til Internet igennem en proxy, bliver du måske nødt til at opsætte oplysninger om proxy under installationen. Det er meget let at definere en proxy; du behøver kun at definere en variabel, der indeholder informationen om proxy-serveren.
I de fleste tilfælde kan du nøjes med at definere variablerne med serverens værtsnavn. Nedenfor er vist nogle eksempler hvor det antages at proxy'en er proxy.gentoo.org og porten er 8080.
Kode oversigt 1.2: Angivelse af proxy-servere |
(Hvis proxy'en skal bruges til HTTP-trafik) # export http_proxy="http://proxy.gentoo.org:8080" (Hvis proxy'en skal bruges til FTP-trafik) # export ftp_proxy="ftp://proxy.gentoo.org:8080" (Hvis proxy'en skal bruges til RSYNC-trafik) # export RSYNC_PROXY="proxy.gentoo.org:8080" |
Hvis din proxy kræver et brugernavn og kodeord, skal du bruge den følgende syntaks for variablen.
Kode oversigt 1.3: Tilføjelse af brugernavn og kodeord til en proxy-variabel |
http://username:password@proxy.gentoo.org:8080 |
Du kan prøve at pinge din internetudbyders DNS-server (der findes i /etc/resolv.conf) og en hjemmeside som du kender, hvis du vil være sikker på dine pakker når nettet, DNS navneopslag fungerer etc..
Kode oversigt 1.4: Yderligere test af netværket |
# ping -c 3 www.yahoo.com
|
Hvis du kan bruge netværket, så spring resten af denne sektion over og fortsæt med Forberedelse af harddiske. Hvis ikke, læs videre.
3.b. Automatisk netværksopsætning
Hvis ikke netværket virker med det samme, har du på nogle installationsmedier mulighed for at bruge net-setup (til normale eller trådløse netværk) eller adsl-setup (til ADSL-brugere) eller pptp (til PPTP-brugere, kun på x86).
Hvis dit installationsmedie ikke indeholder nogen af disse værktøjer eller dit netværk fungerer ikke endnu, så fortsæt med Manuel netværksopsætning.
Den simpleste måde at opsætte sit netværk på, hvis det ikke blev opsat automatisk, er at køre scriptet net-setup:
Kode oversigt 2.1: At køre af scriptet net-setup |
# net-setup eth0
|
net-setup vil stille dig nogle spørgsmål om dit netværksmiljø. Når det er overstået burde du have en fungerende netværksforbindelse. Test din netværksforbindelse som angivet før. Hvis testen er positiv, så tillykke! Du er nu klar til at installere Gentoo. Spring resten af denne sektion over og fortsæt med Forberedelse af harddiske.
Hvis dit netværk stadig ikke virker, så fortsæt med Manuel netværksopsætning.
Hvis du har brug for PPPoE for at få forbindelse til Internettet, så har installationsCDen (hvilken som helst version) gjort det nemt for dig ved at inkludere rp-pppoe. Brug scriptet adsl-setup til at opsætte din forbindelse. Du vil blive spurgt om hvilken Ethernet enhed der er forbundet til dit ADSL-modem, brugernavn og adgangskode, IP-adressen til din DNS-server og om du vil have en standard firewall eller ej.
Kode oversigt 2.2: Brug af rp-pppoe |
# adsl-setup # adsl-start |
Hvis noget går galt, så dobbelttjek at du har tastet brugernavn og kodeord korrekt ind ved at kigge i /etc/ppp/pap-secrets eller /etc/ppp/chap-secrets og vær sikker på du bruger den rigtige Ethernet enhed. Hvis din Ethernet enhed ikke eksisterer, bliver du nødt til at indlæse de rigtige netværksmoduler. I så fald bør du fortsætte med Manuel netværksopsætning hvor vi forklarer hvordan de rigtige netværksmoduler indlæses.
Hvis alt virkede, kan du fortsætte med Forberedelse af harddiske.
Bemærk: PPTP-understøttelse er kun tilgængelig til x86 |
Hvis du har brug for PPTP, kan du benytte pptpclient, som er på vores installationsCDer. Men først er du nødt til at sikre dig at din opsætning er korrekt. Rediger i /etc/ppp/pap-secrets eller /etc/ppp/chap-secrets så den indeholder den rigtige kombination af brugernavn og kodeord:
Kode oversigt 2.3: Redigering af /etc/ppp/chap-secrets |
# nano -w /etc/ppp/chap-secrets
|
Tilpas /etc/ppp/options.pptp hvis det er nødvendigt:
Kode oversigt 2.4: Redigering af /etc/ppp/options.pptp |
# nano -w /etc/ppp/options.pptp
|
Når det er gjort, skal du bare køre pptp (sammen med de indstillinger du ikke kunne angive i options.pptp) for at forbinde til serveren:
Kode oversigt 2.5: Forbindelse til en opkaldsserver |
# pptp <server ip>
|
Fortsæt nu med Forberedelse af harddiske.
Indlæsning af de rigtige netværksmoduler
Når installationsCDen starter op, prøver den på at finde alle dine hardwareenheder og indlæse de rigtige kerne moduler (drivere) for at understøtte din hardware. I langt hovedparten af tilfældene gør den sit job meget godt. I nogle tilfælde vil den dog ikke automatisk indlæse de kerne moduler du har brug for.
Hvis net-setup eller adsl-setup fejlede, så er det muligt at dit netkort ikke blev fundet med det samme. Det betyder at du selv bliver nødt til at indlæse de rigtige kerne moduler.
For at se hvilke kerne moduler vi tilbyder til netværk, så brug ls:
Kode oversigt 3.1: Søgning efter tilgængelige moduler |
# ls /lib/modules/`uname -r`/kernel/drivers/net
|
Hvis du finder en driver til dit netkort, så brug modprobe til at indlæse kerne modulet:
Kode oversigt 3.2: Brug af modprobe til at indlæse et kerne modul |
(Som et eksempel indlæser vi pcnet32 modulet) # modprobe pcnet32 |
Brug ifconfig til at undersøge om dit netkort er fundet nu. Et fundet netkort vil resultere i noget lignende dette:
Kode oversigt 3.3: Test af tilgængelighed af netkort, positiv |
# 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)
|
Hvis du til gengæld modtager følgende fejl, er netkortet ikke fundet:
Kode oversigt 3.4: Test af tilgængelighed af netkort, negativ |
# ifconfig eth0
eth0: error fetching interface information: Device not found
|
Hvis du har flere netværkskort i dit system, så er de navngivet eth0, eth1, osv. Vær sikker på at det netkort du vil bruge virker fint og husk at bruge den korrekte navngivning igennem dette dokument. Vi antager at det er netværkskortet eth0 der bliver brugt.
Hvis du nu har et fundet netkort, kan du prøve net-setup eller adsl-setup igen (hvilket burde virke), men for de hardcore folk blandt jer, vil vi forklare hvordan netværket opsættes manuelt.
Vælg en af de følgende sektioner, baseret på din netværksopsætning:
DHCP (Dynamic Host Configuration Protocol) gør det muligt at modtage netværksinformationer automatisk (IP-adresse, netmaske, broadcast-adresse, gateway, navneservere etc.). Det virker kun hvis du har en DHCP-server på dit netværk (eller hvis din udbyder tilbyder en DHCP-tjeneste). For at få en netværksenhed til at modtage denne information automatisk skal du bruge dhcpcd:
Kode oversigt 3.5: Brug af dhcpcd |
# dhcpcd eth0 Nogle netværksadmistratorer kræver at du bruger værtsnavnet og domænenavnet leveret af DHCP-serveren. I det tilfælde, brug # dhcpcd -HD eth0 |
Hvis dette virker (prøv at pinge en internetserver som Google), er alt indstillet og du er klar til at fortsætte. Spring resten af denne sektion over og fortsæt med Forberedelse af harddiske.
Forberedelse til trådløs adgang
Bemærk: Understøttelse for iwconfig kommandoen er kun muligt på x86-, amd64- og ppc-installationsCDer. Du kan du stadig få udvidelserne til at virke ved at følge instruktionerne ved linux-wlan-ng projektet(engelsk). |
Hvis du bruger et trådløs (802.11) kort, skal du måske opsætte dine trådløse indstillinger før du fortsætter. For at se nuværende trådløse indstillinger for dit kort, kan du bruge iwconfig. Kørsel af iwconfig vil måske vise noget lignende dette:
Kode oversigt 3.6: Visning af nuværende trådløse indstillinger |
# 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
|
Bemærk: Nogle trådløse kort vil have enhedsnavnet wlan0 eller ra0 i stedet for eth0. Køre iwconfig uden nogen kommando-line parametre for at finde det korrekte enhedsnavn. |
For de fleste brugere, er der kun to indstillinger, som kan være vigtige at ændre, ESSID (trådløs netværksnavn) eller WEP-nøglen. Hvis ESSID og Access Point-adressen vist, allerede er sat til dit access point, og du bruger ikke WEP, så vil dit trådløse netværk virke. Hvis du mangler at ændre din ESSID, eller tilføje en WEP-nøgle, kan du udføre følgende kommandoer:
Kode oversigt 3.7: Ændring af ESSID og/eller tilføje WEP-nøgle |
(Dette indstiller netværksnavnet til "GentooNode") # iwconfig eth0 essid GentooNode (Dette indstiller en hex WEP-nøgle) # iwconfig eth0 key 1234123412341234abcd (Dette indstiller en ASCII-nøgle - foranstil det med "s:") # iwconfig eth0 key s:some-password |
Du kan bekræfte dine trådløse indstillinger igen ved brug af iwconfig. Når du har et trådløs netværk fungerende, kan du fortsætte med IP-niveau netværksopsætning, som beskrevet i næste sektion (Forståelse af netværksterminologi) eller bruge net-setup værktøjet, som bekrevet førhen.
Forståelse af netværksterminologi
Bemærk: Hvis du kender din IP-adresse, broadcast-adresse, netmaske og dine navnservere kan du springe denne undersektion over og fortsætte med Brug af ifconfig og route. |
Hvis alt er slået fejl indtil videre, bliver du nødt til at opsætte netværket manuelt. Det er langt fra svært. Men du skal være lidt inde i netværksterminologi, for at kunne opsætte dit netværk tilfredsstillende. Når du er færdig med at læse dette vil du vide hvad en gateway er, hvad en netmaske bruges til, hvordan enbroadcast-adresse er dannet og hvorfor du har brug for navneservere.
I et netværk er værter identificeret af deres IP-adresse (internetprotokol-adresse). En sådan adresse er en kombination af fire tal mellem 0 og 255. Det er i hvert fald sådan vi opfatter det. I virkeligheden består en IP-adresse af 32 bit (ettaller og nuller). Lad os se på et eksempel:
Kode oversigt 3.8: Eksempel på en IP-adresse |
IP-adresse (tal): 192.168.0.2
IP-adresse (bit): 11000000 10101000 00000000 00000010
-------- -------- -------- --------
192 168 0 2
|
En IP-adresse er unik for en vært, hvad angår alle tilgængelige netværk, hvilket vil sige at alle værter, du kan nå, skal have unikke IP-adresser. For at kunne skelne mellem en vært inden for et netværk og en vært uden for et netværk er IP-adressen delt op i to: netværksdelen og værtsdelen.
Adskillelsen er skrevet ned med netmasken, en samling af ettaller efterfulgt af nuller. Den del af IP'en der kan lægges på ettallerne er netværksdelen, den anden er værtsdelen. Netmasken kan skrives ned som en IP-adresse.
Kode oversigt 3.9: Eksempel på adskillelse af netværk og vært |
IP-adresse: 192 168 0 2
11000000 10101000 00000000 00000010
Netmaske: 11111111 11111111 11111111 00000000
255 255 255 0
+--------------------------+--------+
Netværk Vært
|
Med andre ord er 192.168.0.14 stadig en del af vores netværk i eksemplet, mens 192.168.1.2 ikke er.
Broadcast-adressen er en IP-adresse med den samme netværksdel som dit netværk, men kun med ettaller som værtsdel. Alle værter på netværket lytter til denne IP-adresse. Dette er virkeligt tiltænkt broadcasting af pakker.
Kode oversigt 3.10: Broadcast-adresse |
IP-adresse: 192 168 0 2
11000000 10101000 00000000 00000010
Broadcast: 11000000 10101000 00000000 11111111
192 168 0 255
+--------------------------+--------+
Netværk Vært
|
For at kunne surfe på Internettet, bliver du nødt til at vide hvilken vært, der deler internetforbindelsen. Denne vært kaldes en gateway. Da dette er en regulær vært, har den en almindelig IP-adresse (fx 192.168.0.1).
Vi har tidligere nævnt at alle værter har sin egen IP-adresse. For at kunne nå denne vært med et navn (i stedet for en IP-adresse) har du brug for en tjeneste der oversætter et navn (fx dev.gentoo.org) til en IP-adresse (fx 64.5.62.82). En sådan tjeneste kaldes en navnetjeneste. For at kunne benytte sådan en tjeneste er du nødt til at definere de nødvendige navneservere i /etc/resolv.conf.
Nogle gange fungerer din gateway også som din navneserver. Ellers er du nødt til at indtaste navneserveren der bliver tilbudt af din internetudbyder.
For at opsummere, så vil du have brug for følgende information inden du fortsætter:
| Netværksdel | Eksempel |
| Din IP-adresse | 192.168.0.2 |
| Netmaske | 255.255.255.0 |
| Broadcast-adresse | 192.168.0.255 |
| Gateway | 192.168.0.1 |
| Navneserver(e) | 195.130.130.5, 195.130.130.133 |
Opsætningen af dit netværk består af tre dele. Først tildeler vi os selv en IP-adresse ved at benytte ifconfig. Så indstiller vi routing til gateway ved hjælp af route. Til sidst slutter vi af med at placere IP-adresserne på navneserverne i /etc/resolv.conf.
For at tildele en IP-adresse har du brug for din IP-adresse, broadcast-adresse og netmasken. Udfør så følgende kommando, hvor du udskifter ${IP_ADDR} med din IP-adresse, ${BROADCAST} med din broadcast-adresse og ${NETMASK} med din netmaske:
Kode oversigt 3.11: Brug af ifconfig |
# ifconfig eth0 ${IP_ADDR} broadcast ${BROADCAST} netmask ${NETMASK} up
|
Konfigurer nu routing med route. Skift ${GATEWAY} ud med din gateways IP-adresse:
Kode oversigt 3.12: Brug af route |
# route add default gw ${GATEWAY}
|
Åbn nu /etc/resolv.conf med din foretrukne editor (i vores eksempel bruger vi nano):
Kode oversigt 3.13: Oprettelse af /etc/resolv.conf |
# nano -w /etc/resolv.conf
|
Sæt nu din(e) navneserver(e) ind i følgende skabelon. Sørg for at udskifte ${NAMESERVER1} og ${NAMESERVER2} med de rigtige navneserver-adresser:
Kode oversigt 3.14: /etc/resolv.conf skabelon |
nameserver ${NAMESERVER1}
nameserver ${NAMESERVER2}
|
Det var det. Test nu dit netværk ved at pinge en internetserver (f.eks. Google). Hvis det virker, så tillykke. Du er nu klar til at installere Gentoo. Fortsæt med Forberedelse af harddiske.
4.a. Introduktion til blok-enheder
Vi vil tage et godt kig på disk-orienterede aspekter af Gentoo Linux og Linux generelt, inklusiv Linux filesystemer, partitioner og blok-enheder. Så, når du er blevet godt kendt med diske og filsystemer, vil du blive vejledt igennem processen af at opsætte partioner og filsystemer til din Gentoo Linux installation.
For at begynde, vil vi introducere begrebet blok-enheder. Den mest kendte blok-enhed er sikkert den, som repræsenterer den første IDE-harddisk på et Linux system, med navnet /dev/hda. Hvis dit system bruger SCSI-drev, så vil din første harddisk være /dev/sda. Serial ATA drev er også /dev/sda selvom de er IDE enheder.
Blok-enhederne ovenover repræsenterer en abstrakt grænseflade til harddisken. Brugerprogrammer kan bruge disse blok-enheder, til at interagere med din harddisk, uden at skulle bekymre sig om at dine drev er IDE, SCSI eller noget andet. Programmet kan simpelthen adressere lageret på harddisken, som et bundt af tilstødende, vilkårlige-tilgængelige 512-byte blokke.
Selvom det er teoretisk muligt at bruge hele harddisken til dit Linux system, er det næsten aldrig gjort i praksis. I stedet for er hele hardiskens blok-enheder opsplittet i mindre, mere håndgribelige blok-enheder. På de fleste systemer er disse kaldet partitioner. Andre arkitekturer bruger en lignende teknik, kaldet portioner (slices).
4.b. Design af et partitionsskema
Hvis du ikke er interesseret i at tegne en partitionsoversigt selv, til dit system, kan du bruge vores (non-LVM) partitionsskema, som vi bruger igennem denne bog:
| Partition | Filsystem | Størrelse | Beskrivelse |
| /dev/sda1 | Partition map | 31.5k | Partition map |
| /dev/sda2 | (bootstrap) | 800k | Apple_Bootstrap |
| /dev/sda3 | 512M | Swap partition | |
| /dev/sda4 | ext3 | Resten af harddisken | Root partition |
Bemærk: Der er nogle partitioner som er navngivet sådan her: Apple_Driver43, Apple_Driver_ATA, Apple_FWDriver, Apple_Driver_IOKit, Apple_Patches. Hvis du ikek planlægger at bruge MacOS 9, kan du slette dem, idet MacOS X og Linux ikke behøver dem. Du skal måske bruge parted for at slette dem, idet mac-fdisk ikke kan slette dem endnu. |
Hvis du er interesseret i at vide hvor stor en partition burde være, eller hvor mange partitioner du behøver, læs videre. Ellers fortsæt nu med Apple G5: Brug mac-fdisk til at partitionere dine diske eller IBM pSeries: Brug fdisk til at partitionere dine diske
Antallet af partitioner er meget afhængigt af dit miljø. F.eks., hvis du har en hel del brugere, vil det være nærmest at lave dit /home separat, idet at det forøger sikkerheden og gør det nemmere at lave backup.
Hvis du installerer Gentoo for at arbejde som en mail-server, burde din /var være separat, idet alle emails er gemt inde i /var. Et godt valg af filsystem vil derefter maksimere din ydelse. Spil-servere bør have en separat /opt, idet at de fleste spil-servere bliver installeret der. Forklaringen er den samme som for /home: sikkerhed og backup. Du vil med sikkerhed ønske at holde /usr stor: Ikke alene indeholder den de fleste programmer, Portage-træet optager alene 500 MB, undtagen de forskellige kildekoder, som er gemt inden i.
Som du kan se, afhænger det meget af hvad du vil opnå. Separate partitioner eller volumes har følgende fordele:
Dog har flere partitioner en stor ulempe: hvis det ikke er opsat ordentligt, kan det betyde at have et system med masser af fri plads på én partition og intet på en anden. Der er også en begrænsning på 15 partitioner på SCSI og SATA.
4.c. Standard: Brug af mac-fdisk (Apple G5) for at partitionere din disk
Nu skal du lave dine partitioner med mac-fdisk:
Kode oversigt 3.1: At starte mac-fdisk |
# mac-fdisk /dev/sda
|
Først skal du slette de partitioner, som du før har klargjort, for at lave plads til dine Linux partitioner. Brug d i mac-fdisk for at slette denne/disse partition(er). Den vil spørge efter nummeret på den partition der skal slettes.
Derefter skal du lave en Apple_Bootstrap partition ved brug af b. Indtast nummeret på din første frie partition, fulgt af p. F.eks. er det her 2p.
Bemærk: Denne partition er ikke en "boot" partition. Den bruges ikke af Linux overhovedet; du behøves ikke placere noget filsystem på den og du bør aldrig mounte din. PPC-brugere har ikke brug for en ekstra /boot-partition. |
Lav nu en swap-partition ved at trykke c. mac-fdisk vil igen spørge efter hvilken blok du vil starte denne partition fra. Da vi før brugte 2 til at lave Apple_Bootstrap-partitionen, så skal du nu taste 3p. Når du bliver spurgt om størrelsen, tast da 512M (eller den størrelse du nu ønsker). Når du bliver spurgt efter et navn, tast swap (krævet).
For at lave root-partitionen, tryk c, efterfulgt af 4p for at vælge hvilken blok, root-partitionen skal starte ved. Når du bliver spurgt efter størrelsen, indtast 4p igen. mac-fdisk vil fortolke dette som "Brug den plads der er tilgængelig". Når du bliver spurgt efter et navn, tast root (krævet).
For at færdiggøre, skriv partitionen til disken ved at bruge w og q til at forlade mac-fdisk.
Bemærk: For at være sikker på at alt er okay, bør du køre mac-fdisk en gang til og tjekke om alle partitionerne er der. Hvis du ikke ser nogen af de partitioner du har oprettet, eller ændringerne du lavede, bør du genaktivere dine partitioner ved at taste "i" i mac-fdisk. Noter at dette vil genskabe partitionskortet og derfor fjerne alle dine partitioner. |
Nu hvor dine partitioner er lavet, kan du forsætte med Oprettelse af filsystemer.
4.d. IBM pSeries, iSeries og OpenPower: brug fdisk til at partitionere din harddisk
Bemærk: Hvis du planlægger at bruge en RAID-diskopsætning til din gentoo-installation og du bruger POWER5-baseret hardware, bør du køre iprutils nu, for at formatere diskene til "Advanced Function"-format og oprette diskopsætningen. |
De følgende dele forklarer hvordan man laver det tidligere nævnte partitionslayout, nemlig:
| Partition | Beskrivelse |
| /dev/sda1 | PPC PReP Boot partition |
| /dev/sda2 | Swap partition |
| /dev/sda3 | Root partition |
Ændr dit partitionslayout som du har lyst.
At se det nuværende partitionslayout
fdisk er et populært og kraftfuldt værktøj til at splitte din disk op i partitioner. Fyr op for fdisk på din disk (i vores eksempel bruger vi /dev/sda):
Kode oversigt 4.1: Start af fdisk |
# fdisk /dev/sda
|
Når du først er i fdisk, så vil du blive budt velkommen med en prompt der ser således ud:
Kode oversigt 4.2: fdisk prompt |
Command (m for help): |
Tast p for at vise din disks nuværende konfiguration:
Kode oversigt 4.3: Et eksempel på en partition opsætning |
Command (m for help): p Disk /dev/sda: 30.7 GB, 30750031872 bytes 141 heads, 63 sectors/track, 6761 cylinders Units = cylinders of 8883 * 512 = 4548096 bytes Device Boot Start End Blocks Id System /dev/sda1 1 12 53266+ 83 Linux /dev/sda2 13 233 981571+ 82 Linux swap /dev/sda3 234 674 1958701+ 83 Linux /dev/sda4 675 6761 27035410+ 5 Extended /dev/sda5 675 2874 9771268+ 83 Linux /dev/sda6 2875 2919 199836 83 Linux /dev/sda7 2920 3008 395262 83 Linux /dev/sda8 3009 6761 16668918 83 Linux Command (m for help): |
Denne specifikke disk er sat op til at huse seks Linux filsystemer (hvert med deres tilsvarende partition listet som "Linux") og en swap partition (listet som "Linux swap").
Vi vil først fjerne alle eksisterende partitioner fra disken. Tast d for at slette en partition. F.eks. for at slette en eksisterende /dev/sda1:
Bemærk: Hvis du ikke vil slette alle partitioner så slet bare dem du vil slette. Ved dette punkt anbefaler forfatteren at du laver backup af dine data for ikke at tabe dem. |
Kode oversigt 4.4: At slette en partition |
Command (m for help): d Partition number (1-4): 1 |
Partitionen er blevet scheduleret til at blive slettet. Den vil ikke længere dukke op når du taster p, men den vil ikke blive slettet før dine ændringer er blevet gemt. Hvis du har lavet en fejl og vil afbryde uden at gemme dine ændringer, tast q med det samme og tryk enter og så vil din partition ikke blive slettet.
Under antagelse af at du rent faktisk ønsker at slette alle partitionerne på dit system, tryk da gentagne gange p for at printe en liste over partitionerne og tryk så d og det nummer på partitionen for at slette den. På et tidspunkt vil du ende med en tom partitionstabel :
Kode oversigt 4.5: En tom partitions tabel |
Disk /dev/sda: 30.7 GB, 30750031872 bytes 141 heads, 63 sectors/track, 6761 cylinders Units = cylinders of 8883 * 512 = 4548096 bytes Device Boot Start End Blocks Id System Command (m for help): |
Nu hvor den partitionstabel der er i hukommelse er tom, er vi klar til at lave partitionerne. Vi vil bruge standard partitionslayoutet som før diskuteret. Du skal selvfølgelig ikke følge dette til punkt og prikke, hvis du ikke ønsker det samme layout!
At lave PPC PReP boot partitionen
Vi laver først en lille PReP boot partition. Tast n for at lave en ny partition, tast derefter p for at vælge en primær partition, efterfulgt af 1 for at vælge den første primære partition. Når du bliver spurgt efter den første cylinder, tryk enter. Når du bliver spurgt efter den sidste cylinder, tryk +7M for at lave en partition på 7 Mbyte. Efter du har gjort dette, tryk t for at sætte partitionstypen, 1 for at vælge den partition du lige har lavet og tryk 41 for at sætte typen til "PPC PReP Boot". Til sidst skal du afmærke PReP-partitionen som opstartbar (bootable).
Bemærk: PReP partitionen skal være mindre end 8 MByte! |
Kode oversigt 4.6: Oprettelse af PReP boot partitionen |
Command (m for help): p Disk /dev/sda: 30.7 GB, 30750031872 bytes 141 heads, 63 sectors/track, 6761 cylinders Units = cylinders of 8883 * 512 = 4548096 bytes Device Boot Start End Blocks Id System Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-6761, default 1): Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-6761, default 6761): +8M Command (m for help): t Selected partition 1 Hex code (type L to list codes): 41 Changed system type of partition 1 to 41 (PPC PReP Boot) Command (m for help): a Partition number (1-4): 1 Command (m for help): |
Nu hvor du trykker p, så bør du se det følgende partitionsinformationer:
Kode oversigt 4.7: Den skabte boot partition |
Command (m for help): p
Disk /dev/sda: 30.7 GB, 30750031872 bytes
141 heads, 63 sectors/track, 6761 cylinders
Units = cylinders of 8883 * 512 = 4548096 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 3 13293 41 PPC PReP Boot
Command (m for help):
|
Lad os nu lave swap partitionen. For at gøre dette, tryk type n for at lave en ny partition, tryk så p for at fortælle fdisk at du ønsker en primær partition. Tryk så 2 for at lave den anden primære partition, /dev/sda2 i vores tilfælde. Når du bliver spurgt om den første cylinder, tryk da enter. Når du bliver spurgt om den sidste cylinder, tryk da +512M for at lave en partition med 512MB i størrelse. Når du har gjort dette, tryk t for at sætte partitionstypen, 2 for at vælge den partition du lige har lavet og tryk så 82 for at sætte partitionstypen til "Linux Swap". Efter at have færdiggjort disse skridt, burde p vise en partitionstabel der ligner denne:
Kode oversigt 4.8: Partitionsliste efter at man har lavet en swap partition |
Command (m for help): p
>
Disk /dev/sda: 30.7 GB, 30750031872 bytes
141 heads, 63 sectors/track, 6761 cylinders
Units = cylinders of 8883 * 512 = 4548096 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 3 13293 41 PPC PReP Boot
/dev/sda2 4 117 506331 82 Linux swap
Command (m for help):
|
Lad os nu til sidst lave root partitionen. For at gøre dette, tryk n for at lave en ny partition, tryk så p for at fortælle fdisk at du vil have en primær partition. Tryk så 3 for at lave den tredje primære partition, /dev/sda3 i vores tilfælde. Når du bliver spurgt om den første cylinder, tryk enter. Når du bliver spurgt om den sidste cylinder, tryk da enter for at lave en partition, der fylder resten af den tilgængelige plads på din disk. Efter at have udført disse skridt, tryk da p for at se en partitionstabel der burde se således ud:
Kode oversigt 4.9: Partitionsliste efter at lave root partitionen |
Command (m for help): p Disk /dev/sda: 30.7 GB, 30750031872 bytes 141 heads, 63 sectors/track, 6761 cylinders Units = cylinders of 8883 * 512 = 4548096 bytes Device Boot Start End Blocks Id System /dev/sda1 1 3 13293 41 PPC PReP Boot /dev/sda2 4 117 506331 82 Linux swap /dev/sda3 118 6761 29509326 83 Linux Command (m for help): |
For at gemme partitionslayoutet og forlade fdisk, tryk w.
Kode oversigt 4.10: Gem og forlad fdisk |
Command (m for help): w
|
Nu hvor partitionerne er lavet, kan du fortsætte med Oprettelse af filsystemer.
4.e. Oprettelser af filsystemer
Nu da partitionerne er opretet, er det tid til at placere filsystemer på dem. Hvis du er ligeglad hvilket filsystem, du vil bruge, og er tilfreds med at bruge standarden i denne håndbog, fortsæt med Tilføje et filsystem til en partition. Ellers, læs videre for at lære omkring de tilgængelige filsystemer...
Bemærk: Der er adskillige filesystemer til rådighed. Ext2 og ext3 bliver anset som værende stabile på PPC64 arkitekturen, reiserfs og xfs er ekspermentelle. jfs bliver ikke understøttet. |
ext2 er det afprøvede og sande Linux filsystem, men det har ikke metadata journaler, hvilket betyder at rutinemæssige tjek af filsystemer ved opstart kan tage en del tid. Der er nu et udvalg af filsystemer af nyere generation med journal, der kan tjekkes for konsekvens meget hurtigt og er derfor at foretrække fremfor deres tilsvarende uden journal. Filsystemer med journal kan afskaffe lange ventetider når dit system starter op og dine filsystemer er i en ikke konsekvent tilstand.
ext3 er den journaliserede udgave af ext2 filsystemet, der giver metadata journaler til hurtig genskabelse og yderligere andre ydelse fremmende journal muligheder så fuld data og ordnet data journal. ext3 er meget godt og et pålideligt filsystem. Det har en ekstra mulighed for at bruge hashede b-træer til at indeksere, hvilket giver høj ydelse i næsten alle situationer. For at sige det kort, ext3 er et fremragende filsystem.
ReiserFS er et filsystem baseret på B*-træer der har en god alsidig ydelse og slår både ext2 og ext3 stor når det kommer til at håndtere små filer (filer mindre end 4k), ofte med en faktor på 10x-15x. ReiserFS skalerer også ekstremt godt og har metadata journaler. Fra og med kerne 2.4.18+ er ReiserFS solid og brugbart til både et formål som alment filsystem, og til ekstreme tilfælde hvor man laver store filsystemer, brugen af mange små filer, meget store filer og biblioteker, der indeholder titusinder af filer.
XFS er et filesystem med metadata journalisering der er fuldt understøttet under Gentoo Linuxs xfs-sources kerne. Det kommer med et robust sæt af egenskaber og er højt optimiseret til skalerbarhed. Vi anbefaler kun at bruge dette filsystem på Linux systemer med high-end SCSI og/eller fibre channel storage og en uafbrydelig strømforsyning. Fordi XFS cacher indkommende data i RAM meget aggressivt, så kan forkert designede programmer (dem der ikke tager de nødvendige forholdsregler når de skriver filer til disk og der faktisk en del af dem) tabe en del data, hvis systemet uforudset går ned.
JFS er IBMs høj-ydelses journaliserende filsystem. Det er for nyligt blevet produktionsstabilt og der har ikke været tilstrækkeligt testning til at kommentere positivt eller negativt omkring dens stabilitet pt.
At anvende et filsystem på en partition
For at lave et filsystem på en partition eller enhed, så er der værktøjer til rådighed for hvert filsystem:
| Filsystem | Kommando til at lave |
| ext2 | mke2fs |
| ext3 | mke2fs -j |
| reiserfs | mkreiserfs |
| xfs | mkfs.xfs |
| jfs | mkfs.jfs |
F.eks. for at få root partitionen (/dev/sda4 i vores tilfælde) i ext3 (som i vores tilfælde), ville vi bruge:
Kode oversigt 5.1: At anvende et filsystem på en partition |
# mke2fs -j /dev/sda4
|
Lav nu filsystemerne på dine for nyligt skabte partitioner (eller logiske enheder).
mkswap er kommandoen der bruges til at initialisere swap partitioner:
Kode oversigt 5.2: At lave en swap signatur |
# mkswap /dev/sda3
|
For at aktivere swap-partitionen, brug swapon:
Kode oversigt 5.3: At aktivere swap-partitionen |
# swapon /dev/sda3
|
Lav og aktiver swap ved at bruge ovenstående kommandoer.
Nu hvor dine partitioner er initialiserede og huser et filsystem, er det tid til at mounte disse partitioner. Brug mount kommandoen. Glem ikke at lave de nødvendige mount-biblioteker til hver partition, som du har oprettet. Som et eksempel vil vi oprette et mount-punkt og mounte root- og boot-partionerne:
Advarsel: På grund af en fejl i e2fsprogs-pakken, skal du specifikt bruge mount -t ext3-valgmulighen, hvis du bruger et ext3-filsystem. |
Kode oversigt 6.1: At mounte partitioner |
# mkdir /mnt/gentoo # mount /dev/sda4 /mnt/gentoo |
Bemærk: Hvis du vil have din /tmp til at være på en separat partition, så vær sikker på at ændre dens rettigheder efter at være blevet mountet: chmod 1777 /mnt/gentoo/tmp. Dette gælder også for /var/tmp. |
Til sidst skal vi oprette /dev-filerne i vores nye hjem, hvilket er nødvendigt igennem installationen af boot-loader. Dette kan gøres ved "bind"-mapping /dev-filesystemet fra installationsCDen:
Kode oversigt 6.2: Bind-mount af /dev-filesystem |
# mkdir /mnt/gentoo/dev # mount -o bind /dev /mnt/gentoo/dev |
Vi bliver også nødt til at mounte proc-filsystemet (en virtuel grænseflade med til kernen) på /proc. Men først skal vi placere filerne på partitionerne.
Fortsæt nu med Installere Gentoo installationsfiler.
5.a. Installation af stage-tarball
Før du forsætter, så bliver du nødt til at tjekke din dato/tid og opdatere den. Et ur der ikke er sat ordentlig op kan lede til mærkelige resultater i fremtiden!
For at verificere den nuværende dato/tid, kør da date:
Kode oversigt 1.1: At verificere dato/tid |
# date
Fri Mar 29 16:21:18 CEST 2005
|
Hvis dato/tid bliver vist forkert, opdater den da ved brug af date MMDDhhmmCCYY syntaksen (Måned, Dag, h(time), minut, C(årtusinde) og Y(år)). F.eks. sæt datoen til den 29. marts 16:21 i året 2005:
Kode oversigt 1.2: At sætte dato/tid |
# date 032916212005
|
Det næste trin, som du skal udføre, er at installere stage-tarball'en, som du har valgt, på dit system. Du har muligheden for at hente den krævede tarball fra Internet eller, hvis du har startet fra én af Gentoo universelle installationsCDer, kopiere den så fra CDen selv. Hvis du har en universel CD, og den ønskede stage er på CDen, at hente den fra Internet, er spild af båndbredde, idet stage-filerne er de samme. I de fleste tilfælde kan kommandoen uname -m blive brugt til at finde ud af, hvilken stage-fil du skal hente.
5.b. Standard: Bruge af stage-fil fra Internet
Skift til dit Gentoo mountpunkt, hvor du mountede dit filsystem (højst sandsynligt /mnt/gentoo):
Kode oversigt 2.1: Gå til Gentoo-mountpunkt |
# cd /mnt/gentoo
|
Afhængigt af dit installationsmedie, har du et par forskellige værktøjer tilgængeligt til at hente en stage. Hvis du har links2 til rådighed, så kan du med det samme surfe hen til Gentoo filspejl-listen og vælge et filspejl nær ved dig.
Hvis du ikke har links2 tilgængeligt, bør du have lynx til rådighed. Hvis du har brug for en proxy, export http_proxy- og ftp_proxy-variablerne:
Kode oversigt 2.2: Opsætning af proxy-informationer til lynx |
# export http_proxy="http://proxy.vært.dk:port" # export ftp_proxy="http://proxy.vært.dk:port" |
Vi vil nu forudsætte at du har links2 tilrådighed.
Vælg releases/ biblioteket, efterfulgt af arkitekturen (x86/) og Gentoo-versionen (for eksempel 2005.1/) og afslut med at gå ind i stages/ biblioteket. Der skulle du gerne se alle tilgængelige stage-filer til din arkitektur (de vil evt. blive gemt i underbiblioteker som er navngivet efter hver underarkitektur). Vælg én og tryk på D for at hente den. Når du er færdig tryk da på Q for at lukke browseren.
Kode oversigt 2.3: Surf til filspejl-listen med links2 |
# links2 http://www.gentoo.org/main/en/mirrors.xml (Hvis du har brug for proxy-understøttelse med links2:) # links2 -http-proxy proxy.server.com:8080 http://www.gentoo.org/main/en/mirrors.xml |
Hvis du vil tjekke integriteten af den downloadede stage tarball, brug da md5sum og sammenlign outputtet med den MD5 checksum der er på filspejlet. F.eks. for at tjekke ægtheden af x86 stage tarball:
Kode oversigt 2.4: Et eksempel på at tjekke integriteten af en stage tarball |
# md5sum -c stage1-x86-2005.1.tar.bz2.md5
stage1-x86-2005.1.tar.bz2: OK
|
Nu skal vi udpakke din hentede stage-fil til dit system. Vi bruger GNUs tar til dette, eftersom det er det nemmeste:
Kode oversigt 2.5: Udpakning af stagen |
# tar -xvjpf stage?-*.tar.bz2
|
Sørg for at du bruger de samme parametre (-xvjpf). x'et står for Extract, v'et står for Verbose for at se hvad der sker i udpakningsprocessen (denne er valgfri), j'et står for Decompress with bzip2, p'et står for Preserve permissions og f'et pointerer at vi vil udpakke en fil, i stedet for standard input.
Advarsel: stage3-athlon-xp-2005.1.tar.bz2, stage3-pentium3-2005.1.tar.bz2 og stage3-pentium4-2005.1.tar.bz2-filerne har seriøse rettighedsfejl. Efter at have udpakket disse, kør chmod 0755 /mnt/gentoo for at ordne denne fejl før du fortsætter med installationen. |
Bemærk: Nogle arkitekturers (f.eks. MIPS) installationsCDer og opstart-billedfiler afhænger at om tar er indbygget til BusyBox, som på nuværende tidspunkt ikke understøtter -v valgmuligheden. Derfor vil den måske ikke virke. |
Nu da denne etape er færdig, fortsæt med Installere Portage.
5.c. Alternativ: Brug af en stage-fil fra installationsCDen
De forskellige etaper på CDen ligger i /mnt/cdrom/stages biblioteket. For at se en liste af tilgængelige stage-filer, brug ls:
Kode oversigt 3.1: Liste af tilgængelige stage-filer |
# ls /mnt/cdrom/stages
|
Hvis systemet svarer med en fejl, er det måske fordi du skal mounte CDROM-drevet først:
Kode oversigt 3.2: Mounting af CDROM-drevet |
# ls /mnt/cdrom/stages ls: /mnt/cdrom/stages: No such file or directory # mount /dev/cdroms/cdrom0 /mnt/cdrom # ls /mnt/cdrom/stages |
Gå nu ind i dit Gentoo mountpunkt (som regel /mnt/gentoo):
Kode oversigt 3.3: Skift bibliotek til /mnt/gentoo |
# cd /mnt/gentoo
|
Vi vil nu udpakke den valgte stage-tarball. Vi vil gøre dette ved brug af af GNU tar værktøjet. Sørg for at bruge de samme parametre (-xvjpf)! Igen, er v-argumentet valgfrit og ikke understøttet i nogle tar-versioner. I det næste eksempel vil vi udpakke stage3-<subarch>-2005.1.tar.bz2. Sørg for at udskifte tarball-filnavnet med den valgte stage-fil.
Kode oversigt 3.4: Udpakning af stage-tarball |
# tar -xvjpf /mnt/cdrom/stages/stage3-<subarch>-2005.1.tar.bz2
|
Advarsel: stage3-athlon-xp-2005.1.tar.bz2, stage3-pentium3-2005.1.tar.bz2 og stage3-pentium4-2005.1.tar.bz2-filerne har seriøse rettighedsfejl. Efter at have udpakket disse, kør chmod 0755 /mnt/gentoo for at ordne denne fejl før du fortsætter med installationen. |
Nu da denne etape er installeret, fortsæt med Installere Portage.
Du skal nu installere et Portage-snapshot, en samling af filer, som informerer hvilke softwaretitler, som du kan installere, hvilke profiler der er tilgængelige osv.
Hent og Installere et Portage-snapshot
Gå til det mount-punkt, hvor du mountede dit filsystem (meget sandsynligt /mnt/gentoo):
Kode oversigt 4.1: Går til Gentoo-mountpunktet |
# cd /mnt/gentoo
|
Fyr op for links2 (eller lynx) og gå til vores Gentoo filspejleliste. Vælg et filspejl tæt på dig og åben snapshots/ folderen. Derinde hent den sidste nye Portage-snapshot ved at vælge den og taste D.
Kode oversigt 4.2: Gennemse Gentoo filspejle |
# links2 http://www.gentoo.org/main/en/mirrors.xml
|
Afslut nu browseren ved at taste Q. Du vil nu have et Portage-snapshot gemt i /mnt/gentoo. I næste trin, vil vi udpakke Portage-snapshottet til dit filsystem. Vær sikker på at du bruger præcist denne kommando; den sidste valgmulighed er med stort C, ikke c.
Kode oversigt 4.3: Udpakning af Portage-snapshot |
(Udskift <dato> med den datostempel af den hentede snapshot) # tar -xvjf /mnt/gentoo/portage-<date>.tar.bz2 -C /mnt/gentoo/usr |
5.e. Opsætning af kompileringsparametre
For at optimere Gentoo kan du sætte et par variabler, som har inflydelse på den måde Portage opfører sig. Alle disse variabler kan sættes som miljø-variable (ved brug af export), men det er ikke permanent. For at gemme din opsætning, kommer Portage med /etc/make.conf, en opsætningsfil til Portage. Det er denne fil, vi nu vil rette i.
Bemærk: En kommenteret liste af alle mulige variable, kan findes i /mnt/gentoo/etc/make.conf.example. For at få en fungerende Gentoo installation, behøver du kun at sætte de variabler, som er nævnt herunder. |
Åben dit favorit redigeringsprogram (i denne guide bruger vi nano), så vi kan komme i gang med at ændre de optimeringsvariabler, vi vil diskutere herefter.
Kode oversigt 5.1: Åbning af /etc/make.conf |
# nano -w /mnt/gentoo/etc/make.conf
|
Som du nu sikkert har lagt mærke til, er make.conf.example-filen struktureret på en generel måde: kommentar-linier, som starter med "#" og andre linier, som definerer variabler ved brug af VARIABLE="indhold" syntaxen. make.conf bruger samme syntaks. Flere af disse variabler bliver diskuteret i næste trin.
Advarsel: Selvom det måske kan være interessant for ikke-stage1 brugere, så skal de IKKE udskifte deres CHOST-opsætning i make.conf. Gør man dette, bliver systemet måske ubrugeligt. Igen: Du skal kun ændre denne variabel, hvis du bruger en stage1-installation. |
CHOST-variablen definerer hvilken arkitektur, gcc skal kompilere programmerne til. Mulighederne er:
| Arkitektur | Underarkitektur | CHOST opsætning |
| x86 | i386 | i386-pc-linux-gnu |
| x86 | i486 | i486-pc-linux-gnu |
| x86 | i586 | i586-pc-linux-gnu |
| x86 | i686 og derover (inkl. Athlon) | i686-pc-linux-gnu |
| alpha | alpha-unknown-linux-gnu | |
| ppc | powerpc-unknown-linux-gnu | |
| ppc64 | powerpc64-unknown-linux-gnu | |
| sparc | sparc-unknown-linux-gnu | |
| sparc64 | sparc-unknown-linux-gnu | |
| hppa | (generic) | hppa-unknown-linux-gnu |
| hppa | pa7000 | hppa1.1-unknown-linux-gnu |
| hppa | pa8000 og derover | hppa2.0-unknown-linux-gnu |
| mips | mips-unknown-linux-gnu | |
| amd64 | x86_64-pc-linux-gnu |
Vær venligst sikker på at du bruger den korrekte CHOST-indstilling. F.eks. er CHOST-indstillingen til sparc64 stadigvæk sparc-unknown-linux-gnu og ikke sparc64-unknown-linux-gnu!
Brugere, som er interesseret i at bootstrappe hele deres system med NPTL-understøttelse på et x86-system, skal indstille deres CHOST til i586-pc-linux-gnu eller højere.
CFLAGS- og CXXFLAGS-variablerne definerer optimeringsflag til gcc, med C og C++ kompilerne i den rækkefølge. Selvom vi definerer dem generelt her, vil du kun få optimal ydeevne, hvis du optimerer disse flag for hvert program seperat. Det skyldes at alle programmer er forskellige.
I make.conf skal du generelt optimere de flag du tror vil gøre dit system bedst. Lad være med at placere eksperimenterende opsætninger i denne variabel; For meget optimering kan få programmer til at opføre sig mærkelig (gå ned, eller endnu værre, fungere forkert).
Vi vil ikke forklare alle mulige optimeringsmuligheder. Hvis du vil kende dem alle, kan du læse GNU Online Manual(er) eller gcc info siden (info gcc virker kun på et færdigt opsat Linux-system). make.conf.example-filen i sig selv, indeholder også mange eksempler og informationer; glem ikke, at du også skal læse dette.
Den første parameter er -march=-flaget, som specificerer navnet på din arkitektur. Mulige parametre er beskrevet i make.conf.example-filen (som kommentarer). For eksempel til x86 Athlon XP arkitekturen:
Kode oversigt 5.2: GCC march opsætning |
# AMD64 brugere, som ønsker at bruge et rent 64 bit system, bør bruge -march=k8 -march=athlon-xp #EM64T brugere bør bruge -march=nocona |
En anden parameter er -O-flaget(det er et stort O, ikke et nul), som specificerer gccs optimeringsklasse-flag. Mulige klasser er s (for størrelses optimering), 0(nul - ingen optimering), 1, 2, 3 til mere hastighedsoptimering, (hver klasse har samme flag som den forrige, plus nogle ekstra). For eksempel en klasse 2 optimering:
Kode oversigt 5.3: GCC O opsætning |
-O2 |
Et andet populært optimeringsflag er -pipe (brug af pipes i stedet for midlertidige filer til kommunikation mellem forskellige stadier af kompilering).
Husk at hvis du bruger -fomit-frame-pointer (som sørger for at framepointere ikke er i registret til de funktioner, der ikke skal bruge den) kan skabe seriøse problemer med at debugge programmer!
Når du definerer dine CFLAGS og CXXFLAGS, bør du kombinere forskellige optimeringsflag, som i det følgende eksempel:
Kode oversigt 5.4: Definering af CFLAGS og CXXFLAGS variablerne |
# AMD64 brugere bør bruge march=k8 CFLAGS="-march=athlon-xp -pipe -O2" # EM64T brugere bør bruge march=nocona CXXFLAGS="${CFLAGS}" # Bruger den samme opsætning til begge flag |
Med MAKEOPTS definerer du, hvor mange parallele kompileringer, der skal fortages, når du installere en pakke. Et godt valg er antallet af CPUer i dit system, plus en ekstra, men den retningslinie er ikke altid perfekt.
Kode oversigt 5.5: MAKEOPTS for et regulært, 1-CPUs system |
MAKEOPTS="-j2" |
Opdater din /mnt/gentoo/etc/make.conf, så den passer dig, og gem den (nano-brugere ville bruge Ctrl+X. Du er nu klar til at fortsætte med Installation af Gentoo basissystem.
6.a. At skifte rod-mappe (Chrooting)
For at hente kildekoderne hurtigt, er det anbefalet at vælge en hurtig filspejl. Portage vil kigge i din make.conf-fil efter GENTOO_MIRRORS-variablen og brug filspejlene deri. Du kan kigge igennem vores Filspejle liste og søge efter en filspejl (eller filspejle), som er i nærheden af dig (de er typisk også dem der er de hurtigste), men vi leverer et lækkert værktøj kaldet mirrorselect som leverer dig en grænseflade til at vælge de filspejle du vil have.
Kode oversigt 1.1: Brug af mirrorselect til GENTOO_MIRRORS-variablen |
# mirrorselect -i -o >> /mnt/gentoo/etc/make.conf
|
Advarsel: Vælg ikke nogen IPv6 filspejle. Vores stage-filer understøtter på nuværende tidspunkt ikke IPv6. |
En anden vigtig indstilling er SYNC-indstillingen i make.conf. Denne variabel indeholder rsync-seren, som du ønsker at bruge, når du opdaterer dit Portage-træ (samlingen af ebuilds og scripts, som indeholder alle informationer, som Portage har brug for at hente og installere software). Selvom du kan manuelt indtaste serveren selv, kan mirrorselect gør dette let for dig:
Kode oversigt 1.2: Valg af rsync-filspejl ved brug af mirrorselect |
# mirrorselect -i -r -o >> /mnt/gentoo/etc/make.conf
|
Efter at have kørt mirrorselect, er det klogt at kigge alle indstillingerne igennem i /mnt/gentoo/etc/make.conf!
Der mangler stadig én ting, før vi skifter til det nye miljø, og det er at kopiere DNS-informationerne i /etc/resolv.conf. Du skal gøre dette for at sikre, at netværket stadig virker, efter skiftet til det nye miljø. /etc/resolv.conf indeholder navneserverne til dit netværk.
Kode oversigt 1.3: Kopiering af DNS-information |
("-L" muligheden er nødvendigt for at være sikker på at vi ikke kopiere et symbolsk link) # cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf |
Mount /proc-filsystemet til /mnt/gentoo/proc for at tillade installationen at bruge de kerne-leverede informationer, selv inde i det chrootede miljø.
Kode oversigt 1.4: Mount af /proc |
# mount -t proc none /mnt/gentoo/proc
|
Nu, hvor alle partitionerne er initialiseret og basismiljøet installeret, er det tid til at skifte til vores nye installationsmiljø, ved at lave et rod skifte. Det betyder at vi skifter fra det nuværende installationsmiljø (installationsCD eller andet installationsmedie) til dit installationssystem (nemlig de initialiserede partitioner).
Denne rodskiftning gøres i tre skridt. Først vil vi ændre roden fra / (på installationsmediet) til /mnt/gentoo (på dine partitioner) ved at bruge chroot. Derefter vil vi skabe et nyt miljø ved at bruge env-update, som hovedsageligt opretter miljø-variabler. Til sidst indlæser vi disse variabler ind i hukommelsen, ved brug af source.
Kode oversigt 1.5: Skifte til det nye miljø |
# chroot /mnt/gentoo /bin/bash # env-update * Caching service dependencies... # source /etc/profile |
Tillykke! Du er nu inde i dit eget Gentoo Linux miljø. Selvfølgelig er det langt fra færdig, hvilket er derfor installationen stadigvæk har nogle sektioner tilbage :-)
Du bør nu opdatere dit Portage-træ til den sidste nye. emerge --sync gør dette for dig.
Kode oversigt 1.6: Opdatering af Portage-træet |
# emerge --sync (Hvis du bruger en langsom terminal, som f.eks. framebuffer eller en seriel konsol, kan du tilføje --quiet-valgmuligheden for at sætte lidt fart på :) # emerge --sync --quiet |
Hvis du er bag en firewall, som blokerer rsync-trafik, kan du bruge emerge-webrsync, som vil hente og installere en portage-snapshot til dig.
Hvis du bliver advaret om, at der eksisterer en ny version af Portage og at du skal opdatere Portage, bør du ignorere det. Portage bliver opdateret for dig senere under installationen.
Først introducerer vi lige en definition.
En profil er en byggeklods til alle Gentoo-systemer. Den specificere ikke kun standardværdier til CHOST, CFLAGS og andre vigtige variabler, den låser også systemet til et specifikt område af pakkeversioner. Disse er alle håndteret af Gentoo-udviklere.
Tidligere var sådan en profil næsten aldrig rørt af en bruger. Dog kan x86-, hppa- og alpha-brugere vælge to profiler, en til 2.4-kernen og en til 2.6-kernen. Dette krav er blevet fremsat for at forbedre integrationen af 2.6-kerner. ppc- og ppc64-arkitekturerne har også yderligere profiler tilgængeligt. Vi vil tale om dem senere.
Du kan se hvilke profiler, som du bruger på nuværende tidspunkt, med følgende kommando:
Kode oversigt 1.7: Verifikation af systemprofil |
# ls -FGg /etc/make.profile
lrwxrwxrwx 1 48 Apr 8 18:51 /etc/make.profile -> ../usr/portage/profiles/default-linux/x86/2005.1/
|
Hvis du bruger en af de tidligere nævnte tre arkitekturer, vil standardprofilen give dig et Linux 2.6-baseret system. Det er anbefalet som standard, men du har også mulighed for at vælge en anden profil.
Nogen brugere ønsker at installere et system baseret på den gamle Linux 2.4-profil. Hvis du har en god begrundelse for dette, bør du først kigge efter om en yderligere profil eksisterer. På x86, kan vi gøre dette med følgende kommando:
Kode oversigt 1.8: Finding af at yderligere profil eksisterer |
# ls -d /usr/portage/profiles/default-linux/x86/2005.1/2.4
/usr/portage/profiles/default-linux/x86/2005.1/2.4
|
Det ovenstående eksempel viser at den yderligere 2.4 profil eksisterer (f.eks. klagede den ikke over en manglede fil eller folder). Det er anbefalet at du bruger standarden, men hvis du ønsker at skifte, kan du gøre som følgende:
Kode oversigt 1.9: Skifte til en 2.4 profil |
(Vær sikker på at bruge den rigtige arkitektur, eksempelet nedenfor er til x86) # ln -snf /usr/portage/profiles/default-linux/x86/2005.1/2.4 /etc/make.profile (Vise en liste af filer i 2.4-profilen) # 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 |
Til ppc, er der en del nye profiler leveret med 2005.1.
Kode oversigt 1.10: PPC-profiler |
(Normal PPC-profil, til alle PPC-maskiner) # ln -snf /usr/portage/profiles/default-linux/ppc/2005.1/ppc /etc/make.profile (G3 profil) # ln -snf /usr/portage/profiles/default-linux/ppc/2005.1/ppc/G3 /etc/make.profile (G3 Pegasos profil) # ln -snf /usr/portage/profiles/default-linux/ppc/2005.1/ppc/G3/Pegasos/ /etc/make.profile (G4 (Altivec) profil) # ln -snf /usr/portage/profiles/default-linux/ppc/2005.1/ppc/G4 /etc/make.profile (G4 Pegasos profil) # ln -snf /usr/portage/profiles/default-linux/ppc/2005.1/ppc/G4/Pegasos/ /etc/make.profile |
Til ppc64, er der en del nye profiler leveret med 2005.1.
Kode oversigt 1.11: PPC64-profiles |
(Standard 64bit userland PPC64-profil, til alle PPC64-maskiner) # ln -snf /usr/portage/profiles/default-linux/ppc/2005.1/ppc64/64bit-userland /etc/make.profile (Standard 32bit userland PPC64-profil, til alle PPC64-maskiner) # ln -snf /usr/portage/profiles/default-linux/ppc/2005.1/ppc64/32bit-userland /etc/make.profile (Hver type af userland har underprofiler, som følger her, med (userland) erstatet af den valgte userland fra ovenstående) (970 profil til JS20) # ln -snf /usr/portage/profiles/default-linux/ppc/2005.1/ppc64/(userland)/970 /etc/make.profile (G5 profil) # ln -snf /usr/portage/profiles/default-linux/ppc/2005.1/ppc64/(userland)/970/pmac /etc/make.profile (POWER3 profil) # ln -snf /usr/portage/profiles/default-linux/ppc/2005.1/ppc64/(userland)/power3 /etc/make.profile (POWER4 profil) # ln -snf /usr/portage/profiles/default-linux/ppc/2005.1/ppc64/(userland)/power4 /etc/make.profile (POWER5 profil) # ln -snf /usr/portage/profiles/default-linux/ppc/2005.1/ppc64/(userland)/power5 /etc/make.profile (Multilib-profilen er ikke stabil til denne udgivelse.) |
USE er en af de mest kraftfulde variabler, som Gentoo udbyder til dens brugere. Mange programmer kan kompileres med eller uden valgfri understøttelse af bestemte ting. For eksempel, kan nogle programmer kompileres med gtk understøttelse, eller med qt understøttelse. Andre kan kompileres med eller uden SSL understøttelse. Nogle programmer kan endda kompileres med framebuffer understøttelse (svgalib) i stedet for X11-understøttelse (X-server).
De fleste distributioner kompilerer deres pakker med understøttelse for så meget som muligt, hvilket forøger størrelsen og starttiden på programmerne, for ikke at tale om de enorme mængder af afhængigheder. Med Gentoo kan du selv definere, hvilke muligheder, dine pakker skal kompileres med. Det er her USE, kommer ind i spillet.
I USE-variablen, definerer du nøgleord, som bliver lagt oven på kompileringsparametrene. For eksempel vil ssl kompilere ssl understøttelse ind i de programmer, der understøtter det. -X vil fjerne understøttelse af X-server (bemærk minus-tegnet forrest).gnome gtk -kde -qt vil kompilere dine programmer med gnome (og gtk) understøttelse, men ikke med kde (og qt) understøttelse, hvilket gør dit system fuldt ud fin-indstillet til GNOME.
Standard USE-indstillingerne er placeret i make.defaults-filerne for din profil. Du finder make.defaults-filerne i folderen, som /etc/make.profile peger på samt alle næstgående foldere. Standard USE-indstilling er summen af alle USE-indstillinger i alle make.defaults-filere. Hvad du placerer i /etc/make.conf bliver udregnet mod disse standardværdier. Hvis du lægger noget til USE-indstillingen, bliver den lagt til standardlisten. Hvis du fjerner noget fra USE-indstillingen (ved at placere et minus-tegn foran det) så bliver det fjernet fra standardlisten (hvis det på noget tidspunkt var til stede). Redigér ALDRIG noget i /etc/make.profile biblioteket; det bliver overskrevet når du opdaterer Portage!
En fuld beskrivelse af USE kan findes i den anden halvdel af Gentoo-håndbogen, USE-flag. En fuld beskrivelse er tilgængeligt. USE-flag kan blive fundet i dit system ved /usr/portage/profiles/use.desc.
Kode oversigt 1.12: Se mulige USE-flag |
# less /usr/portage/profiles/use.desc (Du kan scrolle ved bruge af pil-tasterne og afslutte ved at trykke 'q') |
Som et eksempel, viser vi en USE-indstilling til et KDE baseret system med DVD, ALSA og brænding af CD-ROM understøttelse:
Kode oversigt 1.13: Åbning af /etc/make.conf |
# nano -w /etc/make.conf
|
Kode oversigt 1.14: USE indstilling |
USE="-gtk -gnome qt kde dvd alsa cdr" |
Du vil sikkert bruge en eller måske to locales på dit system. Indtil nu efter samlingen af glibc, var et fuld sæt af locales være tilgængelige og oprettet. Fra nu af kan du aktivere userlocales USE-flaget og specifere kun de locales, du har brug for i /etc/locales.build. Gør kun dette, hvis du ved hvilke locales, som du kan vælge. Dette vil ikke virke til bootstrapping, men når du gensamler glibc bagefter vil den.
Kode oversigt 1.15: Aktivering af userlocales USE-flag, specielt til glibc |
# mkdir -p /etc/portage # echo "sys-libs/glibc userlocales" >> /etc/portage/package.use |
Specificer nu locales, som du ønsker at bruge:
Kode oversigt 1.16: Åbning af /etc/locales.build |
# nano -w /etc/locales.build
|
De følgende er eksempler på hvad du får ved både Engelsk (Amerikansk) og Tysk (Tyskland) med de tilhørende karakter-formater (som UTF-8).
Kode oversigt 1.17: Specificering af dine locales |
en_US/ISO-8859-1 en_US.UTF-8/UTF-8 de_DE/ISO-8859-1 de_DE@euro/ISO-8859-15 |
6.b. Forskelle mellem Stage1, Stage2, og Stage3
Sæt dig ned og tænk over de tidligere trin. Vi bad dig vælge stage1, stage2 eller stage3 og advarede dig, om at dit valg ville være vigtigt for de videre installationstrin. Her er det første sted, hvor dit valg definerer de følgende trin.
Introduktion til bootstrapping
Så du vil kompilere alting fra bunden? jamen okay så :-)
I dette trin vil vi bootstrappe dit Gentoo system. Dette tager lang tid, men resultatet er et system, som er blevet optimeret, fra bunden og op, til din specifikke maskine og dine behov.
At bootstrappe betyder at man bygger GNU C biblioteket, GNU Compiler Collection og flere andre nøgle-systemprogrammer. GNU Compiler Collectionen skal enddag bygges to gange: Først med den generelle compiler, som vi udbyder, og en anden gang med den compiler, du lige har bygget.
Før vi starter med at bootstrappe, vil du måske hente alt kildekode først. Hvis du ikke vil gøre dette, fortsæt med Bootstrap af systemet.
Valgfrit: Hent kildekoden først
Hvis du ikke har kopieret alt kildekoden til dit system tidligere, så vil bootstrap-scriptet automatisk hente alle de nødvendige filer. Hvis du vil hente kildekoden først og så senere bootstrappe system (f.eks. fordi du ikke vil have din internet forbindelse åben under kompilering) så kan du bruge -f (bogstavet f for det engelske fetch) parameteren på bootstrap-scriptet, det vil resultere i at den henter alt kildekoden for dig.
Kode oversigt 3.1: Download den nødvendige kildekode |
# cd /usr/portage # scripts/bootstrap.sh -f |
Okay så, tag dit keyboard og tast den næste kommando ind for at starte bootstrap-processen. Gå derefter et eller andet sted hen og underhold dig selv fordi det her kommer til at tage en god del tid, at blive færdig med.
Kode oversigt 3.2: At bootstrappe systemet |
# cd /usr/portage # scripts/bootstrap.sh |
Forsæt nu med det næste trin, Fra Stage2 til Stage3.
Hvis du læser denne sektion, så har du et bootstrappet system (enten fordi du selv har bootstrappet tidligere, eller fordi du bruger en stage2). Du skal nu til at bygge alle systempakkerne.
Alle systempakkerne? Nej ikke rigtigt. I dette trin bygger du de system pakker, hvor der ikke er nogle alternativer til, og som skal bruges til et virkende system. Nogle system pakker har flere alternativer (så som system loggere) og eftersom Gentoo, handler om valg, så vil vi ikke tvinge en type ned over hovedet på dig.
Valgfrit: Oversigt over hvad der bliver lavet
Hvis du vil vide hvilke pakker, der vil blive installeret, så kan du køre emerge --pretend --emptytree system. Dette vil vise en liste med alle pakker der vil blive kompileret. Eftersom den liste er rimelig stor skal du nok bruge en pager som f.eks. less eller more til at gå op og ned gennem listen.
Kode oversigt 4.1: Vis hvad 'emerge system' vil gøre |
# emerge --pretend --emptytree system | less
|
Noter at hvis du ikke har rørt ved standard CFLAGS/CXXFLAGS-indstillinger, er brug af emerge --pretend --newuse system nok: det vil genbygge programmer, som er berørte af ændringer i USE-flags (i sammenligning med de USE-flag, som vi brugte, da vi byggede stage2). Hvis du heller ikke rørte ved USE-flag heller, hvorfor kører du så en stage2-installation?
Hvis du vil have emerge til at downloade kildekoden, før du fortsætter (f.eks. fordi du ikke vil have internet-forbindelsen åben, mens du kompilerer alle pakkerne) så kan du bruge --fetchonly parametren til emerge, som vil hente alt kildekode for dig.
Kode oversigt 4.2: Hentning af kildekoder |
# emerge --fetchonly --emptytree system
|
For at starte opbygningsprocessen af system, skal du køre emerge --emptytree system. Dette trin tager forholdsvis lang tid at færdiggøre så find på noget andet at lave end at stirre ind i skærmen.
Kode oversigt 4.3: Opbygning af systemet |
# emerge --emptytree system
|
Igen, hvis du ikke har rørt ved standard CFLAGS- og CXXFLAGS-indstillinger, er brug af --newuse nok.
Du kan nu med sikkerhed ignorere alle advarsler omkring de opdaterede opsætningsfiler (og køre etc-update). Når dit Gentoo system er fuldt installeret og genstartet, læs da vores dokumentation omkring opsætning af filbeskyttelse.
Når opbygningen er færdig, skal du forsætte med Opsætning af kernen.
Du bliver først nødt til at vælge din tidszone så. at dit system ved hvor det er lokaliseret. Kig efter din tidszone i /usr/share/zoneinfo, og lav derefter en symbolsk henvisning til /etc/localtime ved brug af ln:
Kode oversigt 1.1: At sætte tidszone informationen |
# ls /usr/share/zoneinfo (Hvis du vil bruge GMT) # ln -sf /usr/share/zoneinfo/GMT /etc/localtime |
7.b. Installation af kildekoderne
Kernen omkring alle distributioner er bygget på Linux-kernen. Det er et lag imellem bruger-programmer og dit systems hardware. Gentoo giver dens brugere flere forskellige mulige kerne-kildekoder. En fuld liste med beskrivelser forefindes i Gentoo Linux kerne vejledning.
Til PPC64 kan du bruge gentoo-sources. Så lad os fortsætte med at emerge kerne-kildekoderne:
Kode oversigt 2.1: Installation af kerne-kildekode |
# emerge gentoo-sources
|
Når du tager et kig i /usr/src, burde du se en genvej kaldet linux, som peger mod din kerne-kildekode:
Kode oversigt 2.2: Se genvej til kerne-kildekode |
# ls -l /usr/src/linux
lrwxrwxrwx 1 root root 12 Jul 10 10:55 /usr/src/linux -> linux-2.6.7-gentoo-r8
|
Hvis det ikke er det (altså at genvejen peger mod en anden kerne-kildekode) skal du ændre genvejen før du fortsætter:
Kode oversigt 2.3: Ændring af genvejen til kerne-kildekode |
# rm /usr/src/linux # cd /usr/src # ln -s linux-2.6.7-gentoo-r8 linux |
Nu er det tid til at opsætte og kompilere din kernes kildekoder. Der er en mulig for at bruge "genkernel", som vil bygge en omfattende kerne, som også er brugt på installationsCDen, men det er ikke fuldt funktionelt til PPC64 i øjeblikket.
Hvis du vil opsætte din kerne manuelt, forsæt nu med Standard: Manuel opsætning.
At opsætte kernen manuelt bliver ofte anset som det sværeste, som enhver Linux-bruger skal gå igennem. Intet er mindre rigtigt -- efter opsætninger af nogle kerner, vil du ikke kunne huske at det var svært ;)
Én ting er dog rigtigt: du skal kende dit system, når du starter med at opsætte en kerne manuelt. De fleste informationer kan samles ved at emerge pciutils (emerge pciutils), som indeholder lspci. Du kan nu have mulighed for at bruge lspci inden i det chrootede miljø. Du kan med sikkerhed ignorere alle pcilib advarsler (som pcilib: cannot open /sys/bus/pci/devices) som lspci fortæller. Alternativt, kan du køre lscpi fra et ikke-chrootet miljø. Resultatet er det samme. Du kan også køre lsmod for at se hvilke kerne-moduler, installationsCDen bruger (det vil måske give dig en god idé om hvad du skal aktivere).
Gå nu til kerne-kildekode mappen og udfør make menuconfig. Dette vil starte en ncurses-baseret opsætningsmenu.
Kode oversigt 3.1: Påkalde menuconfig |
# cd /usr/src/linux # make menuconfig |
Du vil blive hilst af flere opsætningssektioner. Vi vil først give dig en liste af de valgmuligheder, som du skal aktivere (ellers vil Gentoo ikke funktionere, eller funktionere ordentligt uden ekstra finindstillinger).
Aktivering af krævede valgmuligheder
Først skal du aktivere brugen af udviklings- og forsøgskoder/-drivere. Du vil få brug for dette, ellers vil meget vigtige koder/drivere ikke vise sig:
Kode oversigt 3.2: Valg af eksperimentielle koder/drivere, Generel opsætning |
Code maturity level options ---> [*] Prompt for development and/or incomplete code/drivers General setup ---> [*] Support for hot-pluggable devices |
Gå nu til File Systems og vælg understøttelse til de filsystemer, som du bruger. Kompiler dem ikke som moduler, ellers vil dit Gentoo system ikke have mulighed for at montere dine partitioner. Vælg også Virtual memory, /proc file system, /dev file system, Automatically mount at boot og /dev/pts file system for Unix98 PTYs:
Kode oversigt 3.3: Valg af nødvendige filsystemer |
File systems --->
Pseudo Filesystems --->
[*] Virtual memory file system support (former shm fs)
[*] /proc file system support
[*] /dev file system support (EXPERIMENTAL)
[*] Automatically mount at boot
[*] /dev/pts file system for Unix98 PTYs
(Vælg en eller flere af de følgende valgmuligheder, som er nødvendige for dit system)
<*> Reiserfs support
<*> Ext3 journalling file system support
<*> JFS filesystem support
<*> Second extended fs support
<*> XFS filesystem support
|
Bemærk: Du vil finde nogle af de forklarede valgmuligheder under Pseudo filesystems, som er en del af File systems. |
Hvis du bruger PPPoE til at forbinde til Internettet eller du bruger en opkaldsmodem, vil du få brug for de følgende valgmuligheder i kernen (du kan finde de forklarede valgmuligheder under Networking support, som er en del af Device Drivers):
Kode oversigt 3.4: Valg af PPPoE nødvendige drivere |
Network device support ---> <*> PPP (point-to-point protocol) support <*> PPP support for async serial ports <*> PPP support for sync tty ports |
De to kompressionsvalgmuligheder vil ikke være ubrugelige, men er slet ikke nødvendige, det samme med PPP over Ethernet valgmuligheden, som måske vil blive brugt af rp-pppoe, når den er opsat til at lave kerne-modus PPPoE.
Hvis du kræver det, glem ikke at inkludere understøttelse af dit netkort i kernen.
Fravælg alle ADB raw keycodes:
Kode oversigt 3.5: Fravælg ADB raw keycodes |
Macintosh Device Drivers ---> [ ] Support for ADB raw keycodes |
Når du er færdig med at opsætte din kerne, fortsæt med Kompilering og installation.
Nu da din kerne er opsat, er det tid til at kompilere og installere den. Afslut opsætningen (Exit) og start samlingsprocessen:
Kode oversigt 3.6: Kompilering af kerne |
(Apple/IBM) # make all && make modules_install
|
Når kernen er færdig med at kompilere, kopier den da over til /boot.
Kode oversigt 3.7: Installation af kerne |
(Apple/IBM) # cp vmlinux /boot/kernel-2.6.7-gentoo-r8
|
Glem heller ikke at kopiere system map over:
Kode oversigt 3.8: Kopiering af system map |
# cp System.map /boot/System.map-2.6.7
|
Det er også klogt at kopiere din kerneopsætningsfil til /boot, bare for en sikkerheds skyld :)
Kode oversigt 3.9: Backup af din kerneopsætning |
# cp .config /boot/config-2.6-7-gentoo-r8
|
Fortsæt nu med Opsætning af moduler.
Du bør opliste de moduler, som du vil have automatisk hentet, i /etc/modules.autoload.d/kernel-2.6. Du kan også tilføje ekstra valgmuligheder til modulerne, hvis du vil.
For at se alle de tilgængelige moduler, kør følgende find-kommando. Glem ikke at udskifte "<kernel version>" med den version af kernen, du lige har kompileret:
Kode oversigt 4.1: Se alle mulige moduler |
# find /lib/modules/<kernel version>/ -type f -iname '*.o' -or -iname '*.ko'
|
For automatisk at hente f.eks 3c59x.o modulet, skal du ændre kernel-2.6-filen og skrive modulnavnet i den.
Kode oversigt 4.2: At redigere /etc/modules.autoload.d/kernel-2.6 |
# nano -w /etc/modules.autoload.d/kernel-2.6
|
Kode oversigt 4.3: /etc/modules.autoload.d/kernel-2.6 |
3c59x |
Fortsæt installationen med Opsætning af dit system.
8.a. Informationer om filsystemet
Under Linux skal alle partitioner, som systemet benytter, være på listen i /etc/fstab. Denne fil indeholder mount-punkterne til disse partitioner (hvor de bliver set i filsystemets struktur), hvordan de skal mountes og med hvilke specielle indstillinger (automatisk eller ej, om brugere kan eller ikke kan mounte dem, osv.).
/etc/fstab benytter en speciel syntaks. Hver linje består af seks felter, adskilt af mellemrum eller tabulatorer (og gerne flere af begge). Hvert felt har sin egen betydning:
Standard-filen /etc/fstab leveret af Gentoo er ikke en valid fstab-fil, så start nano (eller dit foretrukne redigeringsprogram) for at oprette din /etc/fstab:
Kode oversigt 1.1: Åbning af /etc/fstab |
# nano -w /etc/fstab
|
Lad os se på hvordan vi skal lave opsætningen for /boot partitionen. Dette er kun et eksempel, så hvis din arkitektur ikke har brug for en /boot partition (f.eks. PPC), så lad være med at kopiere det ordret.
I vores standardeksempel med x86 partitionering er /boot partitionen /dev/hda1 med ext2 som filsystem. Den bør kontrolleres ved boot, så vi skriver:
Kode oversigt 1.2: Eksempel på linjen med /boot i /etc/fstab |
/dev/hda1 /boot ext2 defaults 1 2 |
Nogle brugere ønsker ikke at deres /boot partition bliver automatisk mountet for at forbedre systemets sikkerhed. Disse personer bør udskifte defaults med noauto. Dette betyder at du selv skal mounte denne partition manuelt, hver gang du skal bruge den.
For at forbedre ydelsen vil de fleste brugere tilføje noatime som en mount-indstilling, hvilket vil resultere i et hurtigere system, da tilgangstider ikke bliver registreret (hvilket du normalt ikke har brug for):
Kode oversigt 1.3: En forbedret /boot linje i /etc/fstab |
/dev/hda1 /boot ext2 noauto,noatime 1 2 |
Hvis vi forsætter med dette, får vi de tre følgende linjer (for /boot, / og swap-partitionen):
Kode oversigt 1.4: De tre linjer i /etc/fstab |
/dev/hda1 /boot ext2 defaults,noatime 1 2 /dev/hda2 none swap sw 0 0 /dev/hda3 / ext3 noatime 0 1 |
For at gøre det færdigt bør du tilføje en definition for /proc, tmpfs (påkrævet) og for dit CD-ROM drev (og selvfølgelig også for andre partitioner og drev, hvis du har det):
Kode oversigt 1.5: Et komplet eksempel på /etc/fstab |
/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 får mount til at gætte på filsystemet (anbefalet for flytbare medier, da de kan være skabt med et enkelt ud af mange filsystemer) og user gør det muligt, for andre brugere end root, at mounte CDen.
Brug nu eksemplet ovenfor til at oprette din /etc/fstab. Hvis du er SPARC-bruger, bør du også tilføje den følgende linje til /etc/fstab:
Kode oversigt 1.6: Tilføjelse af filsystemet openprom i /etc/fstab |
none /proc/openprom openpromfs defaults 0 0 |
Dobbelt-tjek din /etc/fstab, gem og afslut for at fortsætte.
Et af de valg, man som bruger, skal gøre, er at bestemme et navn til sin PC. Dette lader til at være ret let, men mange brugere har problemer med at finde et passende navn til deres Linux PC. For at gøre det kort, så kan du ændre ethvert navn du vælger, senere. For vores skyld kan du kalde dit system tux og dit domæne homenetwork.
Vi bruger disse værdier i de næste eksempler. Først angiver vi værtsnavnet:
Kode oversigt 2.1: Angivelse af værtsnavn |
# nano -w /etc/conf.d/hostname (Indsæt dit værtsnavn i HOSTNAME-variablen) HOSTNAME="tux" |
Herefter angiver vi domænenavn:
Kode oversigt 2.2: Angivelse af domænenavn |
# nano -w /etc/conf.d/domainname (Indsæt domænenavnet i DNSDOMAIN-variablen) DNSDOMAIN="hjemmenetvaerk" |
Hvis du har et NIS-domæne (hvis du ikke ved hvad det er, har du ikke et), skal du også angive det:
Kode oversigt 2.3: Angivelse af NIS-domænenavn |
# nano -w /etc/conf.d/domainname (Indsæt NIS-domænenavnet i NISDOMAIN-variablen) NISDOMAIN="mit-nisdomaene" |
Tilføj nu scriptet domainname til standard runlevel:
Kode oversigt 2.4: Tilføjelse af domainname til standard runlevel |
# rc-update add domainname default
|
Før du får den "Hallo, vi har været igennem det før"-følelse, skal du huske på at den opsætning af netværket du lavede i starten af Gentoo installationen, kun var for installationen. Nu skal du lave den permanente opsætning af dit netværk til dit Gentoo system.
Al netværksinformation er samlet i /etc/conf.d/net. Den benytter en meget ligefrem, men ikke særlig intuitiv, syntaks, hvis du ikke kender til manuel netværksopsætning. Men frygt ikke, vi vil forklare det hele. Et fuldt kommenteret eksempel, som dækker mange forskellige opsætninger, er tilgængeligt i /etc/conf.d/net.example.
DHCP er brugt som standard, og kræver derfor ingen yderligere opsætning.
Hvis du skal opsætte din netværksforbindelse, enten fordi du skal bruge specifikke DHCP-valgmuligheder eller fordu du ikke bruger DHCP overhovedet, åben /etc/conf.d/net med dit favorit redigeringsprogram (nano er brugt i dette eksempel):
Kode oversigt 2.5: Åbning af /etc/conf.d til redigering |
# nano -w /etc/conf.d/net
|
Du vil se følgende fil:
Kode oversigt 2.6: Standard /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 :]!). |
For at indtaste din egen IP-adresse, netmaske og gateway, skal du indstille både config_eth0 og routes_eth0:
Kode oversigt 2.7: Manuel indstilling af IP-informationer til eth0 |
config_eth0=( "192.168.0.2 netmask 255.255.255.0" ) routes_eth0=( "default gw 192.168.0.1" ) |
For at bruge DHCP og tilføje specifikke DHCP-valgmuligheder, definer config_eth0 og dhcp_eth0:
Kode oversigt 2.8: Automatisk optagning af IP-adresse til eth0 |
config_eth0=( "dhcp" ) dhcp_eth0="nodns nontp nonis" |
Læs venligst /etc/conf.d/net.example for en liste af alle mulighederne.
Hvis du har forskellige netværksgrænseflader, gentag ovenstående trin til config_eth1, config_eth2 osv.
Gem nu indstillingerne og afslut for at fortsætte.
Automatisk start af netværk ved opstart
For at aktivere dine netværkenheder ved opstarten, skal du tilføje dem til standard runlevel. Hvis du har PCMCIA-enheder, bør du springe denne sektion over, da PCMCIA-enheder er startet af scriptet PCMCIA init.
Kode oversigt 2.9: Tilføjelse af net.eth0 til standard runlevel |
# rc-update add net.eth0 default
|
Hvis du har flere netværksenheder, skal du oprette tilsvarende net.eth1, net.eth2 etc. initscripts til dem. Du kan bruge ln til det:
Kode oversigt 2.10: Oprettelse af ekstra initscripts |
# cd /etc/init.d # ln -s net.eth0 net.eth1 # rc-update add net.eth1 default |
Angivelse af netværksinformation
Du skal nu informere Linux om dit netværk. Dette er defineret i /etc/hosts og hjælper med at oversætte værtsnavne til IP-adresser, for værter der ikke er blevet oversat af din navneserver. Hvis f.eks. dit interne netværk består af tre PC'er navngivet jenny (192.168.0.5), benny (192.168.0.6) og tux (192.168.0.7 - dette system) skal du åbne /etc/hosts og indsætte disse værdier:
Kode oversigt 2.11: Åbn /etc/hosts |
# nano -w /etc/hosts
|
Kode oversigt 2.12: Indsættelse af netværksinformation |
127.0.0.1 localhost 192.168.0.5 jenny.homenetwork jenny 192.168.0.6 benny.homenetwork benny 192.168.0.7 tux.homenetwork tux |
Hvis dit system er det eneste (eller navneserveren klarer alle navneoversættelser), er en enkelt linje nok. F.eks., hvis du vil kalde dit system tux:
Kode oversigt 2.13: /etc/hosts for enlige eller fuldt integrerede PC'er |
127.0.0.1 localhost tux |
Gem og afslut din editor for at afslutte.
Hvis du ikke har PCMCIA, kan du nu fortsætte med Systeminformation. PCMCIA-brugere bør læse det følgende emne om PCMCIA.
Valgfri: Få PCMCIA til at køre
Bemærk: pcmcia-cs er kun tilgængelig til x86, amd64 og ppc platformene. |
PCMCIA-brugere bør først installere pcmcia-cs-pakken. Dette er også for brugere, som arbejder med en 2.6-kerne (selvom de ikke bruger PCMCIA-driverne fra denne pakke). USE="-X" er nødvendigt for at sikre at xorg-x11 ikke bliver installeret på dette tidspunkt:
Kode oversigt 2.14: Installation af pcmcia-cs |
# USE="-X" emerge pcmcia-cs
|
Når pcmcia-cs er installeret, så tilføj pcmcia til standard runlevel:
Kode oversigt 2.15: Tilføjelse af pcmcia til standard runlevel |
# rc-update add pcmcia default
|
Først skal vi sætte root-kodeordet ved at taste:
Kode oversigt 3.1: At sætte root-kodeordet |
# passwd
|
Hvis du vil have at root kan logge ind via en seriel konsol, tilføj tts/0 til /etc/securetty:
Kode oversigt 3.2: Tilføjelse af tts/0 til /etc/securetty |
# echo "tts/0" >> /etc/securetty
|
Gentoo bruger /etc/rc.conf til generel system opsætning. Åbn /etc/rc.conf og nyd alle kommentarerne i filen :)
Kode oversigt 3.3: Åbning af /etc/rc.conf |
# nano -w /etc/rc.conf
|
Når du har er færdig med at opsætte /etc/rc.conf, gem og afslut.
Som du kan se, er denne fil kommenteret en del, for at hjælpe dig med opsætningen af de nødvendige variabler. Du kan opsætte dit system til at bruge unicode og definere dit standard-redigeringsprogram og din grafiske loginhåndtering (som f.eks. gdm eller kdm).
Gentoo bruger /etc/conf.d/keymaps for at håndtere tastaturopsætningen. Rediger den til at opsætte dit tastatur.
Kode oversigt 3.4: Åbning af /etc/conf.d/keymaps |
# nano -w /etc/conf.d/keymaps
|
Vær særlig opmærksom på indstillingen af KEYMAP. Hvis du vælger et forkert KEYMAP, vil du få mærkelige resultater, når du skriver på tastaturet.
Bemærk: Brugere af USB-baserede SPARC systemer og SPARC kloner, kan have brug for at vælge en i386 keymap (som f.eks. "us") i stedet for "sunkeymap". PPC bruger x86-keymaps til de fleste systemer. Bruger, som ønsker at bruge ADB-keymaps ved opstart, skal aktivere ADB-keycode indstillinger i deres kerne og skal sætte en mac/ppc-keymap i /etc/conf.d/keymaps. |
Når du er færdig med at opsætte /etc/conf.d/keymaps, gem og afslut.
Gentoo bruger /etc/conf.d/clock til at indstille klokken. Rediger den så den passer til dine behov.
Kode oversigt 3.5: Åbning af /etc/conf.d/clock |
# nano -w /etc/conf.d/clock
|
Hvis din hardware-ur ikke bruger UTC, skal du tilføje CLOCK="local" i filen. Ellers vil du notere tidsforskydelser. Yderligere, Windows forudsætter at dit hardware-ur bruger lokal tid, så hvis du vil dualboote, bør du sætte denne variabel dertil, ellers vil dit ur gå amok.
Når du er færdig med opsætningen af /etc/conf.d/clock, så gem og afslut.
Hvis du ikke installerer Gentoo på IBM PPC64 hardware, fortsæt med Installation af nødvendige systemværktøjer.
Bemærk: Den følgende sektion er lavet til IBM PPC64 hardware-platformene. |
Hvis du kører Gentoo i en IBM PPC64 hardware og bruger virtuel konsol, skal du afkommentere den rigtige linie i /etc/inittab for at få den virtuelle konsol til at dukke op ved login-prompt.
Kode oversigt 3.6: Aktivering af hvc-understøttelse i /etc/inittab |
hvc0:12345:respawn:/sbin/agetty -L 9600 hvc0 hvsi:12345:respawn:/sbin/agetty -L 19200 hvsi0 |
Du bør også tage tiden til at kigge efter om alt er korrekt i /etc/securetty
Du kan nu fortsætte med Installation af nødvendige systemværktøjer.
Hvis du bruger en 2.4-kerne og installerer Gentoo fra stage 3, er der nogen få ting, du skal gøre. Siden Gentoo nu bruger udev som standard, og udev ikke er understøttet af 2.4-kerner, skal du bruge devfsd og fjerne udev.
Kode oversigt 1.1: Installation af devfsd |
(For dem der bruger 2.4.x kerner ved en stage 3 installation) # emerge --unmerge udev # emerge devfsd |
Da vi forklarede hvad stage3 var, sagde vi, at den indeholdte alle nødvendige systemsredskaber, hvor vi desvære ikke kan lade brugerne vælge. Vi sagde også, at vi ville installere alle de andre redskaber senere. Tja, så er vi jo kommet til det punkt :)
Det første redskab, du skal tage stilling til, skal muliggøre at du kan logge dit systems aktivitet. Unix og Linux har historisk haft fantastiske muligheder for logning -- hvis du vil, kan du logge absolut alt der sker på dit system, og gemme det i logfiler. Dette sker gennem systemloggeren.
Gentoo giver dig flere system-loggere at vælge imellem. Der er sysklogd, som er det traditionelle sæt af systemlogningsdaemoner (baggrundsprocesser), syslog-ng, en acanceret systemslogger og metalog som er et meget konfigurerbart systemlogningsprogram. Andre kan også være tilgængelige via Portage - vores antal af tilgængelige pakker stiger hver dag.
Hvis du planlægger at bruge sysklogd eller syslog-ng, ville du måske ønske at installere logrotate efter, idet disse systemloggere ikke leverer nogen rotationsmekanisme til log-filerne.
For at installere den system-logger du har valgt, skal du emerge den, og sørge for at den bliver sat ind i din default runlevel ved at bruge rc-update. Følgende eksempel installerer syslog-ng. Selvfølgelig skal du bare sætte navnet på din system-logger ind i stedet for:
Kode oversigt 2.1: Installation af et systemslogningsprogram |
# emerge syslog-ng # rc-update add syslog-ng default |
Dernæst har vi cron-daemonen. Selv om den er valgfri og egentlig ikke nødvendig for at dit system fungerer, er det klogt at installere én. Men hvad er en cron-daemon? En cron-daemon kører tidsbestemte kommandoer. Den er meget god at have ved hånden, hvis du skal køre en kommando med jævne mellemrum (for eksempel dagligt, ugentligt, eller hvert måned).
Gentoo giver dig tre forskellige cron-daemoner at vælge imellem: dcron, fcron og vixie-cron. Installation af cron-daemonen minder meget om installationen af systemsloggeren. Men, dcron og fcron kræver en ekstra konfigurations kommando, nemlig crontab /etc/crontab. Hvis du ikke ved hvilken en du skal vælge, så brug vixie-cron.
Vi leverer kun vixie-cron til netværksløse installationer. Hvis du vil have en anden cron-daemon, så vent med at installere den til senere.
Kode oversigt 3.1: Installation af en cron-daemon |
# emerge vixie-cron # rc-update add vixie-cron default (Kun hvis du har valgt dcron eller fcron) # crontab /etc/crontab |
Hvis du vil registere dit system's filer, så du kan finde dem hurtigt med locate-værktøjet, så skal du installere sys-apps/slocate.
Kode oversigt 4.1: Installation af slocate |
# emerge slocate
|
Afhængig af hvilke filsystemer du bruger, skal du installere de relevante filsystemsredskaber (til at tjekke filsystemets integritet, for at lave yderligere filsystemer osv.).
Den følgende liste opregner de redskaber, du skal installere, hvis du bruger et specifikt filsystem:
| Filsystem | Redskab | Installationskommando |
| XFS | xfsprogs | emerge xfsprogs |
| ReiserFS | reiserfsprogs | emerge reiserfsprogs |
| JFS | jfsutils | emerge jfsutils |
Hvis du bruger EVMS, skal du også installere evms:
Kode oversigt 5.1: Installation af EVMS-redskaber |
# emerge evms
|
Hvis du ikke behøver nogen yderligere netværksrelaterede redskaber (som f.eks. rp-pppoe eller en dhcp-klient), fortsæt med Opsætning af boot-loader.
Valgfrit: Installation af en DHCP-klient
Hvis du ønsker at Gentoo automatisk henter en IP-adresse på dit netværksgrænseflade(r), skal du installere dhcpcd (eller en anden DHCP-klient) på dit system. Hvis du ikke gør dette nu, vil du ikke have mulighed for at få forbindelse til Internet efter installationen!
Kode oversigt 6.1: Installation af dhcpcd |
# emerge dhcpcd
|
Valgfrit: Installation af en PPPoE-klient
Hvis du bruger rp-pppoe til at koble op til internettet, så skal du installere den.
Hvis du ikke bruger GRP skal du installere rp-pppoe med følgenede kommando:
Kode oversigt 6.2: Installation af rp-pppoe |
#
USE="-X" emerge rp-pppoe
|
USE="-X" er der, for at sikre at X ikke bliver installeret, som en afhængighed (rp-pppoe har grafiske redskaber; hvis du vil bruge disse, kan du rekompilere rp-pppoe senere, eller lade xorg-x11 installere nu -- som tager et godt stykke tid at kompilere).
Hvis du bruger SCSI-RAID på et POWER5-baseret system, bør du overveje at installere iprutils, som tillader dig at arbejde med RAID disk-array, få status på diskene i arrayen og opdatere microkoder imellem deres funktioner.
Kode oversigt 6.3: Installation af iprutils |
# emerge iprutils
|
Nu kan du gå videre med Opsætning af boot-loader.
Nu hvor din kerne er opsat og kompileret og den nødvendige systemopsætning er klaret, er det tid til at installere et program, der vil sætte gang i din kerne, når du starter systemet. Sådan et program kaldes en boot-loader.
På Linux/PPC64 findes kun yaboot som bootloader indtil vi venter på at grub2 er færdigt.
Vigtigt: Du skal bruge yaboot-static i stedet for yaboot, idet yaboot ikke vil bygges på ppc64. |
Der er to måder at opsætte yaboot til dit system. Du kan bruge den nye og udviklede yabootconfig inkluderet med yaboot-1.3.8-r1 for at starte automatisk indstilling af yaboot. Hvis du af en eller anden grund ikke ønsker at køre yabootconfig, for at indstille /etc/yaboot.conf eller installerer Gentoo på en G5 (på hvilket yabootconfig ikke altid virker), kan du blot redigere i eksempelfilen, der allerede er installeret på dit system.
Vigtigt: yabootconfig/ybin vil ikke virke på IBM. Du skal installere yaboot på en anden måde: Brug af yaboot på IBM-hardware |
Bemærk: Hvis dit rod-filsystem bruger JFS-filsystem, vær sikker på at tilføje ro som kerne-parameter. JFS skal have adgang til at genafspille sin logfil i read-only status før den kan mountes som read-write. |
Standard: Brug af yabootconfig
yabootconfig vil automatisk finde partitionerne på din maskine og opsætte dobbelte og tredobbelte opstartskombinationer med Linux, Mac OS og Mac OS X.
For at bruge yabootconfig, skal dit drev have en bootstrap-partition og /etc/fstab være sat op til dine Linux partitioner. Begge dele skulle allerede være klaret med trinene ovenfor. Du skal starte med at sikre, at du har den seneste version af yaboot installeret, ved at køre emerge --update yaboot. Dette er nødvendigt, da den seneste version vil være tilgængelig via Portage, men måske ikke er i stage-filerne.
Kode oversigt 2.1: Installering af yaboot-static |
# emerge --update yaboot-static
|
Kør nu yabootconfig. Programmet vil køre, og det vil bekræfte placeringen af bootstrap-partitionen. Tast Y hvis det er korrekt. Hvis ikke, så dobbelttjek /etc/fstab. yabootconfig vil nu scanne din systemopsætning, oprette /etc/yaboot.conf og køre mkofboot for dig. mkofboot er brugt til at formatere bootstrap-partitionen, og installere opsætningsfilen til yaboot på den.
Fortsæt nu med Genstart af systemet.
Alternativ: Manuel Yaboot-opsætning
Sørg først for, at have det seneste yaboot-static installeret på dit system:
Kode oversigt 2.2: Installering af Yaboot |
# emerge --usepkg --update yaboot-static
|
Nedenfor finder du en komplet yaboot.conf. Du kan ændre det efter egen vilje. G5-brugere bør være opmærksomme på at deres diske er serielle ATA diske, som bliver set som SCSI-diske af Linux kernen (så erstat /dev/hda med /dev/sda).
Kode oversigt 2.3: /etc/yaboot.conf |
## /etc/yaboot.conf ## ## Kør: "man yaboot.conf" for detaljer. Lav ikke ændringer før du har!! ## Se også: /usr/share/doc/yaboot/examples for opsætningseksempler. ## ## For en dobbelt opstartsmenu, tilføj en eller flere af: ## bsd=/dev/hdaX, macos=/dev/hdaY, macosx=/dev/hdaZ ## vores bootstrap-partition: boot=/dev/hda2 ## ofboot er Open Firmware-metoden til at specificere en ## bootstrap partition. Hvis dette ikke er defineret, vil yaboot ## fejle på en G5 (undtagen hvis du leverer de rigtige parametre ## til mkofboot/ybin programmet). ## hd:X betyder /dev/sdaX (eller /dev/hdaX). ofboot=hd:2 ##hd: er open firmware navn for hda device=hd: delay=5 defaultos=macosx timeout=30 install=/usr/lib/yaboot/yaboot magicboot=/usr/lib/yaboot/ofboot ################# ## Denne sektion kan duplikeres hvis du har mere end en kerne eller et sæt af ## opstartsparametre - udskift 1.6.9 med din kerne-version ################# image=/boot/kernel-2.6.9 label=Linux root=/dev/hda3 partition=3 sysmap=/boot/System.map-2.6.9 read-only macos=hd:13 macosx=hd:12 enablecdboot enableofboot |
Når opsætningen af yaboot.conf er som du vil have den, kører du mkofboot -v for at installere opsætningen på bootstrap-partitionen. Glem ikke dette! Bekræft når mkofboot spørger dig om at lave det nye filsystem.
Hvis alt går vel og du har den samme opsætning som eksemplet ovenfor, vil din næste opstart give dig en simpel femvalgs opstartsmenu. Hvis du opdaterer din Yaboot-opsætning senere, skal du blot køre ybin -v for at opdatere bootstrap-partitionen - mkofboot er kun til opsætning første gang.
Se yaboot projektet for mere information om Yaboot. Lige nu, fortsæt installationen med Genstart af systemet.
10.c. Brug af Yaboot på IBM-hardware
På IBM-hardware kan du ikke køre yabootconfig eller ybin. Du skal forsætte med følgende trin:
Kode oversigt 3.1: yaboot.conf til IBM-hardware |
device=disk:
partition=2
root=/dev/sda2
default=2.6.8-gentoo-r3
timeout=50
image=/boot/vmlinux-2.6.8-gentoo-r3
label=2.6.8-gentoo-r3
append="console=ttyS0,9600"
read-only
|
Til POWER4, POWER5 og blade-baseret hardware, hvor PReP-diskpartitionen og diskpartitionen, som indeholder din kerne er på samme fysiske disk, kan du bruge en simplificeret yaboot.conf. Det følgende bør være nok:
Kode oversigt 3.2: yaboot.conf for PReP hardware |
default = linux
timeout = 100
image=/boot/vmlinux
label=linux
read-only
root = /dev/sda2
append="root=/dev/sda2"
|
For at verficere at yaboot er blevet kopieret til PReP-partitionen:
Kode oversigt 3.3: Verifying the yaboot install on PReP |
# dd if=/dev/sda1 count=10 | grep ELF
Binary file (standard input) matches
10+0 records in
10+0 records out
|
En overenstemmelse significerer at yaboot var installeret korrekt.
Afslut det chrooted miljø og afmount alle mountede partitioner. Indtast så den magiske kommando, du har ventet på: reboot.
Kode oversigt 4.1: Afslutning af chroot og afmount af partitioner samt genstart |
# exit ~# cd ~# umount /mnt/gentoo/boot /mnt/gentoo/proc /mnt/gentoo/dev/mnt/gentoo ~# reboot |
Selvfølgelig, glem ikke at fjerne den opstartbare CD, ellers vil CDen igen starte op i stedet for dit nye Gentoo system.
Når du har genstartet din Gentoo installation, afslut med Afslutning af din Gentoo installation.
Tilføjelse af en dagligdagsbruger
At arbejde som root på et Unix/Linux system er farligt og bør undgås så vidt som muligt. Derfor anbefales det meget at tilføje en dagligdagsbruger.
Grupperne, som en bruger er medlem af, definerer hvilke aktiviteter, brugeren kan udføre. Den følgende tabel viser et antal vigtige grupper, som du måske ville bruge:
| Gruppe | Beskrivelse |
| audio | få adgang til lydenheder |
| cdrom | få direkte adgang til optiske enheder |
| floppy | få direkte adgang til diskettedrev |
| games | få adgang til at spille spil |
| usb | få adgang til USB-enheder |
| video | få adgang til video-optagelseshardware og udføre hardware acceleration |
| wheel | få adgang til at bruge su |
For eksempel, for at tilføje en bruger med navnet jens, som er medlem af wheel-gruppen, users-gruppen og audio-gruppen, log ind som root først (kun root kan oprette brugere) og kør useradd:
Kode oversigt 1.1: Tilføjelse af en dagligdagsbruger |
Login: root Password: (Dit root-kodeord) # useradd jens -m -G users,wheel,audio -s /bin/bash # passwd jens Password: (Indtast kodeordet for jens) Re-enter password: (Indtast kodeordet igen for at bekræfte det) |
Hvis en bruger nogensinde får brug for at lave nogle opgaver, som root, kan denne bruge su - for midlertidigt at få root rettigheder. En anden måde er at bruge sudo-pakken, som hvis opsat korrekt, er meget sikker.
Tillykke! Du har nu et fungerende Gentoo system. Men hvad skal man nu gøre efter dette? Hvad er mulighederne nu? Hvad burde man udforske først? Gentoo giver dens brugere en masse muligheder, og har derfor en masse dokumenterede (og mindre dokumenterede) egenskaber.
Du burde virkeligt tage et kig på den næste del af Gentoo-håndbogen, der hedder Arbejde med Gentoo, som forklarer hvordan du holder dit software opdateret, hvordan du installerer mere software, hvad USE-flag er, hvordan dit Gentoo Init-system virker osv.
Hvis du er interesseret i et optimeret system til brug som arbejdsplads/desktop, eller vil lære hvordan du opsætter dit system til at blive til en fuldt fungerende arbejdsplads, se da i vores Gentoo-arbejdspladsressourcer. Yderligere, vil du måske også ønske at bruge vores localization guide for at gøre dit system lidt mere hjemligt.
Vi har også et dokument omkring Gentoo Sikkerhed(dog på engelsk) som er værd at læse.
For at få en fuld liste over vores dokumentation, se vores side Dokumentationsressourcer.
Du er selvfølgelig altid velkommen på vores Gentoo Forummer eller en af de mange Gentoo IRC-kanaler.
Vi har også en hel del mail-lister åbne til alle vores brugere. Informationer om hvordan man tilføjer sig, fortælles på den side.
Vi vil nu lukke for hanen og lade dig nyde din installation :)
Portage er nok Gentoo's mest fremtrædende innovation i softwarehåndtering. Med dens fleksibilitet og enorme mængder af egenskaber, er den ofte set som det bedste softwarehåndteringsværktøj til Linux.
Portage er fuldstændigt skrevet i Python og Bash og er derfor fuldstændig visuelle for brugere, idet begge er scriptsprog.
De fleste brugere vil arbejde med Portage igennem emerge-værktøjet. Dette kapitel er ikke ment til at duplikere informationer omkring emerge man-sider. For en komplet gennemgang af emerges muligheder, læs venligst man-siderne:
Kode oversigt 1.1: Læsning af emerge man-sider |
$ man emerge
|
Når vi taler om pakker, mener vi ofte softwaretitler, som er tilgængelige for Gentoo-brugere igennem Portage-træet. Portage-træet er en samling af ebuilds, filer som indeholder informationer Portage behøver for at vedligeholde software (installation, søgning, forespørgsel ...). Disse ebuilds er placeret i /usr/portage som standard.
Når Portage spørger efter om at udføre aktivititer for softwaretitlerne, vil den bruge ebuilds på dit system som en base. Det er derfor vigtigt at du regulært opdaterer ebuilds på dit system, så Portage ved noget om de nye software-, sikkerheds-opdateringer osv.
Portage-træet er typisk opdateret ved brug af rsync, et hurtigt udvidbar filoverførselsværktøj. Opdatering er meget simpelt, idet emerge-kommandoen leverer et værktøj til rsync:
Kode oversigt 2.1: Opdatering af Portage-træet |
# emerge --sync
|
Hvis du ikke har mulighed for at rsync'e, fordi du har firewall-forhindringer, kan du stadigvæk opdatere dit Portage-træ ved brug af vores daglig generet Portage-træ snapshots. emerge-webrsync-værktøjet fanger automatisk og installerer de sidste nye snapshots på dit system:
Kode oversigt 2.2: Kørsel af emerge-webrsync |
# emerge-webrsync
|
1.c. Vedligeholdelse af software
For at søge igennem Portage-træet efter softwaretitler, kan du bruge emerges indbyggede søgemuligheder. Som standard, vil emerge --search returnere navne på pakker hvor titlen matcher (enten fuldt eller delvis) det givne søge-term.
F.eks., for at søge efter alle pakker, som har "pdf" i deres navn:
Kode oversigt 3.1: Søgning af pdf-navngivne pakker |
$ emerge --search pdf
|
Hvis du også vil søge igennem beskrivelserne, kan du bruge --searchdesc (eller -S) muligheden:
Kode oversigt 3.2: Søgning af pdf-relaterede pakker |
$ emerge --searchdesc pdf
|
Når du kigger på outputtet, vil du notere at den giver dig en del informationer. Disse felter er klart markeret, så vi vil ikke gå længere ind i deres betydninger:
Kode oversigt 3.3: Eksempel på `emerge --search` output |
* 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
|
Når du har fundet en softwaretitel, som du kan lide, kan du nemt installere den ved brug af emerge: tilføj blot pakkenavnet. F.eks. for at installere gnumeric:
Kode oversigt 3.4: Installation af gnumeric |
# emerge gnumeric
|
Siden mange programmer afhænger af hinanden, vil et forsøg på at installere en specifik softwarepakke evt. resultere i installation af en del afhængigheder. Men bare roligt, Portage håndterer også afhængigheder. Hvis du vil finde ud af hvad Portage ville installere, når du spørger den om at installere en specifik pakke, tilføj --pretend muligheden. F.eks.:
Kode oversigt 3.5: At lade som du bygger gnumeric |
# emerge --pretend gnumeric
|
Når du beder Portage om at installere en pakke, vil den hente de nødvendige kildekoder fra Internet (hvis nødvendigt) og gemme dem, som standard, i /usr/portage/distfiles. Efter dette, vil den pakke ud, bygge og installere pakken. Hvis du vil have Portage til at kun hente kildekoderne, uden af installere dem, tilføj --fetchonly valgmuligheden til emerge kommandoen:
Kode oversigt 3.6: Hentning af kildekode til gnumeric |
# emerge --fetchonly gnumeric
|
Finding af installeret pakkedokumentation
Mange pakker kommer med deres egen dokumentation. Nogengange finder doc USE-flaget ud af om pakkedokumentation bør blive installereret eller ej. Du kan tjekke eksistensen af doc USE-flag med emerge -vp <package name> kommandoen.
Kode oversigt 3.7: Tjekke eksistensen af et doc USE-flag |
(alsa-lib er kun et eksempel selvfølgelig.) # emerge -vp alsa-lib [ebuild N ] media-libs/alsa-lib-1.0.9_rc3 +doc -jack 674 kB |
Du kan aktivere eller deaktivere doc USE-flaget enten globalt i /etc/make.conf-filen eller pr. pakke i /etc/portage/package.use-filen. USE-Flag-kapitlet dækker dette aspekt i detaljer.
Når pakken er installeret, er dens dokumentation generelt fundet i en underfolder navngivet efter pakken under /usr/share/doc-folderen. Du kan også vise en liste over installerede filer med equery-værktøjet, som er en del af app-portage/gentoolkit pakken.
Kode oversigt 3.8: Lokalisering af pakkedokumentation |
# 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 (Alternativt, brug equery for at finde interessante filer:) # 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 (Output fraklippet) |
Når du ønsker at fjerne en softwarepakke fra dit system, brug emerge --unmerge. Dette vil fortælle Portage at fjerne alle filer installeret af denne pakke på dit system undtagen de opsætningsfiler, for dette program, hvis du har ændret dem efter installationen. Ved at efterlade opsætningsfilerne, tillader dig at fortsætte med arbejde med pakken, hvis du tænker på at installere den igen.
Dog, en stor advarsel til dette: Portage tjekker ikke om at en pakke, som du ønsker at fjerne, er krævet af en anden pakke. Den vil dog advare dig, når du ønsker at fjerne en vigtig pakke, som vil ødelægge dit system, hvis du afinstallerer denne.
Kode oversigt 3.9: Fjernelse af gnumeric fra systemet |
# emerge --unmerge gnumeric
|
For at fjerne en pakke fra dit system, vil afhængighederne til denne pakke, som var automatisk installeret når du installerede software, stadigvæk være der. For at få Portage til at finde alle afhængigheder, som nu kan fjernes, brug emerges --depclean funktion. Vi vil tale om dette senere.
For at holde dit system i perfekt form (og ikke at nævne installere de sidste nye sikkerhedsopdateringer), skal du opdatere dit system jævnligt. Siden Portage kun tjekker ebuilds fra dit Portage-træ, skal du først opdatere dit Portage-træ. Når Portage-træet er opdateret, kan du opdatere dit system med emerge --update world:
Kode oversigt 3.10: Opdatering af dit system |
# emerge --update world
|
Portage vil så søge efter en nyere version af de programmer, som du har installeret. Dog, den vil kun verificere de versioner af programmerne, som du har specifikt installeret, ikke afhængighederne. Hvis du vil opdatere enhver pakke på dit system, tilføj --deep muligheden:
Kode oversigt 3.11: Opdatering af hele dit system |
# emerge --update --deep world
|
Idet sikkerhedsopdateringer også sker til pakker, som du ikke har installeret selv på dit system (men er hentet via afhængigheder fra andre programmer), er det anbefalet at køre denne kommando fra tid til anden.
Hvis du har ændret nogen af dine USE-flag på det sidste, bør du også tilføje --newuse. Portage vil så verificere om ændringerne kræver installationen af nye pakker eller gensamling af eksisterende:
Kode oversigt 3.12: Udførsel af fuldstændig opdatering |
# emerge --update --deep --newuse world
|
Nogle pakker i Portage-træet har ingen reel indhold, men er brugt til at installere en samling af pakker. F.eks. vil kde-pakken installere et komplet KDE-miljø på dit system ved at installere forskellige KDE-relaterede pakker, samt afhængigheder.
Hvis du vil fjerne sådan en pakke fra dit system, vil en kørsel af emerge --unmerge på pakken ikke have megen effekt, idet afhængighederne fortsat bliver på systemet.
Portage har en funktionalitet for at fjerne hjemløse afhængigheder, men siden tilgængeligheden af software er dynamisk afhængig, skal du først opdatere dit system fuldstændigt, inklusive de ny ændringer, som du tilføjede ved at ændre USE-flag. Efter dette, kan du køre emerge --depclean for at fjerne hjemløse afhængigheder. Når dette er gjort, skal du genbygge de programmer, som var dynamisk linket til de nu fjernede softwaretitler, men ikke kræves af nogen længere.
Alt dette er håndteret af de følgende tre kommandoer:
Kode oversigt 3.13: Fjernelse af hjemløse afhængigheder |
# emerge --update --deep --newuse world # emerge --depclean # revdep-rebuild |
revdep-rebuild er leveret af gentoolkit pakken; glem ikke at emerge den først:
Kode oversigt 3.14: Installation af gentoolkit pakken |
# emerge gentoolkit
|
Om SLOTs, virtuals, brancher, arkitekturer og profiler
Som vi har sagt før, er Portage ekstremt kraftfuld og understøtter mange egenskaber, som andre softwarehåndteringsværktøjer mangler. For at forstå dette, forklarer vi nogle få aspekter af Portage, uden at gå i detaljer.
Med Portage kan forskellige versioner af en pakke eksistere samtidigt på et system. Imens andre distributioner har tendens til at navngive deres pakker efter disse versioner (som freetype og freetype2) bruger Portage en teknologi kaldet SLOTs. En ebuild erklærer en specifik SLOT for dens version. Ebuilds med forskellige SLOTs kan eksistere samtidigt på samme system. F.eks. freetype-pakken har ebuilds med SLOT="1" og SLOT="2".
Der er også pakker, som leverer samme funktionalitet, men er implementeret forskelligt. F.eks. metalogd, sysklogd og syslog-ng er alle systemlogningsprogrammer. Programmerne som stoler på tilgængeligheden af en "systemlogger" kan ikke afhænge af, f.eks. metalogd, idet den ene systemlogger er lige så god som den anden. Portage tillader for virtuals: hver systemlogger leverer virtual/syslog, så programmer kan afhænge af virtual/syslog.
Software i Portage-træet kan være placeret i forskellige brancher. Som udgangspunkt accepterer dit system kun pakker, som Gentoo mener er stabile. De fleste nye softwaretitler, når leveret, er tilføjet til test-branchen, hvilket betyder at flere tests skal udføres før den bliver markeret som stabil. Selvom du kan se ebuilds for disse softwaretitler i Portage-træet, vil Portage ikke opdatere dem, før de er placeret i den stabile branche.
Noget software er kun tilgængelig for få arktitekturer. Eller hvis softwaren ikke virker på andre arktitekturer, eller den kræver flere tests, eller en udvikler som har leveret softwaren til Portage-træet ikke kan verificere at den virker på andre arktitekturer.
Hver Gentoo installation lever af en specifik profile som indeholder, udover andre informationer, en liste over pakker, som er krævet for at systemet kan funktionere normalt.
Kode oversigt 4.1: Portage-advarsel om blokerede pakker (med --pretend) |
[blocks B ] mail-mta/ssmtp (is blocking mail-mta/postfix-2.2.2-r1) |
Kode oversigt 4.2: Portage-advarsel om blokerede packages (uden --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 indeholder specifikke felter, som informerer Portage om dens afhængigheder. Det er to mulige afhængigheder: bygge-afhængigheder, erklæret i DEPEND og kørsel-afhængigheder, erklæret i RDEPEND. Når en af disse afhængigheder præcist markerer en pakke eller virtual som ikke værende kompatibel, trigger den en blokering.
For at ordne en blokade, kan du vælge at ikke installere pakken eller afinstallere den pakke der skaber konflikten først. I det givne eksempel, kan du vælge ikke at installere postfix eller at fjerne ssmtp først.
Kode oversigt 4.3: Portage-advarsel om maskerede pakker |
!!! all ebuilds that could satisfy "bootsplash" have been masked. |
Kode oversigt 4.4: Portage-advarsel om maskerede pakker |
!!! 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) |
Når du vil installere en pakke, som ikke er tilgængelig på dit system, vil du modtage denne maskerings-fejl. Du bør prøve at installere et andet program, som er tilgængelig til dit system eller vente indtil pakken er tilgængelig. Der er altid en grund til at en pakke er markeret:
Kode oversigt 4.5: Portage-advarsel om en manglende afhængighed |
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. |
Programmet, som du prøver at installere, afhængiger af en anden pakke, som ikke er tilgængelig på dit system. Tjek venligst bugzilla hvis dette problem er kendt og ikke, så rapporter denne. Medmindre du blander brancher, skulle dette ikke fremkomme og er derfor en fejl.
Kode oversigt 4.6: Portage-advarsel om flertydige ebuild navne |
!!! The short ebuild name "aterm" is ambiguous. Please specify !!! one of the following fully-qualified ebuild names instead: dev-libs/aterm x11-terms/aterm |
Programmet, som du prøver at installere, har et navn, som har flere end en type pakke. Du skal også supplere kategori-navnet. Portage vil informere dig om mulige pakker at vælge imellem.
Kode oversigt 4.7: Portage-advarsel om cirkulære afhængigheder |
!!! 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 |
To (eller flere) pakker, som du prøver at installere, afhængiger af hinanden og kan derfor ikke blive installeret. Dette er med stor sandsynlighed en fejl i Portage-træet. Prøv venligst at resynce efter et stykke tid og prøv igen. Du kan også tjekke bugzilla, hvis problemet er kendt, ellers rapportere denne.
Kode oversigt 4.8: Portage-advarsel om at hentning ikke lykkedes |
!!! Fetch failed for sys-libs/ncurses-5.4-r5, continuing...
(...)
!!! Some fetch errors were encountered. Please see above for details.
|
Portage var ikke i stand til at hente kildekoderne til det givne program og vil derfor prøve at installere de andre programmer (hvis muligt). Denne fejl kan være pga. af filspejlet ikke var synkroniseret korrekt eller fordi at ebuild'en peger på et inkorrekt sted. Serveren hvorpå kildekoderne ligger kan også være nede af en grund.
Prøv igen efter en time og se om fejlen stadigvæk er der.
Kode oversigt 4.9: Portage-advarsel om en profil-beskyttede pakke |
!!! Trying to unmerge package(s) in system profile. 'sys-apps/portage' !!! This could be damaging to your system. |
Du har efterspurgt at få fjernet en pakke, som er dit systems kernepakker. Den er placeret i din profil som krævet, og derfor må den ikke fjernes fra dit system.
Når du installerer Gentoo (eller enhver anden distribution, eller endda operativ-system for at nævne det) foretager du nogle valg, afhængigt af miljøet du arbejder med. En opsætning af en server er forskellig fra en opsætning af en arbejdsstation. En spil-arbejdsstation er forskellig fra en 3D-gengivelse-arbejdsstation.
Det er ikke kun rigtigt for at vælge de pakker, som du vil installere, men også hvilke egenskaber en specifik pakke bør understøtte. Hvis du ikke behøver OpenGL, hvorfor skulle du interessere dig for at installere OpenGL og bygge OpenGL-understøttelse til de fleste af vores pakker? Hvis du ikke vil bruge KDE, hvorfor vi du interessere dig for at kompilere pakker med KDE-understøttelse, hvis disse pakker virker fejlfrit uden?
For at hjælpe brugere med at beslutte, hvad man bør installere/aktivere eller ikke, vil vi få brugeren til at specificere sit miljø på en nem måde. Dette tvinger brugeren til at beslutte, hvad han virkelig vil have og letgør processen for Portage, vores pakkebehandlingssystem, for at lave hjælpsomme beslutninger.
Tag et skridt ind i USE-flag verdenen. Sådan et flag er et nøgleord, der udtrykker understøttelse og afhængighedsinformationer til sådan et koncept. Hvis du definerer et specifikt USE-flag, vil Portage vide om, at du vil have understøttelse for dette valgte nøgleord. Selvfølgelig vil dette også ændre afhængighedsinformationerne for en pakke.
Lad os tage et kig på et specifikt eksempel: kde-nøgleordet. Hvis du ikke har dette nøgleord i dine USE-variablerne, vil alle pakker, som har valgfri KDE-understøttelse, blive kompileret uden KDE-understøttelse. Alle pakker, som har valgfrie KDE-afhængigheder, vil blive installeret uden at installere KDE-biblioteker (som en afhængighed). Hvis du har defineret kde-nøgleordet, vælg da de pakker, som vil være kompileret med KDE-understøttelse, og KDE-libs vil blive installeret, som en afhængighed.
Ved at definere nøgleordene korrekt, vil du modtage et system, som er skræddersyet specifikt til dine behov.
Der er to typer USE-flag: globale og lokale USE-flag.
En liste over tilgængelige globale USE-flag, kan blive fundet online eller lokalt i /usr/portage/profiles/use.desc. Et kort (meget ufuldendt) udsnit:
Kode oversigt 1.1: Et kort udsnit af tilgængelige USE-flag |
gtk - Tilføjer understøttelse til x11-libs/gtk+ (GIMP-værktøjskassen) gtk2 - Brug af gtk+-2.0.0 i stedet for gtk+-1.2 i nogle situationer, hvor programmet undersøtter begge. gtkhtml - Tilføjer understøttelse til gnome-extra/gtkhtml guile - Tilføjer understøttelse til dev-util/guile (interpreter til Scheme) icc - Brug af Intels C++ Compiler, hvis pakken understøtter det icc-pgo - Aktivering af 'PGO data generation' eller brug den ved brug af icc. imap - Tilføjer understøttelse til IMAP |
En liste over lokale mulige USE-flag kan blive fundet lokalt i /usr/portage/profiles/use.local.desc.
I håbet af at du er overbevist om vigtigheden af USE-flag, vil vi nu informere dig om, hvordan man erklærer USE-flag.
Som tidligere nævnt, er alle USE-flags erklæret inde i USE-variabelen. For at gøre det nemt for brugere at søge og vælge USE-flag, har vi allerede leveret en standard USE-indstilling. Denne indstilling er en samling af USE-flag, som vi mener er de mest brugte af Gentoo brugere. Denne standard-indstilling er erklæret i make.defaults fil delen af din profil.
Den profil dit system lytter til bliver peget på af /etc/make.profile symlinket. Hver profil virker ovenpå en anden større profil, slutresultatet er derfor summen af alle profilerne. Den øverste profil er base profilen (/usr/portage/profiles/base).
Lad os kigge på standard opsætningen:
Kode oversigt 2.1: Akkumuleret /usr/portage/profiles/default-linux/x86/2004.3/make.defaults USE variabler |
(Dette eksempel er summen af opsætningen i base, default-linux,
default-linux/x86 og default-linux/x86/2004.3)
USE="x86 oss apm arts avi berkdb bitmap-fonts crypt cups encode fortran f77
foomaticdb gdbm gif gpm gtk gtk2 imlib jpeg kde gnome libg++ libwww mad
mikmod motif mpeg ncurses nls oggvorbis opengl pam pdflib png python qt
quicktime readline sdl spell ssl svga tcpd truetype X xml2 xmms xv zlib"
|
Som du kan se, indeholder denne variabel allerede en hel del nøgleord. Du skal ikke ændre noget i make.defaults-filen for at skræddersy USE-variabelen til dine behov: ændringer i denne fil vil blive fjernet, når du opdaterer Portage!
For at ændre denne standard-indstilling, skal du tilføje eller fjerne nøgleord til USE-variabelen. Dette er gjort globalt ved at definere USE-variabelen i /etc/make.conf. Dette er variabelen, som du kan tilføje ekstra USE-flag, som du kræver, eller fjerne de USE-flag, som du ikke vil bruge. Sidstnævnte er gjort ved at foranstille nøgleordet med et minus-tegn ("-").
F.eks. for at fjerne understøttelse til KDE og QT, men tilføje understøttelse til ldap, følgende USE kan blive defineret i /etc/make.conf:
Kode oversigt 2.2: Et eksempel på en USE-opsætning /etc/make.conf |
USE="-kde -qt ldap" |
Erklæringer af USE-flag til individuelle pakker
Nogen gange ønsker du at erklære specifikke USE-flag til et af (eller flere) programmerne, men ikke i hele systemet. For at gøre dette, skal du oprette /etc/portage-folderen (hvis den ikke allerede eksisterer) og redigere /etc/portage/package.use.
F.eks., hvis du ikke vil have berkdb-understøttelse globalt, men kun vil have den til mysql, ville du tilføje:
Kode oversigt 2.3: /etc/portage/package.use eksempel |
dev-db/mysql berkdb |
Du kan selvfølgelig også specifikt udlade USE-flag for et specifikt program. F.eks., hvis du ikke vil have java-understøttelse i PHP:
Kode oversigt 2.4: /etc/portage/package.use eksempel nr.2 |
dev-php/php -java |
Erklæringer af midlertidige USE-flag
Nogen gange vil du ønske at tilføje en specifik USE-indstilling kun én gang. I stedet for at redigere /etc/make.conf to gange (for at lave og fjerne USE-ændringer) kan du bare erklære USE-variabelen, som en miljø-variabel. Huske at, når du gen-emerger eller opdaterer dette program (enten specifik eller som en del af en systemopdatering), vil dine ændringer forsvinde!
Som et eksempel, vil vi midlertidigt fjerne java fra USE-opsætningen, når vi installerer mozilla.
Kode oversigt 2.5: Brug af USE, som en miljøvariabel |
# USE="-java" emerge mozilla
|
Efter at et antal pakker er installeret, kan yderligere USE-flag blive automatisk aktiveret for dig, hvis du ikke selv deaktiverer dem. For at se listen af pakker, som igangsætter automatiske USE-flag, tjek /etc/make.profile/use.defaults- og use.defaults-filerne i de øvre profiler.
Kode oversigt 2.6: Et udsnit af /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 |
Selvfølgelig er der en vis rangorden på hvilken indstilling, der har prioritet over USE-opsætning. Du vil ikke erklære USE="-java", kun for at se om at java stadigvæk er brugt i forhold til en indstilling, som har en højere priotitet. Rangordenen for USE-opsætningen er, opstilt efter prioritet (første har laveste prioritet):
For at se den færdige USE-opsætning, som set af Portage, kør emerge --info. Dette vil give dig en liste over alle relevante variabler (inklusiv USE-variabler) med indholdet brugt af Portage.
Kode oversigt 2.7: At køre emerge --info |
# emerge --info
|
Tilpasse hele dit system ved brug af nye USE-flag
Hvis du har ændret dine USE-flag og ønsker at hele dit system skal bruge disse nye flag, brug emerge --newuse valgmulighed:
Kode oversigt 2.8: Genbygning af hele systemet |
# emerge --update --deep --newuse world
|
Dernæst, kør Portages depclean for at fjerne betingede afhængigheder som er blevet emerged på dit "gamle" system, men som er blevet forældet ved brug af de nye USE-flag.
Advarsel: Kørsel af emerge --depclean er en farlig opgave og bør håndteres med forsigtighed. Dobbelt-tjek den leverede liste af "forældede" pakker for at sørge for at den ikke fjerner pakker, som du behøver. I det følgende eksempel, tilføjer vi -p-kontakten for at have depclean til at kun vise pakkerne, uden at fjerne dem. |
Kode oversigt 2.9: Fjernelse af forældede pakker |
# emerge -p --depclean
|
Når depclean er færdig, kør revdep-rebuild for genbygge de programmer, som er dynamisk linket til delte objekter, leveret af mulige fjernede pakker. revdep-rebuild er en del af gentoolkit-pakken; glem ikke at emerge den først.
Kode oversigt 2.10: Kørsel af revdep-rebuild |
# revdep-rebuild
|
Når det hele er udført, bruger dit system de nye USE-flag indstillinger.
2.c. Pakke-specifikke USE-flag
Lad os tage eksemplet fra mozilla: hvilke USE-flag lytter den til? For at finde ud af dette, bruger vi emerge med --pretend og --verbose valgmulighederne:
Kode oversigt 3.1: Se brugte USE-flag |
# emerge --pretend --verbose mozilla
These are the packages that I would merge, in order:
Calculating dependencies ...done!
[ebuild N ] net-www/mozilla-1.5-r1 +java +crypt -ipv6 -gtk2 +ssl +ldap
+gnome -debug +mozcalendar -mozaccess -mozxmlterm -moznoirc -moznomail
-moznocompose -moznoxft
|
emerge er ikke det eneste værktøj til dette job. I virkeligheden har vi et værktøj tilegnet til pakke-informationer, kaldet equery, som er placeret i gentoolkit-pakken. Først, installer gentoolkit:
Kode oversigt 3.2: Installation af gentoolkit |
# emerge gentoolkit
|
Kør nu equery med uses parameteren for at se USE-flag af en vis pakke. F.eks. gnumeric-pakken:
Kode oversigt 3.3: Brug af equery for at se brugte USE-flag |
# equery uses gnumeric [ Colour Code : set unset ] [ Legend : (U) Col 1 - Current USE flags ] [ : (I) Col 2 - Installed With USE flags ] U I [ Found these USE variables in : app-office/gnumeric-1.2.0 ] - - libgda : Adds GNU Data Access (CORBA wrapper) support for gnumeric - - gnomedb : unknown + + python : Adds support/bindings for the Python language + + bonobo : Adds support for gnome-base/bonobo (Gnome CORBA interfaces) |
Portage har yderligere egenskaber, som gør din Gentoo-oplevelse endnu bedre. Mange af disse egenskaber kræver specifikke softwareværktøjer, som forbedrer ydelse, stabilitet, sikkerhed ...
For at aktivere eller deaktivere specifikke Portage-egenskaber, skal du redigere /etc/make.confs FEATURES-variabel, som indeholder de forskellige feature-nøgleord, separeret med tomme pladser. I flere tilfælde skal du også installere yderligere værktøjer, som denne egenskab afhænger af.
Ikke alle egenskaber, som Portage understøtter er vist her. For en fuld oversigt, læs da make.conf man-side:
Kode oversigt 1.1: Læsning af make.conf man-side |
$ man make.conf
|
For at finde ud af dine FEATURES standard-indstillinger, kør emerge --info og søg efter FEATURES-variablen eller greb den ud:
Kode oversigt 1.2: Finding af FEATURES som allerede er indstillet |
$ emerge --info | grep FEATURES
|
distcc er et program, der distribuerer kompilering over flere, ikke nødvendigvis identiske, maskiner på et netværk. distcc-klienten sender alle nødvendige informationer til de tilgængelige distcc-servere (som kører distccd), så de kan kompilere dele af kildekode for klienten. Slutresultatet er en hurtigere kompileringstid.
Du kan finde flere uddybbende informationer om distcc (og informationer om hvordan man får det til at virke med Gentoo) i vores Gentoo Distcc Dokumentation.
Distcc kommer med en grafisk overvåger til at overvåge de opgaver, som din computer sender afsted til kompileringen. Hvis du bruger Gnome, så indsæt 'gnome' i dine USE-flag. Hvis du imidlertid ikke bruger Gnome og stadigvæk vil have overvågeren, så skal du indsætte 'gtk' i dine USE-flag.
Kode oversigt 2.1: Installation af distcc |
# emerge distcc
|
Aktivering af Portage-understøttelse
Tilføj distcc til din FEATURES-variable inde i /etc/make.conf. Derefter, rediger MAKEOPTS-variablen til dit behov. En kendt guideline er at indsætte "-jX" med X som det antal CPUer som kører distccd (inklusiv den nuværende vært) plus en, men du vil måske have bedre resultater med andre numre.
Kør nu distcc-config og gå til listen over distcc-servere der er til rådighed. For et simpelt eksempel, forventer vi at de tilrådige distcc servere er 192.168.1.102 (nuværende vært), 192.168.1.103 og 192.168.1.104 (to "fjerne" værter):
Kode oversigt 2.2: Indstilling af distcc for bruge tre tilrådige distcc-servere |
# distcc-config --set-hosts "192.168.1.102 192.168.1.103 192.168.1.104"
|
Selvfølgelig, glem ikke også at køre distccd-daemonen (baggrundsprocessen):
Kode oversigt 2.3: Start af distcc-daemon |
# rc-update add distccd default # /etc/init.d/distccd start |
ccache er en hurtig opbevarelse af midlertidige samlinger. Når du samler et program, vil den 'cache' mellemresultater, så når du igen gensamler det samme program, vil samlingstiden blive reduceret meget. I normale samlinger kan det resultere op fra 5 til 10 gange hurtigere samlingstid.
Hvis du er interesseret i hvordan ccache fungerer, besøg venligst ccache hjemmeside.
For at installere ccache, kør emerge ccache:
Kode oversigt 3.1: Installation af ccache |
# emerge ccache
|
Aktivering af Portage-understøttelse
Åben /etc/make.conf og tilføj ccache til FEATURES-variabelen. Derefter, tilføj en ny variabel kaldet CCACHE_SIZE og sæt den til "2G":
Kode oversigt 3.2: Redigering af CCACHE_SIZE i /etc/make.conf |
CCACHE_SIZE="2G" |
For at tjekke ccache funktioner, spørg ccache for at give dig dens statistikker:
Kode oversigt 3.3: Se ccache-statistikker |
# ccache -s
|
Brug af ccache til ikke-Portage C-samling
Hvis du vil bruge ccache til ikke-Portage samlinger, tilføj /usr/lib/ccache/bin til begyndelsen af din PATH-variabel (før /usr/bin). Dette blive gjort ved at redigere /etc/profile:
Kode oversigt 3.4: Redigering af /etc/profile |
PATH="/usr/lib/ccache/bin:${PATH}"
|
3.d. Binære pakke understøttelse
Oprettelse af Præsamlede pakker
Portage understøtter installationen af præsamlede pakker. Selvom Gentoo ikke leverer præsamlede pakker af sig selv (udover GRP-snapshots) kan Portage være fuld opmærksom på præsamlede pakker.
For at oprette præsamlede pakker, kan du bruge quickpkg hvis pakken allerede er installeret på dit system, eller emerge med --buildpkg eller --buildpkgonly valgmulighederne.
Hvis du vil have Portage til at oprette præsamlede pakker for enhver pakke du installerer, tilføj buildpkg til FEATURES-variablen.
Mere udvidet understøttelse for at oprette præsamlede pakkesæt, kan gøres med catalyst. For flere informationer om catalyst, læs venligst Catalyst Reference Manual (engelsk) og Catalyst Howto (også engelsk).
Installation af præsamlede pakker
Selvom Gentoo ikke levere en, kan du oprette en central vært, hvor du gemmer dine præsamlede pakker. Hvis du vil bruge denne vært, skal du gøre Portage opmærksom på den ved at bruge PORTAGE_BINHOST-variablen, som peger på denne. F.eks. hvis de præsamlede pakker er på ftp://buildhost/gentoo:
Kode oversigt 4.1: Opsætning af PORTAGE_BINHOST i /etc/make.conf |
PORTAGE_BINHOST="ftp://buildhost/gentoo" |
Når du vil installere en præsamlet pakke, tilføj --getbinpkg valgmuligheden til emerge-kommandoen sammen med --usepkg valgmuligheden. Den førstnævnte fortæller emerge at hente de præsamlede pakker fra den tidligere nævnte vært, imens den sidstnævnte spørger emerge om at prøve at installere den præsamlede pakke først, før den henter kildekoderne og samler den.
F.eks. for at installere gnumeric med en præsamlet pakke:
Kode oversigt 4.2: Installation af gnumeric præsamlede pakke |
# emerge --usepkg --getbinpkg gnumeric
|
Flere informationer om emerges præsamlede pakkemuligheder kan blive fundet i emerges man-sider:
Kode oversigt 4.3: Læsning af emerge man-sider |
# man emerge
|
Når du starter dit system, vil du ligge mærke til en del tekst, som flyder forbi. Hvis du virkelig ligger mærke til det, vil nu bemærke at denne tekst er den samme hver gang du genstarter dit system. Sekvensen af alle disse aktiviteter, er kaldet opstartsekvensen og er (mere eller mindre) statisk defineret.
Først vil din boot-loader hente kerne-billedfilen, som du har defineret i boot-loader opsætningen ind i hukommelsen efter den fortæller processoren til at køre kernen. Når kernen er hentet og kører, vil den initialisere alle kerne-specifikke strukturer og opgaver, og starte init-processen.
Denne proces sørger så for, at alle filsystemer (defineret i /etc/fstab) er mountet og klar til at blive brugt. Så igangsætter den flere scripts, placeret i /etc/init.d, som vil starte de tjenester du behøver, for at have et succesfuldt opstartet system.
Til sidst, når alle scripts er startet, aktiverer init terminalerne (i de fleste tilfælde er det kun de virtuelle konsoler, som er gemt bag ved Alt-F1, Alt-F2 osv.) vedhæftet en speciel proces, kaldet agetty til den. Denne proces vil så sørge for at du kan logge ind igennem disse terminaler ved at køre login.
init starter ikke kun scripts i /etc/init.d tilfældigt. Den kører endda ikke alle scripts i /etc/init.d, men kun dem den er blevet bedt om køre. Den beslutter hvilke scripts, der skal startes, ved at kigge i /etc/runlevels.
Først kører init alle scripts fra /etc/init.d, som har symbolske links inden i /etc/runlevels/boot. Sædvanligvis vil den starte scripts i alfabetisk orden, men nogle scripts har afhængighedsinformationer i dem, som fortæller systemet at et andet script skulle blive kørt i stedet for en anden én.
Når alle /etc/runlevels/boot refererede scripts er kørt, fortsætter init med at køre de scripts, som har et symbolsk link til dem i /etc/runlevels/default. Igen, den vil bruge den alfabetiske orden for at beslutte hvilket script, den skal køre først, undtagen hvis et script har afhængighedsinformationer i den, i hvilket tilfælde rækkefølgen er ændret til at levere en gyldig opstartsekvens.
Selvfølgelig vil init ikke beslutte alt selv. Den behøver en opsætningsfil, som specificerer, hvilke aktiviteter der skal udføres. Denne opsætningsfil er /etc/inittab.
Hvis du husker opstartssekvensen, som vi lige har beskrevet for dig, vil du huske at inits første aktivitet er at mounte alle filsystemer. Dette er defineret i den følgende linje fra /etc/inittab:
Kode oversigt 1.1: System-initialieringslinjen i /etc/inittab |
si::sysinit:/sbin/rc sysinit |
Denne linje fortæller init at den skal køre /sbin/rc sysinit for at initialisere systemet. /sbin/rc-scriptet tager sig af initialiseringen, så du kan sige at init ikke gør meget -- den delegerer opgaven om, for at initialise systemet til en anden proces.
For det andet, init starter alle scripts, som har symbolske links i /etc/runlevels/boot. Dette er defineret i den følgende linje:
Kode oversigt 1.2: System-initialiseringen, fortsat |
rc::bootwait:/sbin/rc boot |
Igen, udfører rc-scriptet de nødvendige opgaver. Noter at ting givet til rc (boot) er det samme, som underbiblioteket af /etc/runlevels, som er brugt.
Nu vil init tjekke dens opsætningsfil for at se hvad runlevel der bør køre. For at beslutte dette, læser den følgende linje fra /etc/inittab:
Kode oversigt 1.3: initdefault-linjen |
id:3:initdefault: |
I dette tilfælde (som hoveddelen af Gentoo-brugere vil bruge), er runlevel'ens id 3. Ved at bruge denne information, tjekker init hvad den skal køre for at starte runlevel 3:
Kode oversigt 1.4: runlevel definitioner |
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 |
Linjen, som definerer level 3, bruger rc-scriptet til at starte tjenesterne (nu med parameteren default). Noter at parameteren af rc er den samme, som underbiblioteket i /etc/runlevels.
Når rc er færdig, beslutter init hvilke virtuelle konsoler, der bør aktiveres og hvilke kommandoer den behøver at køre ved hver konsol:
Kode oversigt 1.5: Virtuelle konsolers definitioner |
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 |
Du har set at init bruger et nummeringsskema for at beslutte hvilke runlevel'er, den skal aktivere. En runlevel er en tilstand, i hvilket dit system kører og indeholder en samling af scripts (runlevel-scripts eller initscripts), som skal være kørt, når du indtræder eller forlader en runlevel.
I Gentoo er der syv runlevels defineret: tre interne runlevels, og fire brugerdefinerede runlevels. De interne runlevels er kaldet sysinit, shutdown og reboot og gør præcist som deres navne siger: initialisere systemet, slukker systemet og genstarter systemet.
De brugerdefinerede runlevels er disse med en ledsagende /etc/runlevels underbibliotek: boot, default, nonetwork og single. boot-runlevel starter alle system-nødvendige tjenester, som alle andre runlevels bruger. De resterende tre runlevels er forskellige i hvilke tjenester, de starter: default er brugt til dagsoperationer, nonetwork er brugt i det tilfælde, hvor ingen netværksaktivitet er krævet, og single er brugt til når du skal reparere systemet.
De scripts, som rc-processen starter, er kaldet init scripts. Hver script i /etc/init.d kan blive kørt med disse parametre start, stop, restart, pause, zap, status, ineed, iuse, needsme, usesme eller broken.
For at starte, stoppe eller genstarte en tjeneste (og alle afhængige tjenester), skal start, stop og restart bruges:
Kode oversigt 1.6: Start af Postfix |
# /etc/init.d/postfix start
|
Bemærk: Kun de tjenester, som kræver at den givne tjeneste er stoppet eller genstartet. De andre afhængige tjenester (dem som bruger tjenesten, men ikke kræver den) er ladt uberørt. |
Hvis du vil stoppe en tjeneste, men ikke tjenester der afhænger af den, kan du bruge pause parameteren:
Kode oversigt 1.7: Stop af Postfix, men lad de afhængige tjenester blive kørende |
# /etc/init.d/postfix pause
|
Hvis du vil se hvilken status en tjeneste har (startet, stoppet, pause, ...), kan du bruge status parameteren:
Kode oversigt 1.8: Statusinformation for postfix |
# /etc/init.d/postfix status
|
Hvis statusinformationen fortæller dig, at tjenesten kører, men du ikke ved om den gør det, kan du tilbagestille statusinformationen til "stoppet" med zap-parameteren:
Kode oversigt 1.9: Tilbagestille statusinformation for postfix |
# /etc/init.d/postfix zap
|
For at spørge hvilke afhængigheder tjenesterne har, kan du bruge iuse eller ineed. Med ineed kan du se hvilke tjenester, som er virkelige nødvendige for den korrekte funktionsbestemte metode af en tjeneste. iuse på den anden side, viser at tjenester, som er brugt af tjenesten, men ikke nødvendigvis for den korrekte funktionalitet.
Kode oversigt 1.10: Kræve en liste af alle nødvendige tjenester, som Postfix afhænger |
# /etc/init.d/postfix ineed
|
Lige sådan kan du spørge hvilke tjenester kræver tjenesten (needsme) eller den kan bruge (usesme):
Kode oversigt 1.11: Kræve en liste af alle tjenester, som kræver Postfix |
# /etc/init.d/postfix needsme
|
Til sidst, kan du spørge hvilke afhængigheder, som tjenesten kræver, men som mangler:
Kode oversigt 1.12: Kræve en liste over manglende afhængigheder for Postfix |
# /etc/init.d/postfix broken
|
Gentoos initsystem bruger et afhængighedstræ, som beslutter hvilke tjenester, som behøver at blive startet først. Da dette er en kedelig opgave, som vi ikke vil have at vores brugere skal gøre manuelt, har vi lavet værktøjer, som gør det lettere for administrationen af runlevels og init-scripts.
Med rc-update kan du tilføje og fjerne init-scripts til en runlevel. rc-update-værktøjet vil så automatisk spørge for depscan.sh-scriptet for at genbygge afhængighedstræet.
Du har allerede tilføjet init-scripts til "default" runlevel igennem installation af Gentoo. På dette tidspunkt har du måske ikke haft en forståelse for hvad "default" er til for, men nu burde du. rc-update-scriptet kræver en anden parameter, som definerer aktiviteten: add (tilføj), del (slet) eller show (vis).
For at tilføje eller fjerne et init-script, skal du blot give rc-update add eller del parameteren, fulgt af init-scriptet og runlevel. F.eks.:
Kode oversigt 2.1: Fjernelse af Postfix fra default runlevel |
# rc-update del postfix default
|
rc-update show kommandoen vil vise de tilgængelige init-scripts og vise en liste fra hvilke runlevels, de vil køre:
Kode oversigt 2.2: Modtagelse af init-script informationer |
# rc-update show
|
Hvorfor er det nødvendigt at opsætte ekstra?
Init-scripts kan være pænt komplekse. Det er derfor ikke interessant at have brugere til at redigere direkte i init-scripts, da det kunne skabe flere fejl. Det er dog vigtigt at kunne opsætte sådan en tjeneste. F.eks. vil du ønske at give flere muligheder til tjenesten selv.
En anden grund er at have denne opsætning udenfor init-script, er at kunne opdatere init-scripts uden at skulle være bange for at dine opsætningsændringer bliver overskrevet.
Gentoo leverer en let metode for at opsætte sådan en tjeneste: hver init-script som kan blive opsat, har en fil i /etc/conf.d. F.eks. har apache2s initscript (kaldet /etc/init.d/apache2) en opsætningsfil, kaldet /etc/conf.d/apache2, hvilket indeholder de indstillinger, som du vil sætte til Apache 2 serveren, når den er startet:
Kode oversigt 3.1: Variabler defineret i /etc/conf.d/apache2 |
APACHE2_OPTS="-D PHP4" |
Sådan en opsætningsfil inderholder variabler og kun variabler (lige som /etc/make.conf), som gør det meget let at opsætte tjenester. Det tillader os at levere flere informationer omkring variablerne (som kommentarer).
Nej. At skrive et init-script er normalt ikke nødvendigt, idet Gentoo leverer klar-til-brug init-scripts til alle leverede tjenester. Dog, du har måske installeret en tjeneste, uden at bruge Portage, hvilket betyder at du i de fleste tilfælde skal oprette et init-script.
Brug ikke init-script leveret til tjenesten, hvis den ikke er eksklusivt skrevet til Gentoo: Gentoos init-scripts er ikke kompatibel med de init-scripts brugt af de andre distributioner!
Basislayoutet af en init-script er vist nedenfor.
Kode oversigt 4.1: Basislayout af en init-script |
#!/sbin/runscript
depend() {
(Afhængighedsinformation)
}
start() {
(Kommandoer nødvendige for at starte tjenesten)
}
stop() {
(Kommandoer nødvendige for at stoppe tjenesten)
}
restart() {
(Kommandoer nødvendige for at genstarte tjenesten)
}
|
Enhver init-script kræver start() funktionen til at blive defineret. Alle andre sektioner er valgbare.
Der er to afhængigheder, som du kan definere: use og need. Som vi har fortalt før, er need-afhængigheden mere strikt end use-afhængigheden. Ved at følge denne afhængighedstype, får du den tjeneste du behøver, eller den virtuelle-afhængighed.
En virtuel afhængighed er en afhængighed, som en tjeneste leverer, men den er ikke kun leveret af denne tjeneste. Dit init-script kan være afhængigt af en systemlogning, men der er mange systemloggere at vælge imellem (metalogd, syslog-ng, sysklogd, ...). Da du ikke kan mangle enhver af dem (intet normalt system har alle disse systemloggere installeret og kørende) vil sørge for at alle disse tjenester leverer en virtuel afhængighed.
Lad os tage et kig på afhængighedsinformationerne for postfix-tjenesten.
Kode oversigt 4.2: Afhængighedsinformationer for Postfix |
depend() {
need net
use logger dns
provide mta
}
|
Som du kan se, postfix-tjenesten
I nogle tilfælde, kræver du ikke en tjeneste, men ønsker at din tjeneste bliver startet før (eller efter) en anden tjeneste hvis den er tilgængelig på systemet (noter betingelsen - det er ikke en afhængighed længere) og kører i samme runlevel (noter betingelsen - kun tjenester i samme runlevel er involveret). Du kan sørge for denne information ved at bruge before- (før) eller after- (efter) indstillingerne.
Som et eksempel, vil vi se på indstillingerne til Portmap-tjenesten:
Kode oversigt 4.3: depend()-funktionen i Portmap-tjenesten |
depend() {
need net
before inetd
before xinetd
}
|
Du kan også bruge "*" til at fange alle tjenester i samme runlevel, dog er det ikke tilrådeligt.
Kode oversigt 4.4: Kørsel af init-script, som den første script i runlevel'en |
depend() {
before *
}
|
Lige efter depend()-funktionaliteten, behøver du også at definere start()-funktionen. Denne indeholder alle de kommandoer, som er nødvendige for at initialisere din tjeneste. Det er tilrådeligt at bruge ebegin og eend funktionerne for at informere brugeren om hvad der sker:
Kode oversigt 4.5: Eksempel start()-funktionen |
start() {
ebegin "Start af min tjeneste"
start-stop-daemon --start --quiet --exec /path/to/my_service
eend $?
}
|
Hvis du vil have flere eksempler af start()-funktionen, læs venligt kildekoden til de tilgængelige init-scripts i dit /etc/init.d-bibliotek. Som til start-stop-daemon, er der en udemærket man-side tilrådighed, hvis du behøver flere informationer:
Kode oversigt 4.6: man-side til start-stop-daemon |
# man start-stop-daemon
|
Andre funktioner, som du kan definere er: stop() og restart(). Du er ikke tvunget til at definere disse funktioner! Vores initsystem er intelligent nok til at udfylde disse funktioner selv, hvis du bruger start-stop-daemon.
Gentoos opstartsscript-syntaks er baseret på Bourne Again Shell (bash), så du kan frit bruge bash-kompatible konstruktioner inden i dine opstartsscripts.
Tilføje skræddersyede indstillinger
Hvis du vil have dit init-script til at understøtte flere indstillinger, end dem vi allerede har vist dig, bør du tilføje disse indstillinger i opts-variabelen, og oprette en funktion med samme navn som indstillingen. F.eks. for at understøtte en valgmulighed kaldet restartdelay:
Kode oversigt 4.7: Understøttelse af restartdelay-valgmuligheden |
opts="${opts} restartdelay"
restartdelay() {
stop
sleep 3 # Vent 3 sekunder før der startes igen
start
}
|
Tjenestens opsætningsvariabler
Du behøver ikke at gøre noget for at understøtte en opsætningsfil i /etc/conf.d: hvis dit init-script er startet, vil følgende filer automatisk blive til kilder (dvs. variablerne er tilgængeligt til brug):
Også, hvis dit init-script sørger for en virtuel afhængighed (som net), vil filen blive, associeret med den afhængighed (som /etc/conf.d/net), også blive til kilder.
4.e. Ændring af runlevel'ens adfærd
Hvem kan drage nytte af dette?
Mange bærbar-brugere kender situationen: når du er hjemme og skal starte net.eth0 og når du er på vejen vil du ikke starte net.eth0 (idet der ikke er noget netværk tilgængeligt). Med Gentoo kan du ændre runlevel-adfærd til din egen fordel.
F.eks. kan du oprette en anden "default" runlevel, som du kan starte og indeholder andre initscripts fastsat til det. Du kan så vælge ved opstart, hvilken "default" runlevel du vil bruge.
Først af alt, opret runlevel-mappen til din anden "default" runlevel. Som et eksempel opretter vi offline runlevel:
Kode oversigt 5.1: Oprettelse af runlevel-mappe |
# mkdir /etc/runlevels/offline
|
Tilføj de nødvendige initscripts til dine nyoprettede runlevels. F.eks. hvis du vil have en eksakt kopi af din nuværende default runlevel, men uden net.eth0:
Kode oversigt 5.2: Tilføjelse af nødvendige initscripts |
(Kopier alle services fra standard runlevel til offline runlevel) # ls /etc/runlevels/default # for service in *; do rc-update add $service offline; done (Fjern uønskede services fra offline runlevel) # rc-update del net.eth0 offline (Vise aktive services i offline runlevel) # rc-update show offline (Delvis udsnit af output) acpid | offline domainname | offline local | offline net.eth0 | |
Rediger nu din boot-loader opsætning og tilføj en ny post til offline runlevel'en. F.eks. i /boot/grub/grub.conf:
Kode oversigt 5.3: Tilføjelse af post til offline runlevel'en |
title Gentoo Linux Offline Usage
root (hd0,0)
kernel (hd0,0)/kernel-2.4.25 root=/dev/hda3 softlevel=offline
|
Voilà, nu er alt klart. Hvis du starter dit system op og vælger den nyoprettede post, vil offline runlevel'en blive brugt i stedet for default.
Brug af bootlevel er komplet i overenstemmelse med softlevel. Den eneste forskel her er at du definerer en anden "boot" runlevel i stedet for en anden "default" runlevel.
En miljø-variabel er et navngivent objekt, der inderholder informationer, som bliver benyttet af en eller flere applikationer. Mange brugere (specielt dem der er nye i Linux) finder det en smule mærkeligt eller uhåndterligt. Dette er dog en fejltagelse; ved at bruge miljø-variabler, kan man let skifte en indstilling for en eller flere applikationer.
Den følgende tabel viser en række af variabler, der benyttes af et Linux system og beskriver deres brug. Eksempelværdier er præsenteret efter tabellen.
| Variabel | Beskrivelse |
| PATH | Denne variabel indeholder en kolonsepareret liste over mapper, som dit system leder i efter eksekverbare filer. Hvis du indtaster et navn på en eksekverbar fil (som f.eks. ls, rc-update eller emerge), og denne fil ikke er placeret i en af de oplistede mapper, vil dit system ikke eksekvere den (medmindre du angiver den fulde sti som kommando, f.eks. /bin/ls). |
| ROOTPATH | Denne variabel har samme funktion som PATH, men denne bestemmer kun hvilke mapper, som skal tjekkes når root-brugeren indtaster en kommando. |
| LDPATH | Denne variabel indeholder en kolonsepareret liste over mapper, som den 'dynamiske linker' søger igennem, for at finde et bibliotek. |
| MANPATH | Denne variabel indeholder en kolonsepareret liste over mapper, som kommandoen man søger i, efter man-siderne. |
| INFODIR | Denne variabel indeholder en kolonsepareret liste over mapper, som kommandoen info søger i, efter info-siderne. |
| PAGER | Denne variabel indeholder stien til det program, der benyttes til at vise indholdet af en fil med (som f.eks. less eller more). |
| EDITOR | Denne variabel indeholder stien til det program, der benyttes til at ændre indholdet af filer med (som f.eks. nano eller vi). |
| KDEDIRS | Denne variabel indeholder en kolonsepareret liste over mapper, som indeholder KDE-specifikt materiale. |
| CLASSPATH | Denne variabel indeholder en kolonsepareret liste over mapper, som indeholder Java-klasser. |
| CONFIG_PROTECT | Denne variabel indeholder en mellemrums-adskilt liste over mapper, der skal beskyttes af Portage under opdateringer. |
| CONFIG_PROTECT_MASK | Denne variabel indeholder en mellemrums-adskilt liste over mapper, der ikke skal beskyttes af Portage under opdateringer. |
Nedenfor finder du et eksempel af en definition af alle disse variabler:
Kode oversigt 1.1: Eksempeldefinitioner |
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. Definition af variabler globalt
For at centralisere definitionerne af disse variable, introducerer Gentoo mappen /etc/env.d. I denne mappe finder du en række af filer, som 00basic, 05gcc etc., der indeholder variablerne som applikationernes filnavne antyder, har brug for.
Da du f.eks. installerede gcc, blev en fil kaldet 05gcc oprettet, af den ebuild, der indeholder definitionerne på de følgende variabler:
Kode oversigt 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" |
Andre distributioner vil fortælle dig, at du skal ændre eller tilføje sådanne miljø-variabeldefinitioner i /etc/profile eller andre steder. Gentoo gør på den anden side det let for dig (og for Portage), at vedligeholde og administrere miljø-variablerne uden at skulle lægge mærke til rækken af filer, der kan indeholde miljø-variabler.
Når f.eks. gcc bliver opdateret, bliver filen /etc/env.d/05gcc også opdateret, uden at kræve nogen som helst interaktion fra brugeren.
Dette er ikke kun til fordel for Portage, men også for dig som bruger. Fra tid til anden kan du blive spurgt, om du vil sætte en bestemt miljøvariabel for hele systemet. Som et eksempel tager vi variablen http_proxy. I stedet for at rode med /etc/profile, kan du nu oprette en fil (/etc/env.d/99local) og indtaste din(e) definition(er) i den:
Kode oversigt 2.2: /etc/env.d/99local |
http_proxy="proxy.server.com:8080" |
Ved at benytte samme fil til alle dine variabler, har du et hurtigt overblik over de variabler, du har defineret selv.
Flere filer i /etc/env.d definerer variablen PATH. Dette er ikke forkert; når du kører env-update, vil det tilføje de flere definitioner før den opdaterer miljø-variablerne, og gør det dermed nemmere for pakker (eller brugere) at tilføje deres egen opsætning af miljø-variablerne, uden at forstyrre de allerede eksisterende værdier.
Scriptet env-update vil tilføje værdierne i den alfabetiske rækkefølge af /etc/env.d filerne. Dette er årsagen til mange af filerne i /etc/env.d begynder med et nummer.
Kode oversigt 2.3: Opdateringsrækkefølge benyttet af env-update |
00basic 99kde-env 99local
+-------------+----------------+-------------+
PATH="/bin:/usr/bin:/usr/kde/3.2/bin:/usr/local/bin"
|
Sammenkædningen af variabler sker ikke altid, kun med de følgende variabler: KDEDIRS, PATH, CLASSPATH, LDPATH, MANPATH, INFODIR, INFOPATH, ROOTPATH, CONFIG_PROTECT, CONFIG_PROTECT_MASK, PRELINK_PATH og PRELINK_PATH_MASK. For alle andre variabler, er sidste nye defineret værdi (i alfabetisk orden af filer i /etc/env.d) brugt.
Når du kører env-update, vil scriptet automatisk oprette alle miljøvariablerne og placere dem i /etc/profile.env (som er brugt af /etc/profile). Det vil også trække informationen ud fra variablen LDPATH, og bruge den til at oprette /etc/ld.so.conf. Efter dette, vil det køre ldconfig for at genskabe filen /etc/ld.so.cache, der benyttes af den 'dynamiske linker'.
Hvis du vil se effekten af env-update straks efter du har kørt det, kør den følgende kommando for at opdatere dit miljø. Brugere, der selv har installeret Gentoo, vil sikkert huske dette fra installationsinstruktionerne:
Kode oversigt 2.4: Opdatering af miljøet |
# env-update && source /etc/profile
|
Bemærk: Ovenstående kommando opdaterer kun variabler i din nuværende terminal, nye konsoller og deres børn. Derfor, hvis du arbejder i X11, skal du enten indtaste source /etc/profile i hver ny terminal, du åbner eller genstarte X, så alle nye terminaler henter kilden fra de nye variabler. Hvis du bruger en loginhåndtering, gå root og indtast /etc/init.d/xdm restart. Hvis ikke, skal du logge ud og logge ind igen for at X kan spawne børn med de nye variabelværdier. |
5.c. Definering af variabler lokalt
Det er ikke altid, du vil definere dine miljø-variabler globalt. F.eks. har du måske lyst til at tilføje /home/min_bruger/bin til variablen PATH, men du vil ikke have, at alle andre brugere på dit system også skal have det i deres PATH. Hvis du vil definere en miljøvariabel lokalt, skal du bruge ~/.bashrc eller ~/.bash_profile:
Kode oversigt 3.1: Udvidelse af PATH til lokalt brug i ~/.bashrc |
PATH="${PATH}:/home/min_bruger/bin"
|
Når du logger ind igen, vil variablen PATH være opdateret.
Nogle gange er der behov for endnu strengere definitioner. Du vil måske gerne være i stand til at benytte binære filer fra en midlertidigt mappe, som du har oprettet, uden at bruge stien til de binære filer, eller ændre i ~/.bashrc til den korte tid, du har brug for den.
I sådant et tilfælde kan du blot definere variablen PATH i din nuværende session, ved at bruge kommandoen export. Så længe du ikke logger ud, vil variablen PATH bruge de midlertidige indstillinger.
Kode oversigt 3.2: Definering af en sessionsspecifik miljø-variabel |
# export PATH="${PATH}:/home/my_user/tmp/usr/bin"
|
Portage kommer med en standardopsætning gemt i /etc/make.globals. Når du kigger i den, vil du lægge mærke til at alt Portage-opsætning er håndteret igennem variabler. Hvilke variabler Portage lytter til og hvad de betyder, bliver beskrevet senere.
Siden mange opsætningsdirektiver er forskellige imellem arkitekturer, har Portage også standardopsætningsfiler som er en del af din profil. Din profil bliver peget på af /etc/make.profile symlinket; Portages opsætninger bliver sat i make.defaults filerne i din profil og alle parent profiler. Vi vil forklare mere omkring profiler og /etc/make.profile-folderen senere.
Hvis du planlægger at ændre en opsætningsvariabel, skal du ikke ændre /etc/make.globals eller make.defaults. I stedet for, brug /etc/make.conf, som har forrang over de andre tidligere nævnte filer. Du vil også finde en /etc/make.conf.example. Som navnet fortæller, er den ment som et eksempel - Portage læser ikke i denne fil.
Du kan også definere en Portage-opsætningsvariabel som en miljøvariabel, men vi anbefaler det ikke.
Profil-specifikke informationer
Vi har allerede mødt /etc/make.profile-folderen. Nå, men det er faktisk ikke en folder, men en symbolsk henvisning til en profil, der som standard er en inde fra /usr/portage/profiles. Du kan dog oprette dine egne profiler et andet sted og pege til dem. Profilen, som det symbolske link peger på, er den profil dit system tilhører.
En profil indeholder arkitektur-specifikke informationer til Portage, f.eks. en liste af pakker der passer til systemet i sammenhæng med en profil, en liste af pakker, som ikke virker (eller er maskeret) etc.
Når du ønsker at overskrive Portages egenskaber, i forhold til installationen af software, skal du redigere filer inde i /etc/portage. Du er virkelig anbefalet til at bruge filer inde i /etc/portage og virkelig afskrækket til at overskrive egenskaben igennem miljø-variabler!
Inde i /etc/portage kan du oprette følgende filer:
Flere informationer omkring /etc/portage-folderen og en fuldstændig liste af mulige filer du kan oprette, kan blive fundet i Portages man-sider:
Kode oversigt 1.1: Læsning af Portages man-sider |
$ man portage
|
Ændring af Portage-filer og placering af foldere
De tidligere nævnte opsætningsfiler kan ikke blive gemt et andet sted - Portage vil altid kigge efter disse opsætningsfiler i deres eksakte placering. Portage bruger dog mange andre steder til forskellige formål: bygge-folder, kildekode-lager, Portage-træets placering ...
Alle disse hensigter er velkendte placeringer, men kan ændres til din egen smag igennem /etc/make.conf. Resten af dette kapitel forklarer hvilke special-hensigt-placeringer, Portage bruger, og hvordan man ændrer deres placering på dit filsystem.
Dette dokument er dog ikke ment til at bruges som reference. Hvis du vil have 100% dækning, læs venligst Portages og make.confs man-sider:
Kode oversigt 1.2: Læsning af Portages og make.conf's man-sider |
$ man portage $ man make.conf |
Portage-træets standardplacering er /usr/portage. Dette er defineret ved PORTDIR-variablen. Når du gemmer Portage-træet et andet sted (ved at ændre denne variabel), så glem ikke at ændre /etc/make.profiles symbolske henvisning imens.
Hvis du ændrer PORTDIR-variablen, bør du også ændre følgende variabler, idet de ikke vil notere PORTDIRs ændring. Dette er pga. hvordan Portage håndterer variabler: PKGDIR, DISTDIR, RPMDIR.
Selvom Portage ikke bruger præ-byggede binære filer som standard, er der stor understøttelse for dem. Når du beder Portage om at arbejde med præ-bygget pakker, vil den kigge efter dem i /usr/portage/packages. Denne placering er defineret ved PKGDIR-variablen.
Programmernes kildekoder er gemt i /usr/portage/distfiles som standard. Denne placering er defineret af DISTDIR-variablen.
Selvom Portage ikke bruger RPM-filer, er det muligt at generere disse ved brug af ebuild-kommandoen (se Ebuild-programmet). Standard-placeringen, hvor Portage gemmer RPM-filer er /usr/portage/rpm og er defineret af RPMDIR-variablen.
Portage gemmer status på dit system (hvilke pakker der er installeret, hvilke filer der tilhører hvilken pakke osv.) i /var/db/pkg. Ændre ikke disse filer manuelt! Dette vil ødelægge Portages kendskab til dit system.
Portages midlertidige filer (med modifikationstid, virtuelle, afhængighedstræ informationer osv.) er gemt i /var/cache/edb. Denne placering er virkelig midlertidig: du kan rense den, hvis du ikke kører nogen portage-relaterede programmer på dette tidspunkt.
Portages midlertidige filer er gemt i /var/tmp som standard. Dette er defineret ved PORTAGE_TMPDIR-variablen.
Hvis du ændrer PORTAGE_TMPDIR-variablen, bør du også ændre de følgende variabler, idet de ikke vil notere PORTAGE_TMPDIR-ændringen. Dette er pga. hvordan Portage håndterer variablen: BUILD_PREFIX.
Portage opretter en specifik folder til bygning af hver pakke den emerger, i /var/tmp/portage. Denne placering er defineret af BUILD_PREFIX-variablen.
Som standard installerer Portage alle filer i det nuværende filsystem (/), men du kan ændre dette ved sætte ROOT-miljøvariablen. Dette er brugbart, når du vil skabe nye bygge-billedfiler.
Portage kan oprette logfiler for hver ebuild, men kun, når PORT_LOGDIR-variablen er sat til en placering, som kan skrives af Portage (portage-brugeren). Som standard er denne variabel ikke aktiveret.
Som noteret førhen, er Portage opsætbar igennem variabler, som du bør definere i /etc/make.conf. Læs venligst make.confs man-sider for flere og dybdegående informationer:
Kode oversigt 1.1: At læse make.confs man-sider |
$ man make.conf
|
2.b. Bygge-specifikke valgmuligheder
Opsætning og samlingsvalgmuligheder
Når Portage bygger programmer, flytter den indholdet af de følgende variabler til kompileren og opsætningsscriptet:
USE-variablen er også brugt igennem opsætningen og kompileringen, men er blevet forklaret i mange detaljer i de foregående kapitler.
Når Portage har emerget en nyere version af en specifik softwaretitel, vil den fjerne de udgåede filer fra gamle versioner på dit system. Portage giver brugeren en 5-sekunders udsættelse, før den afmerger den gamle version. Disse 5 sekunder er defineret af CLEAN_DELAY-variablen.
Portages beskyttede placeringer
Portage overskriver filer, som er leveret af nyere versioner af en softwaretitel, hvis filerne ikke er gemt i et beskyttet område. Disse beskyttede placeringer er defineret af CONFIG_PROTECT-variablen og er generelt opsætningsfilsplaceringer. Bibliotekslisten er mellemrums-afgrænset.
En fil, som ville blive skrevet i sådan en beskyttet placering er omdøbt og brugeren er advaret om en nyere eksisterende version af den givne opsætningsfil.
Du kan få mere at vide omkring den nuværende CONFIG_PROTECT-indstilling fra emerge --info outputtet:
Kode oversigt 3.1: Få CONFIG_PROTECT-indstillingen |
$ emerge --info | grep 'CONFIG_PROTECT='
|
Flere informationer omkring Portages opsætningsfilbeskyttelse er tilgængeligt igennem emerge:
Kode oversigt 3.2: Flere informationer omkring opsætningsfilbeskyttelse |
$ emerge --help config
|
For at 'afbeskytte' specifikke underfoldere af beskyttede placeringer kan du bruge CONFIG_PROTECT_MASK-variablen.
2.d. Valgmuligheder af hentning
Når de forespurgte informationer eller data ikke er tilgængelige på dit system, vil Portage hente det fra Internettet. Server-placeringerne til de forskellige informationer og data-kanaler er defineret af de følgende variabler:
En tredje indstilling involverer placeringen af rsync-serveren, som du kan bruge, når du opdaterer dit Portage-træ:
GENTOO_MIRRORS- og SYNC-variablerne kan blive indstillet automatisk igennem mirrorselect-programmet. Du skal først emerge mirrorselect før du kan bruge den. For flere informationer, se mirrorselects onlinehjælp:
Kode oversigt 4.1: Flere informationer om mirrorselect |
# mirrorselect --help
|
Hvis dit miljø kræver at du bruger en proxy-server, kan du bruge HTTP_PROXY-, FTP_PROXY- og RSYNC_PROXY-variablerne til at erklære en proxy-server.
Når Portage skal fange kildekoder, bruger den wget som standard. Du kan ændre dette igennem FETCHCOMMAND-variablen.
Portage har mulighed for at genoptage hentningen af delvist hentet kildekode. Den bruger wget som standard, men dette kan blive ændret igennem RESUMECOMMAND-variablen.
Vær sikker at dine FETCHCOMMAND og RESUMECOMMAND gemmer kildekoderne i den rigtige placering. Inde i variablerne bør du bruge \${URI} og \${DISTDIR} for at pege til henholdsvis kildekodernes placering og distfiles-placering.
Du kan også definere protokol-specifikke håndteringer med FETCHCOMMAND_HTTP, FETCHCOMMAND_FTP, RESUMECOMMAND_HTTP, RESUMECOMMAND_FTP osv.
Du kan ikke ændre rsync-kommandoen, som Portage bruger til at opdatere Portage-træet, men du kan indstille nogle variabler, der er relateret til rsync-kommandoen:
Du kan ændre din standard-gren med ACCEPT_KEYWORDS-variablen. Den er som standard sat til din arkitekturs stabile gren. Flere informationer omkring Gentoos grene kan blive fundet i næste kapitel.
Du kan aktivere specifikke egenskaber til Portage igennem FEATURES-variablen. Portages egenskaber blev diskuteret i tidligere kapitler, som f.eks. Portages egenskaber.
Med PORTAGE_NICENESS-variablen kan du forstørre eller formindske nice-værdien Portage kører med. PORTAGE_NICENESS-værdien er tilføjet til den nuværende nice-værdi.
For flere informationer omkring nice-værdier, se nices man-sider:
Kode oversigt 6.1: Flere informationer om nice |
$ man nice
|
NOCOLOR, som standard er sat til "false", definerer om Portage bør deaktivere brugen af farvet output.
ACCEPT_KEYWORDS-variablen definerer hvilken software-gren, som du bruger på dit system. Den er som standard sat til den stabile software-gren til din arkitektur, f.eks. x86.
Vi anbefaler at du kun bruger den stabile gren. Hvis du dog ikke har en stor interesse i stabilitet og du vil hjælpe Gentoo ved at sende fejlrapporter til http://bugs.gentoo.org, så kan du læse videre.
Hvis du vil bruge nyere software, kan du prøve at bruge test-grenen i stedet for. For at få Portage til at bruge test-grenen, tilføj en ~ foran din arkitektur.
Test-grenen er præcis, som den selv hedder - Test. Hvis en pakker er i test, betyder det at udviklerne mener at den er funktionel, men den er ikke blevet testet nok. Du kan dog være den første der finder en specifik fejl i pakken, hvor du bør indsende en fejlrapport for at udviklerne ved om det.
For f.eks. at vælge test-grenen til x86-arkitekturen, rediger /etc/make.conf og skriv:
Kode oversigt 1.1: Indstilling af ACCEPT_KEYWORDS-variabelen |
ACCEPT_KEYWORDS="~x86" |
Hvis du opdaterer dit system nu, vil du finde ud af at der er masser af pakker, som skal opdateres. Husk dog: når du har opdateret dit system til at bruge test-grenen, er der normalt ikke nogen let metode at gå tilbage til en stabil, officiel gren (selvfølgelig undtagen ved brug af backup).
3.b. Blanding af stabil og test-gren
Du kan altid få Portage til at tillade test-gren til specifikke pakker og stadig bruge den stabile gren til resten af systemet. For at gøre dette, tilføj pakke-kategori og -navn, som du vil bruge til test-grenen i /etc/portage/package.keywords. F.eks. for at bruge test-grenen til gnumeric:
Kode oversigt 2.1: /etc/portage/package.keywords indstilling til gnumeric, fuldstændig linie |
app-office/gnumeric ~x86 |
Hvis du ønsker at bruge en specifik software-version fra test-grenen, men du ikke ønsker at Portage bruger test-grenen til underliggende versioner, kan du tilføje versionen i package.keywords-filen. I dette tilfælde, skal du bruge =. Du kan også skrive en versionsmængde ved brug af <=, <, > eller >=.
I alle tilfælde, hvis du tilføjer versionsinformationer, skal du bruge sådan et tegn. Hvis du ikke bruger versionsinformationer, kan du ikke bruge sådan et tegn.
I det følgende eksempel, spørger vi Portage om at acceptere gnumeric-1.2.13:
Kode oversigt 2.2: Aktivering af en specifik gnumeric-version |
=app-office/gnumeric-1.2.13 ~x86 |
Gentoo-udviklere har ikke support på brugen af disse filer. Brug venligst forsigtighed, når du prøver at udnytte dette. Supportkrav relateret til package.unmask og/eller package.mask vil ikke blive besvaret. Du er blevet advaret.
Hvis en pakke er markeret som maskeret af Gentoo-udviklere, og du stadigvæk ønsker at bruge denne, selvom du kender meningen med denne, som skrevet i package.mask-filen (placeret i /usr/portage/profiles som standard), tilføj den eksakt samme linie i /etc/portage/package.unmask.
F.eks. hvis =net-mail/hotwayd-0.8 er markeret, kan du afmaskere den ved at tilføje den eksakte samme linie i package.unmask-filen:
Kode oversigt 3.1: /etc/portage/package.unmask |
=net-mail/hotwayd-0.8 |
Når du ikke ønsker at Portage tager en specifik pakke eller specifik version af en pakke i brug, kan du maskere den selv, ved at tilføje den tilsvarende linie i /etc/portage/package.mask.
Endnu et eksempel er hvis du ikke vil have at Portage installerer nyere kerne-kildekoder end gentoo-sources-2.6.8.1, kan du tilføje følgende linie til package.mask:
Kode oversigt 3.2: /etc/portage/package.mask eksempel |
>sys-kernel/gentoo-sources-2.6.8.1 |
etc-update er et værktøj som hjælper ved opdatering af ._cfg0000_<navn>-filer. Den leverer en interaktivt merge-opsætning og kan også auto-merge trivielle ændringer. ._cfg0000_<navn>-filer bliver generet af Portage når den vil gemme en fil i en folder beskyttet af CONFIG_PROTECT-variablen.
Kørsel af etc-update er pænt ligefrem:
Kode oversigt 1.1: Kørsel af etc-update |
# etc-update
|
Efter en merge stopper det nemme, du vil nu få vist en liste over beskyttede filer, som venter på en opdatering. I bunden er du hilst af følgende muligheder:
Kode oversigt 1.2: etc-update valgmuligheder |
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'):
|
Hvis du taster -1, vil etc-update afslutte uden at have udført nogen ændringer. Hvis du taster -3 eller -5, vil alle listede opsætningsfiler blive overskrevet af nyere versioner. Det er derfor meget vigtigt at først vælge de opsætningsfiler, som ikke skal opdateres automatisk. Det er simpelthen et spørgsmål om at taste det nummer placeret til venstre ved opsætningsfilen.
Som et eksempel, vælg opsætningsfilen /etc/pear.conf:
Kode oversigt 1.3: Opdatering af en specifik opsætningsfil |
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
|
Du kan nu se ændringerne imellem de to filer. Hvis du tror at den opdaterede opsætningsfil kan blive brugt uden problemer, tast 1. Hvis du mener at den opdaterede opsætningsfil ikke er nødvendig, eller ikke leverer noget nyt og brugbart, tast 2. Hvis du interaktivt vil opdatere din opsætningsfil, tast 3.
Der er ikke nogen grund til at fortsætte med at forklare den interaktive merge her. For helhedens skyld, vi vil vise en liste over de mulige kommandoer du kan bruge imens du interaktivt ordner de to filer. Du bliver hilst med to linier (den originale og det nye forslag) og en prompt, hvor du kan taste en af følgende kommandoer:
Kode oversigt 1.4: Kommandoer som er tilgængelige ved interaktiv merge |
ed: Rediger, så brug begge versioner, begge dekoreret med en header. eb: Rediger, så brug begge versioner. el: Rediger, så brug den venstre version. er: Rediger, så brug den højre version. e: Rediger den nye version. l: Brug den venstre version. r: Brug den højre version. s: I lille grad inkluder lignende linier. v: I stor grad inkluder lignende linier. q: Afslut. |
Når du afsluttet opdateringen af vigtige opsætningsfiler, kan du nu opdatere resten af opsætningsfilerne automatisk. etc-update vil afslutte, hvis den ikke finder flere opdaterbare opsætningsfiler.
Ved brug af dispatch-conf kan du merge opdateringer til dine opsætningsfiler, imens du holder øje med ændringerne. dispatch-conf gemmer forskellene imellem opsætningsfilerne, som patches eller ved brug af RCS-revisionssystemet.
Ligesom etc-update, kan du spørge om beholde opsætningsfiler som de er, bruge den nye opsætningsfiler, redigere den nuværende og merge ændringer interaktivt. Dog har dispatch-conf også nogle yderligere spændende egenskaber:
Vær sikker på at du redigerer /etc/dispatch-conf.conf først og opretter folderen refereret ved archive-dir-variablen.
For flere informationer, tjek dispatch-conf man-siderne ud:
Kode oversigt 2.1: Læsning af dispatch-conf man-sider |
$ man dispatch-conf
|
Med quickpkg kan du oprette arkiver af pakker, som allerede er merget på dit system. Disse arkiver kan blive brugt som præbyggede pakker. Kørsel af quickpkg er ligefrem: tilføj bare navnene på de pakker som du vil arkivere.
F.eks. for at arkivere curl, arts og procps:
Kode oversigt 3.1: Eksempel på brug af quickpkg |
# quickpkg curl arts procps
|
De præbyggede pakker vil blive gemt i /usr/portage/packages/All. Symbolske henvisninger peger på disse pakker, som er i /usr/portage/packages/<kategori>.
5.a. Brug af Portage-træets undersæt
Udelukkelse af pakker/kategorier
Du kan selektivt opdatere specifikke kategorier/pakker og ignorere de andre kategorier/pakker. Vi opnår dette ved at få rsync til at udelukke kategorier/pakker igennem emerge --sync-trinet.
Som standard vil rsync tjekke indholdet af /etc/portage/rsync_excludes (hvis den eksisterer), som indeholder de kategorier eller pakker, som du ikke ønsker at rsync opdaterer.
Noter dog at dette kan foranlede afhængighedsproblemer, idet nye tilladte pakker, kan afhænge af nye, men udelukkede pakker.
5.b. Tilføjelse af uofficielle Ebuilds
Definering af Portage Overlay Folderen
Du kan få Portage til at bruge ebuilds, som ikke officielt er tilgængelig igennem Portage-træet. Opret en ny folder (f.eks. /usr/local/portage), hvor du gemmer tredje-parts ebuilds. Brug samme folder-struktur, som i det officielle Portage-træ!
Så definer PORTDIR_OVERLAY i /etc/make.conf og få den til at pege på den sidstenævnte folder. Når du nu bruger Portage, vil den også tage disse ebuilds i brug, uden at fjerne/overskrive disse ebuilds næste gang, du kører emerge --sync.
5.c. Ikke-Portage håndteret software
Brug af Portage med selv-håndteret software
I nogle tilfælde vil du ønske at opsætte, installere og håndtere software selv, uden at have Portage til at automatisk lave processen for dig, selv endda når Portage kan levere disse softwaretitler. Kendte tilfælde er kerne-kildekoder og nvidia-drivere. Du kan opsætte Portage, så den ved at en specifik pakke er installeret manuelt på dit system. Denne proces er kaldet injecting og understøttet af Portage igennem /etc/portage/profile/package.provided-filen.
F.eks. hvis du vil infomere Portage om vanilla-sources-2.6.11.6, som du har manuelt installeret, tilføj den følgende linie til /etc/portage/profile/package.provided:
Kode oversigt 3.1: package.provided eksempel-linie |
sys-kernel/vanilla-sources-2.6.11.6 |
ebuild-programmet er en low-level grænseflade til Portage systemet. Ved brug af dette program, kan du udføre specifikke handlinger til en given ebuild. F.eks. kan du udføre de individuelle merge-trin selv.
Brugen af ebuild er mere til udviklingsopgaver; flere informationer omkring ebuild kan derfor findes i Udviklernes håndbog (på engelsk). Dog, vil vi forklare hvilke instanser af en ebuild, der bliver påkaldt af Portage igennem emerge-processen for en specifik softwaretitel og hvordan man påkalder de føropsætningstrin, som nogle ebuilds tillader dig at udføre.
6.b. Manuel installation af software
Når du påkalder en ebuild til en given ebuild-fil, vil den verificere om checksummen af alle involverede filer er lig med dem der er givet i den medfølgende Manifest eller files/digest-<navn>-<version>-fil. Dette sker efter at kilderne er hentet.
For at hente kilderne ved brug af ebuild, kør da:
Kode oversigt 2.1: At hente kildekode |
# ebuild sti/til/ebuild fetch
|
Hvis ebuildens md5sum ikke passer sammen med den, der er vist i Manifest-filen, eller en af de hentede kildekoder ikke passer med dem vist i files/digest-<pakke>-filen, vil du modtage en fejl lignende til dette:
Kode oversigt 2.2: Ebuild checksum-fejl |
!!! File is corrupt or incomplete. (Digests do not match) >>> our recorded digest: db20421ce35e8e54346e3ef19e60e4ee >>> your file's digest: f10392b7c0b2bbc463ad09642606a7d6 |
Den underliggende linie vil forklare den fejlbare fil.
Hvis du er sikker på, at de kildekoder du har fanget og ebuilden i sig selv er valid, kan du regenerere Manifest og digest-<package>-filen ved brug af ebuilds digest-funktionalitet:
Kode oversigt 2.3: Regenerering af Manifest og digest |
# ebuild sti/tíl/ebuild digest
|
For at pakke kildekode ud i /var/tmp/portage (eller en anden placering du har specificeret i /etc/make.conf), kør da ebuilds unpack-funktionalitet:
Kode oversigt 2.4: Udpakning af kildekoder |
# ebuild sti/til/ebuild unpack
|
Dette vil udføre ebuilds src_unpack() funktion (der som standard er en normal udpakning, hvis ingen src_unpack() funktion er defineret). Det er også i dette trin, at alle nødvendig patches er tilføjet.
Det næste trin i emerge-processen er at samle kildekoderne. ebuilds kompilerings-funktionalitet tager sig af dette trin ved at udføre src_compile() funktionen i ebuilden. Dette inkluderer også 'configure'-trin, hvis de tilhører titlen.
Kode oversigt 2.5: Samling af kildekoderne |
# ebuild sti/til/ebuild compile
|
Du bør redigere ebuilds src_compile() funktion, hvis du ønsker at ændre samlingsinstruktionerne. Dog kan du også snyde Portage til at tro at ebuild-programmet har udført samlingstrinnet. Kør alle nødvendige kommandoer selv, og opret en tom fil kaldet .compiled i 'working'-folderen:
Kode oversigt 2.6: At informere Portage om de færdiggjorte samlingsjobs |
# touch .compiled
|
Installation af filer i en midlertidig placering
I det næste trin vil Portage installere alle de nødvendige filer til en midlertidig placering. Denne folder vil indeholde alle filer, som skal emerges til det rigtige filsystem. Du kan gøre dette ved at køre ebuilds install-funktionalitet, som udfører ebuilds src_install() funktion:
Kode oversigt 2.7: Installation af filerne |
# ebuild sti/til/ebuild install
|
Emerge af filer til det direkte filsystem
Det sidste trin er at merge alle filerne til det direkte filsystem og registrere disse i Portages backend. ebuild kalder dette trin "qmerge" og involverer disse følgende trin:
Kør ebuilds qmerge-funktionalitet for at udføre disse trin:
Kode oversigt 2.8: Emerge af filer til det direkte filsystem |
# ebuild sti/til/ebuild qmerge
|
Rensning af den midlertidige folder
Endeligt kan du rense hele den midlertidige folder ved brug af ebuilds clean-funktionalitet:
Kode oversigt 2.9: Rensning af den midlertidige folder |
# ebuild sti/til/ebuild clean
|
6.c. Yderligere Ebuild-egenskaber
Kørsel af alle emerge-relaterede kommandoer
Ved brug af ebuilds merge-funktionalitet, kan du køre fetch, unpack, compile, install og qmerge-kommandoerne på én gang:
Kode oversigt 3.1: Installation af software |
# ebuild sti/til/ebuild merge
|
Udførelse af opsætningsaktiviteter
Nogle programmer har også instruktioner, som opsætter pakken yderligere på dit system. Disse instruktioner kan være interaktive og kan derfor ikke blive udført automatisk. For at køre disse opsætningstrin, som er placeret i ebuilds (valgmulige) config() funktion, brug ebuilds config-funktionalitet:
Kode oversigt 3.2: Opsætning af en package |
# ebuild sti/til/ebuild config
|
Du kan instruere Portage til at oprette en binær pakke af en ebuild eller endda en RPM-fil. Brug ebuilds package- eller rpm-funktionalitet for at oprette disse arkiver. Der er dog nogle få forskelle imellem disse to funktionaliteter:
Kode oversigt 3.3: Oprettelse af pakker |
(Til en Portage-kompatibel binær pakke) # ebuild sti/til/ebuild package (Til en RPM-pakke) # ebuild sti/til/ebuild rpm |
Den oprettede RPM-fil indeholder dog ikke ebuilds afhængighedsinformationer.
Læs venligst de følgende man-sider for flere informationer omkring Portage, ebuild-programmet og ebuild-filer:
Kode oversigt 4.1: Man-sider |
$ man portage (Portage selv) $ man emerge (emerge-kommandoen) $ man ebuild (ebuild-kommandoen) $ man 5 ebuild (ebuild filsyntaks) |
Du kan også finde flere udviklingsrelaterede informationer i Udviklerens håndbog (på engelsk).
Indholdet i dette dokument er autoriseret under en Creative Commons - Attribution / Share Alike licens.