Gentoo-håndbogen til HPPA
Indhold:
-
Installation af Gentoo
I denne del vil du lære at installere Gentoo på dit system.
-
Om Gentoo Linux installation
I denne del lærer du hvordan man installerer Gentoo på dit system.
-
Valg af det rigtige installationsmedie
Du kan installere Gentoo på mange måder. Dette kapitel fortæller hvordan man installerer
Gentoo ved brug af den minimale LiveCD, selvom den universelle er muligt.
-
Opsætning af dit netværk
Hvis du vil installere Gentoo ved brug af Internet, vil du få brug for at sætte netværk
op.
-
Forberedelse af harddiske
For at kunne installere Gentoo, skal du lave de nødvendige partitioner.
Dette kapitel beskriver, hvordan man partitionerer en harddisk til fremtidig brug.
-
Installation af Gentoo installationsfiler
Gentoos installationsfiler virker igennem såkaldte stage-filer. I dette kapitel beskriver vi,
hvordan du udpakker en stage-fil og sætter Portage op.
-
Installation af Gentoo basissystem
Uafhængigt af hvilken "stage" du vælger, vil det eventuelt resultere i, at du vil
have et basalt Gentoo system til rådighed. Dette kapitel beskriver hvordan man
når til det stadie.
-
Opsætning af kernen
Linux kernen er grundlaget for enhver distribution. Dette kapitel
forklarer hvordan du sætter din kerne op.
-
Opsætning af dit system
Du kommer til at redigere nogle vigtige opsætningsfiler. I dette kapitel
vil du modtage en oversigt over disse filer og en forklaring på hvordan man
fortsætter.
-
Installation af nødvendige systemværktøjer
Som forklaret før, handler Gentoo om valg. I dette kapitel vil vi hjælpe dig med at vælge og at installere nogle vigtige værktøjer.
-
Opsætning af boot-loader
I dette kapitel vil vi beskrive PALO boot-loaderen og trinvis hjælpe dig igennem processen for at sætte denne boot-loader op til dine
behov.
-
Afslutning af din Gentoo installation
Du er snart færdig. Vi vil lave én (eller flere) brugere til dit
system.
-
Hvad kan jeg gøre efter dette?
Nu har du et Gentoo system, men hvad skal du nu gøre?
-
Arbejde med Gentoo
Lær hvordan du skal arbejde med Gentoo: installation af software, ændringer af variabler,
ændringer af Portages adfærd osv.
-
En Introduktion til Portage
Dette kapitel forklarer de "enkle" skridt en bruger i hvertfald skal
kende til for at vedligeholde software på hans system.
-
USE-flag
USE-flag er et meget vigtigt aspekt af Gentoo. I dette kapitel lærer du at arbejde
med USE-flag og forstå hvordan USE-flag arbejder sammen med dit system.
-
Portages egenskaber
Opdag de egenskaber Portage har, såsom understøttelse for distribueret
kompilering, ccache og mere.
-
Startscripts
Gentoo bruger et specielt startscript-format, som, inklusive andre egenskaber, tillader
afhængighedsdrevet beslutninger og virtuelle startscripter. Dette kapitel forklarer alle
disse aspekter og forklarer hvordan man arbejder med disse scripter.
-
Miljø-variabler
Med Gentoo kan du med lethed håndtere miljø-variabler til dit system.
Dette kapitel forklarer hvordan du kan gøre dette, og også en forklaring af de
mest brugte variabler.
-
At arbejde med Portage
"At arbejde med Portage" giver en dybdegående dækning af Portage, Gentoos
software administrerings værktøj.
-
Filer og biblioteker
Når du vil kende Portage dybdegående, så får du brug for at vide hvor
den gemmer sine filer og data.
-
Opsætning gennem variabler
Portage er fuldstændig konfigurerbar gennem forskellige variable
som du kan definere i opsætningsfiler eller som miljøvariable.
-
At blande software grene
Gentoo tilbyder adskilte software grene, afhængige af stabilitet og
understøttelse for arkitekturer. "At blande software grene" informerer
dig om hvordan disse grene kan sættes op og hvordan du kan selv kan
underkende disse adskillelser.
-
Flere Portage værktøjer
Portage kommer med nogle ekstra værktøjer der måske kan gøre din
oplevelse af Gentoo endnu bedre. Læs videre for at opdage hvordan
du kan bruge dispatch-conf og andre værktøjer.
-
Afvigelse fra det officielle træ
"Afvigelse fra det officielle træ" giver dig nogle tips og tricks til
hvordan du kan bruge dit eget Portage træ, hvordan du bare synkroniserer
de kategorier du ønsker, presse pakker ind (inject) og mere.
-
Ebuild Applikationen
I "Ebuild Applikationen" bliver du informeret om hvilke skridt Portage
tager imens den installere software og hvordan du kan gøre dette selv
vha. ebuild applikationen.
A. Installation af Gentoo
1. Om Gentoo Linux installation
1.a. Introduktion
Velkommen
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.
-
Efter trin 1, er du i et brugbart miljø, klar til at installere Gentoo.
-
Efter trin 2 er din internetforbindelse klar til at installere Gentoo.
-
Efter trin 3 er dine harddisk(e) klar til at installere Gentoo på.
-
Efter trin 4 er dit installationsmiljø klargjort og du er klar til at chroot ind i det nye miljø.
-
Efter trin 5 er kerne-pakkerne, hvilket er de samme på alle Gentoo installationer, installeret.
-
Efter trin 6 er din Linux kerne kompileret.
-
Efter trin 7 har du skrevet de fleste af dit Gentoo systems opsætningsfiler.
-
Efter trin 8 er nødvendige systemværktøjer (som du kan vælge fra en pæn liste) installeret.
-
Efter trin 9 er din valgte bootloader installeret og opsat, og du er logget ind i din helt nye Gentoo installation.
-
Efter trin 10 er dit Gentoo Linux miljø klart til at blive udforsket.
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.
Hvad er mine valgmuligheder?
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.
Problemer?
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
:-)
2. Valg af det rigtige installationsmedie
2.a. Hardwarekrav
Introduktion
Før vi starter, viser vi en liste over de hardwarekrav, som du skal
opfylde for at installere Gentoo på din computer.
Hardwarekrav
En liste af understøttet hardware kan blive fundet på PA Teams hjemmeside.
Du kan finde flere informationer omkring din box på Parisc-Linux Hardware Database
| Hukommelse |
64 MB |
| Diskplads |
1,5 GB (udover swapplads) |
| Swapplads |
Mindst 256 MB |
2.b. Gentoo Linux Installationsmetoderne
Introduktion
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ø.
-
En stage1-fil indeholder ikke andet end en kompiler, Portage (Gentoos softwarehåndteringssystem)
et par pakker, som kompileren eller Portage afhænger af.
-
En stage2-fil indeholder en såkaldt bootstrappet system, et minimalt miljø, fra
en kan starte med at bygge alle de andre nødvendige programmer, som færdiggører
Gentoo-miljøet.
-
En stage3-fil indeholder en præ-bygget minimalt system, som er næsten helt klart.
Den mangler kun nogle få programmer, som du, Gentoo-brugeren, behøver at vælge
imellem og installere dem.
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.
Stage1-metoden
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
|
Stage2-metoden
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
|
Stage3-metoden
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 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 LiveCDene
Introduktion
Gentoo LiveCDene er en startbare CD, 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 LiveCDene tillader dig at starte, opsætte netværk, forberede dine partitioner samt
starte med at installere Gentoo fra Internet. Vi leverer i øjeblikket to LiveCDer, 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.
De to LiveCDer, som vi leverer på nuværende tidspunkt er:
-
Gentoos minimale LiveCD, en lille, ingen-pjat, startbar CD, med det ene
formål at starte systemet, forberede netværk og fortsætte med installationen af Gentoo.
-
Gentoos universelle LiveCD, en startbar CD med de samme muligheder som den
minimale LiveCD. Udover det, indeholder den en stage1- og flere forskellige stage3-tarballs
(optimeret til individuelle underarkitekturer).
Hvis du har fundet ud af hvilken LiveCD du ønsker, har vi nedskrevet de generelle
fordele og ulemper for hver LiveCD.
Gentoos minimale LiveCD
Den minimale LiveCD er kaldet install-hppa-minimal-2004.3-r1.iso og optager
kun 65 MB diskplads. Du kan bruge denne LiveCD til at installere Gentoo, men, som altid,
kun med en fungerende Internet-forbindelse.
| Minimale LiveCD |
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.
|
Gentoos universelle LiveCD
Den universelle LiveCD er kaldet install-hppa-universal-2004.3-r1.iso og
optager hele disken på 650 MB. Du kan bruge denne LiveCD til at installere
Gentoo, og du kan endda bruge den til at installere Gentoo uden et fungerende
netværk, f.eks. når du vil bringe Gentoo til en anden PC end den du installerer
på nu :)
| Den universelle LiveCD |
Fordele og ulemper |
| + |
Indeholder alt hvad du får brug for. Du kan endda installere uden en
netværksforbindelse.
|
| - |
Kæmpe download |
Andre CDer
Du vil måske finde en såkaldt Package CD på en af vores filspejle. Denne CD er ikke
en LiveCD, men indeholder yderligere ressourcer, som kan udnyttes igennem en netværksfri
installation. Den indeholder præ-bygget pakker (de såkaldte GRP-sæt), som tillader dig med
lethed og hurtigt installere yderligere pakker (som f.eks. OpenOffice.org, KDE, GNOME osv.)
med det samme efter en netværksfri Gentoo installation.
2.d. Hent, brænd og start en Gentoo LiveCD
At Hente og brænde LiveCDerne
Du har valgt at bruge en Gentoo LiveCD. Vi vil først starte med at hente og brænde
den valgte LiveCD. Vi har forinden diskuteret de mulige LiveCDer, men hvor kan du
finde dem?
Du kan hente en af LiveCDerne (og, hvis du ønsker, også en pakke-cd) fra en af vores
filspejle. LiveCDerne er placeret i
experimental/hppa/2004.3/livecd-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-x86-minimal-2004.3.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.
-
Med cdrecord, kan du bare skrive cdrecord dev=/dev/hdc <hentet ISO-fil>
(udskift /dev/hdc med dit CD-RW-drevs enhedssti).
-
Med K3B, vælg Tools > CD > Burn Image. Derefter
kan du finde din ISO-fil indefra 'Image to Burn'-området. Til sidst klik på
Start.
Start af LiveCDen
Bemærk:
Hvis du har problemer med at opstarte LiveCDen eller andre medier, så læs venligst PA-RISC Linux Boot HOWTO.
|
Start dit HPPA-system. I opstartsprocessen vil du se en besked, som ser ud
som følgende:
Kode oversigt 4.3: HPPA-opstartsbesked |
Searching for Potential Boot Devices.
To terminate search, press and hold the ESCAPE key.
|
Når denne besked kommer frem, tryk og hold ESC-tasten nede, indtil at en valgmenu
dukker op. Dette vil tage et stykke tid, så vær tålmådig. Som standard, burde du komme til
BOOT_ADMIN-konsolen. Hvis du modtager en valgmenu, vælg Enter Boot
Administration mode for at komme ind til BOOT_ADMIN-konsolen. Du burde nu have en
'>' prompt.
Indsæt Gentoo LiveCDen i CDROM-drevet. Hvis du ikke kender SCSI ID'en til dit
CDROM-drev, vil din PA-RISC-station søge efter den, når du udfører
search-kommandoen.
Kode oversigt 4.4: Søge efter SCSI ID |
> search
Searching for Devices with Bootable Media.
To terminate search, please press and hold the ESCAPE key.
|
Din PA-RISC-station vil nu vise alle mulige opstartsmedier. Dette er et
eksempel, som resultat af denne kommando:
Kode oversigt 4.5: Mulige opstartsmedier |
Device Selection Device Path Device Type and Utilities
---------------------------------------------------------------------------
P0 scsi.5.0 TOSHIBA CD-ROM XM-3301TA
IPL
P1 scsi.2.0 COMPAQ ST32550N
IPL
P2 lan.0010a7-06d1b6.3.6 server
IPL
|
For at starte fra en CDROM, vil du få brug for den tilhørende enhedssti (Device Path). F.eks. hvis vi
vil opstarte fra TOSHIBA CDROM-drevet i ovenstående eksempel, vil vil få brug for at taste
følgende kommando:
Kode oversigt 4.6: Start fra en CDROM |
> boot scsi.5.0 ipl
Trying scsi.5.0
|
ipl-nøgleordet (Initial Program Loader) fortæller palo (PA-RISC boot
Loader) til at gå i interaktiv tilstand. Dette vil tillade dig at ændre, f.eks.
kerne-opstartsparametrene.
Når opstarten er færdig, vil palo starte i interaktiv tilstand:
Kode oversigt 4.7: PALO Interaktiv tilstand |
Boot path initialized.
Attempting to load IPL.
Hard booted.
palo ipl 1.2 root@b180l.da-kot Tue Apr 8 12:43:07 CEST 2003
Boot image contains:
0/vmlinux32 4028015 bytes @ 0x1520000
0/ramdisk 834748 bytes @ 0xf800
Current command line:
0/vmlinux initrd=initrd.gz TERM=linux console=tty root=/dev/ram0 init=/linuxrc
0: 0/vmlinux
1: initrd=initrd.gz
2: TERM=linux
3: console=tty
4: root=/dev/ram0
5: init=/linuxrc
Edit which field?
(or 'b' to boot with this command line)?
|
Disse parametre er brugbare til de fleste situationer.
Hvis du får brug for ekstra egenskaber, så skal du tilføje de passende nøgleord til slutningen af
kommandolinien. For at tilføje et nøgleord, rediger det sidste felt, tilføj et mellemrum og tast
dit nøgleord. Det eneste indbyggede nøgleord, på nuværende tidspunkt, er cdcache, som
fortæller LiveCDen til at hente sig selv ind i RAM, som tillader dig at unmounte CDen.
Kode oversigt 4.8: Tilføjelse af cdcache som opstartsindstilling |
(or 'b' to boot with this command line)? 5
init=/linuxrc cdcache
|
Da du nu har leget med dine kerne-opstartsparametre, start den.
Kode oversigt 4.9: Start af kerne |
(or 'b' to boot with this command line)? b
|
Du skulle nu have en root ("#") prompt på den nuværende konsole, og du kan også skifte
til andre konsoler ved at bruge Alt-F2, Alt-F3 og Alt-F4. Gå tilbage til din oprindelige
konsol, ved at trykke Alt-F1.
Fortsæt nu med Ekstra
Hardwareopsætning.
Valgfrit: Brugerkonti
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.10: Ændring af root kodeordet |
# passwd
Password:
Re-enter password:
|
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.11: Skabelse af en brugerkonto |
# useradd -m -G users jens
# passwd jens
New password:
Re-enter password:
|
Du kan ændre din brugers id fra root til den nyoprettede bruger ved brug af su:
Kode oversigt 4.12: Æ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.
Hvis du vil se vores dokumentation på CDen, kan du med det samme køre links2 og læse det:
Kode oversigt 4.13: Se dokumentationen på CDen |
# links2 /mnt/cdrom/docs/handbook/html/index.html
|
Dog, det er anbefalet at du bruger online-versionen af Gentoo-håndbogen, da den er mere opdateret end den der ligger på CDen. 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.14: Se dokumentationen online |
# links2 http://www.gentoo.org/doc/en/handbook/handbook-alpha.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.15: 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. Opsætning af dit netværk
3.a. Automatisk netværksfinding
Måske virker det bare?
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
|
Valgfri: Opsætning af proxyer
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 |
# export http_proxy="http://proxy.gentoo.org:8080"
# export ftp_proxy="ftp://proxy.gentoo.org:8080"
# 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
|
Test netværket
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.
Standard: Brug af net-setup
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.
Alternativ: Brug af RP-PPPoE
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.
Alternativ: Brug af PPTP
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.
3.c. Manuel netværksopsætning
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 |
# 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:
Brug af DHCP
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
# 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 |
# iwconfig eth0 essid GentooNode
# iwconfig eth0 key 1234123412341234abcd
# 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 |
Brug af ifconfig og route
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. Forberedelse af harddiske
4.a. Introduktion til blok-enheder
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
SCSI-harddisk på et Linux system, med navnet
/dev/sda.
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.
Partitioner og portioner
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
Hvor mange og hvor stort?
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 alene
optager omkring 500 MB, undtagen de forskellige kildekoder, som er gemt
inde i den.
Som du kan se, afhænger det meget af hvad du vil opnå. Separate
partitioner eller volumes har følgende fordele:
-
Du kan vælge det bedste ydelsesstærke filsystem til hver partition eller volume
-
Hele dit system bør ikke løbe tør for fri harddisk-plads, hvis et ødelagt værktøj bliver
ved med at skrive filer til en partition eller volume
-
Hvis nødvendigt, et filsystem-tjek er reduceret i tid, idet flere tjek kan blive
gjort parallelt (selvom denne fordel er større med flere harddiske
end med flere partitioner)
-
Sikkerhed kan blive forøget ved at mounte nogle partitioner eller volumes read-only (kun-læs),
nosuid (setuid bits er ignoreret), noexec (executable bits er ignoreret) osv.
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 til 15 partitioner på SCSI og SATA.
4.c. Brug af fdisk på HPPA for at partitionere din disk
Brug fdisk til at lave de partitioner du ønsker:
Kode oversigt 3.1: At partitionere disken |
# fdisk /dev/sda
|
HPPA-maskiner bruger PC-standard DOS-partitionstabeller. For at oprette en ny DOS-partitionstabel, tast da bare o kommandoen.
Kode oversigt 3.2: Oprettelse af DOS-partitionstabel |
# fdisk /dev/sda
Command (m for help): o
Building a new DOS disklabel.
|
PALO (HPPAs boot-loader) har brug for en speciel partition for at virke. Du bliver nødt til at lave en partition med minimum 16 MB i starten af din disk. Denne
partition skal være af typen f0 (Linux/PA-RISC boot).
Vigtigt:
Hvis du ignorer dette og fortsætter uden en speciel PALO partition, så
vil dit system holde op med at elske dig og ikke være i stand til at starte. Også, hvis din disk er større end 2Gb, så skal du også være sikker på at
boot partitionen er indenfor de første 2 GB af din disk. PALO er ikke i
stand til at læse en kerne efter grænsen på 2 GB.
|
Kode oversigt 3.3: Et simpelt standard partitionsskema |
# cat /etc/fstab
/dev/sda2 /boot ext3 noauto,noatime 1 1
/dev/sda3 none swap sw 0 0
/dev/sda4 / ext3 noatime 0 0
# fdisk /dev/sda
Command (m for help): p
Disk /dev/sda: 4294 MB, 4294816768 bytes
133 heads, 62 sectors/track, 1017 cylinders
Units = cylinders of 8246 * 512 = 4221952 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 8 32953 f0 Linux/PA-RISC boot
/dev/sda2 9 20 49476 83 Linux
/dev/sda3 21 70 206150 82 Linux swap
/dev/sda4 71 1017 3904481 83 Linux
|
Nu hvor dine partitioner er lavet, så kan du fortsætte med Oprettelse af filsystemer.
4.d. Oprettelse af filsystemer
Introduktion
Nu da dine partitioner er lavet, er det tid til at lave filsystemer på
dem. Hvis du er ligeglad med hvilket filsystem du vælger og er
tilfreds med hvad vi bruger som standard her i denne håndbog, så kan
du fortsætte med At anvende et filsystem på en
partition. Ellers kan du fortsætte for at lære mere om de
tilgængelige filsystemer...
Filsystemer?
Der er adskillige filsystemer til rådighed. Ext2, ext3, XFS og reiserfs er stabile til HPPA-arkitekturen, imens andre er meget eksperimentielle.
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 filsystem med metadata journaler, som kommer med et robust sæt af muligheder og er optimeret til skalerbarhed. Vi anbefaler kun at bruge dette filsystem til Linux systemer med high-end SCSI og/eller fiberkanal lager og en uafbrydbar strømforsyning. Fordi XFS aggressivt gemmer indkommende midlertidige data i hukommelsen, kan dårligt designede programmer (dem der ikke tager fornuftige forholdregler, når de skriver filer til disken og der er faktisk en del af dem) miste en hel del data, hvis systemet uventet går ned.
JFS er IBM's høj-ydelses filsystem med journal. Det er
fornyligt blevet klar til produktion og der har ikke være
tilstrækkelige optegnelser til at kommentere positivt eller negativt
omkring dets 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å boot partitionen (/dev/sda2 i vores
tilfælde) i ext2 og root partitionen (/dev/sda4 i vores
tilfælde) i ext3 (som i vores tilfælde), ville vi bruge:
Kode oversigt 4.1: At anvende et filsystem på en partition |
# mke2fs /dev/sda2
# mke2fs -j /dev/sda4
|
Lav nu filsystemerne på dine for nyligt skabte partitioner (eller
logiske enheder).
At aktivere swap-partitionen
mkswap er kommandoen der bruges til at initialisere swap partitioner:
Kode oversigt 4.2: At lave en swap signatur |
# mkswap /dev/sda3
|
For at aktivere swap-partitionen, brug swapon:
Kode oversigt 4.3: At aktivere swap-partitionen |
# swapon /dev/sda3
|
Lav og aktiver swap med de ovenstående kommandoer.
4.e. At mounte
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 mounte root og boot-partionerne:
Kode oversigt 5.1: At mounte partitioner |
# mount /dev/sda4 /mnt/gentoo
# mkdir /mnt/gentoo/boot
# mount /dev/sda2 /mnt/gentoo/boot
|
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.
|
Vi bliver også nødt til at mounte proc filsystemet (en virtuel grænseflade til kernen) på /proc. Men først skal vi placere vores filer på partitionerne.
Fortsæt med Installere Gentoo installationsfiler.
5. Installation af Gentoo installationsfiler
5.a. Installation af stage-tarball
At sætte Dato/Tid rigtigt
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
|
Gør dit valg
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
Hentning af stage-tarball
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
# 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
|
Udpakning af en stage tarball
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
Udpakning af stage-tarball
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.
5.d. Installere Portage
Udpakning af Portage-snapshot
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 |
# tar -xvjf /mnt/gentoo/portage-<date>.tar.bz2 -C /mnt/gentoo/usr
|
5.e. Opsætning af kompileringsparametre
Introduktion
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.
CHOST
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
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 |
-march=athlon-xp
|
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 |
CFLAGS="-march=athlon-xp -pipe -O2"
CXXFLAGS="${CFLAGS}"
|
MAKEOPTS
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"
|
Klar, parat, start!
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. Installation af Gentoo basissystem
6.a. At skifte rod-mappe (Chrooting)
Valgfrit: Valg af filspejle
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!
Kopiering af DNS-information
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 |
# cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf
|
Mount af proc-filsystemet
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
|
Skift til det nye miljø
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 :-)
Opdatering af Portage-træet
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
# 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.
Valg af den rigtige profil
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 |
# ln -snf /usr/portage/profiles/default-linux/x86/2005.1/2.4 /etc/make.profile
# ls -FGg /etc/make.profile/
total 12
-rw-r--r-- 1 939 Dec 10 14:06 packages
-rw-r--r-- 1 347 Dec 3 2004 parent
-rw-r--r-- 1 573 Dec 3 2004 virtuals
|
Til ppc, er der en del nye profiler leveret med 2005.1.
Kode oversigt 1.10: PPC-profiler |
# ln -snf /usr/portage/profiles/default-linux/ppc/2005.1/ppc /etc/make.profile
# ln -snf /usr/portage/profiles/default-linux/ppc/2005.1/ppc/G3 /etc/make.profile
# ln -snf /usr/portage/profiles/default-linux/ppc/2005.1/ppc/G3/Pegasos/ /etc/make.profile
# ln -snf /usr/portage/profiles/default-linux/ppc/2005.1/ppc/G4 /etc/make.profile
# 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 |
# ln -snf /usr/portage/profiles/default-linux/ppc/2005.1/ppc64/64bit-userland /etc/make.profile
# ln -snf /usr/portage/profiles/default-linux/ppc/2005.1/ppc64/32bit-userland /etc/make.profile
# ln -snf /usr/portage/profiles/default-linux/ppc/2005.1/ppc64/(userland)/970 /etc/make.profile
# ln -snf /usr/portage/profiles/default-linux/ppc/2005.1/ppc64/(userland)/970/pmac /etc/make.profile
# ln -snf /usr/portage/profiles/default-linux/ppc/2005.1/ppc64/(userland)/power3 /etc/make.profile
# ln -snf /usr/portage/profiles/default-linux/ppc/2005.1/ppc64/(userland)/power4 /etc/make.profile
# ln -snf /usr/portage/profiles/default-linux/ppc/2005.1/ppc64/(userland)/power5 /etc/make.profile
|
Opsætning af USE-variabler
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
|
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"
|
Valgfrit: GLIBC Locales
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.
-
Hvis du valgte stage1, så skal du følge begge trin i
dette kapitel (startende med Fra Stage1 til Stage2)
-
Hvis du valgte stage2 skal du kun springe det første
trin over og straks starte med det andet trin (Fra Stage2 til Stage3)
-
Hvis du valgte stage3 så kan du
springe begge trin over og fortsætte med Opsætning af kernen
6.c. Fra Stage1 til Stage2
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
|
Bootstrappe af systemet
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.
6.d. Fra Stage2 til Stage3
Introduktion
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?
Valgfrit: Hente kildekoder
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
|
Opbygning af systemet
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.
7. Opsætning af kernen
7.a. Tidszone
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
# ln -sf /usr/share/zoneinfo/GMT /etc/localtime
|
7.b. Installation af kildekoderne
Valg af kerne
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.
HPPA understøtter ikke 2.4-serien længere. Du skal bruge hppa-dev-sources.
Kode oversigt 2.1: Installation af kerne-kildekode |
# emerge hppa-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 Oct 13 11:04 /usr/src/linux -> linux-2.6.10_p1
|
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.10_p1 linux
|
Nu er det tid til at opsætte og kompilere din kernes kildekoder. Alle
arkitekturer kan bruge genkernel til dette, som vil bygge en omfattende
kerne, som også er brugt på LiveCDen. Vi forklarer dog den "manuelle"
opsætning først, idet det er den bedste metode til at optimere dit system.
Hvis du vil opsætte din kerne manuelt, forsæt nu med Standard: Manuel opsætning. Hvis du
du vil bruge genkernel, bør du læse Alternativ: Brug af genkernel i stedet for.
7.c. Standard: Manuel opsætning
Introduktion
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 og
Automatically mount at boot:
Kode oversigt 3.3: Valg af nødvendige filsystemer |
File systems --->
Pseudo Filesystems --->
[*] /proc file system support
[*] /dev file system support (OBSOLETE)
[*] Automatically mount at boot
[*] Virtual memory file system support (former shm fs)
<*> Reiserfs support
<*> Ext3 journalling file system support
<*> JFS filesystem support
<*> Second extended fs support
<*> XFS filesystem support
|
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:
Kode oversigt 3.4: Valg af PPPoE nødvendige drivere |
Device Drivers --->
Networking 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.
Bemærk:
Brugere af en 2.6 kerne vil finde nogle af de ovennævnte valgmuligheder under
Device Drivers.
|
Hvis du kræver det, glem ikke at inkludere understøttelse af dit netkort
i kernen.
Hvis du har en HIL-mus eller tastatur, glem ikke at kompilere understøttelse
til dem.
Kode oversigt 3.5: Activating HIL keyboard support |
Input device support --->
[*] Keyboards
[*] HP HIL keyboard support
|
Kode oversigt 3.6: Activating HIL mouse support |
[*] Mice
[*] HIL pointers (mice etc).
|
Inkluder også skærmdriver-understøttelse:
Kode oversigt 3.7: Understøttelse af skærmdriver |
Graphics support --->
[*] Support for frame buffer devices
[*] HP STI frame buffer device support
Console display driver support --->
[*] STI text console
[*] Framebuffer Console support
|
Når du er færdig med at opsætte kernen, fortsæt med Kompilering og installation.
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.8: Kompilering af kerne |
# make && make modules_install
|
Når kernen er færdig med at kompilere, kopier den da over til
/boot. I det næste eksempel forudsætter vi, at du har
opsat og kompileret hppa-sources-2.6.10_p1 (hvilket måske ikke
er den rigtige kerne til din arkitektur!):
Kode oversigt 3.9: Installation af kerne |
# cp vmlinux /boot/vmlinux
# cp System.map /boot/System.map-2.6.10
|
Det er også klogt at kopiere din kerneopsætningsfil til
/boot, bare for en sikkerheds skyld :)
Kode oversigt 3.10: Backup af din kerneopsætning |
# cp .config /boot/config-2.6.10
|
Hvis du er en MIPS-bruger og dit system ikke vil starte ELF-kerner, kompiler
kernen ved brug af make vmlinux.ecoff i stedet for make vmlinux.
Kerne-billedfilen vil blive gemt som arch/mips/boot/vmlinux.ecoff
i stedet for vmlinux.
Fortsæt nu med Installation af separate
kernemoduler.
7.d. Alternativ: Brug af genkernel
Hvis du læser denne sektion, så har du valgt at bruge vores genkernel
script til at opsætte din kerne for dig.
Nu da dit kerne-kildekodetræ er installeret, er det tid til at kompilere din
kerne ved at bruge vores genkernel script til at automatisk bygge en
kerne for dig. genkernel virker ved at opsætte en kerne, næsten
identisk med hvordan vores LiveCD-kerne er blevet opsat. Dette betyder, at når
du bruger genkernel til at bygge din kerne, vil dit system generelt
finde alt dit hardware ved opstart, ligesom din LiveCD gør. Fordi at genkernel
ikke kræver nogen manuel kerneopsætning, er den en ideel løsning for
de brugere, som ikke føler sig veltilpas med at kompilere deres egne kerner.
Lad os nu se hvordan vi bruger genkernel. Først skal du emerge
genkernel'ens ebuild:
Kode oversigt 4.1: Emerge genkernel |
# emerge genkernel
|
Kompiler nu din kerne-kildekoder ved at køre genkernel all.
Vær opmærksom på at,
når genkernel kompilerer en kerne, som understøtter det meste hardware,
kan kompileringen tage noget tid at færdiggøre!
Notér at hvis din boot-partition ikke bruger ext2- eller ext3- filsystem, skal du manuelt opsætte din kernel ved brug af genkernel --menuconfig all og tilføje understøttelse til dit filsystem i kernen (dvs. ikke som module).
Kode oversigt 4.2: Start af genkernel |
# genkernel all
GenKernel v3.0.1_beta10
* ARCH: x86
* KERNEL VER: 2.4.24
* kernel: configuring source
* kernel: running mrproper
* Kernel compiled successfully!
* Required Kernel Params:
* : root=/dev/ram0 init=/linuxrc real_root=/dev/$ROOT
* where $ROOT is the devicenode for your root partition as
* you should have specified in /etc/fstab
*
* You MUST tell your bootloader to use the generated initrd
*
* Recommended Kernel Params:
* : vga=0x317 splash=verbose
*
* Do NOT report kernel bugs (configs included) as genkernel bugs.
* Make sure you have the latest genkernel before reporting bugs
*
* For more info see /usr/share/genkernel/README
|
Når genkernel afslutter, vil en kerne, et fuld sæt af moduler og
initial root disk (initrd) være færdiggjort. Vi vil bruge kernen
og initrd, når vi opsætter en boot-loader senere i dette dokument. Skriv
navnene på kernen og initrd ned, da du vil få brug for dem, når du skriver til
boot-loaderens opsætningsfil. Initrd vil blive startet med det samme efter
at opstartsprocessen udfører automatisk-hardwarefinding (ligesom på LiveCDen)
før dit "rigtige" system starter op.
Kode oversigt 4.3: Tjekker den oprette kerne-billedfils navn og initrd |
# ls /boot/kernel* /boot/initrd*
|
Lad os nu udføre et trin mere, for at få vores system til at blive mere som
LiveCDen -- lad os emerge coldplug. Imens initrd automatisk finder
hardware, som der er brug for til at starte dit system, vil coldplug
automatisk finde alt andet.
For at emerge og aktivere coldplug, tast følgende:
Kode oversigt 4.4: Emerge og aktivering af coldplug |
# emerge coldplug
# rc-update add coldplug boot
|
Hvis du vil have at dit system reagerer på hotplug-aktiviter, vil du også få brug for
at installere og indstille hotplug:
Kode oversigt 4.5: Emerge og aktivering af hotplug |
# emerge hotplug
# rc-update add hotplug default
|
7.e. Installation af separate kernemoduler
Opsætning af moduler
Du bør opliste de moduler, som du vil have automatisk hentet, i /etc/modules.autoload.d/kernel-2.6 (eller 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 5.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.4 eller kernel-2.6 filen og skrive
modulnavnet i den.
Kode oversigt 5.2: At redigere /etc/modules.autoload.d/kernel-2.6 |
# nano -w /etc/modules.autoload.d/kernel-2.6
|
Kode oversigt 5.3: /etc/modules.autoload.d/kernel-2.6 |
3c59x
|
Fortsæt installationen med Opsætning af
dit system.
8. Opsætning af dit system
8.a. Informationer om filsystemet
Hvad er fstab?
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.).
Oprettelse af /etc/fstab
/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:
-
Det første felt beskriver partitionen (stien til enhedsfilen)
-
Andet felt viser mount-punktet hvor partitionen skal mountes
-
Tredje felt viser hvilket filsystem partitionen benytter
-
Det fjerde felt viser mount-indstilliger, der bliver brugt af
mount, når den vil mounte en partition. Da hvert filsystem har sine
egne mount-indstillinger, opfordres du til at læse manpagen mount
(man mount) for at få et fuldt overblik. Flere mount-indstillinger
er adskilt med komma.
-
Femte felt er brugt af dump til bestemme om en partion har brug for at
blive dumpet eller ej. Du kan normalt lade dette være 0 (nul).
-
Sjette felt er brugt af fsck til at bestemme rækkefølgen for
kontrol af filsystemer, hvis systemet ikke er blevet lukket ordentlig
ned. Filsystemet med roden bør være 1, mens resten bør være 2
(eller 0 hvis en kontrol af filsystemet ikke er nødvendig).
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.
8.b. Oplysninger om netværk
Værstnavn, domænenavn etc.
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
HOSTNAME="tux"
|
Herefter angiver vi domænenavn:
Kode oversigt 2.2: Angivelse af domænenavn |
# nano -w /etc/conf.d/domainname
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
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
|
Opsætning af dit netværk
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
|
8.c. Systeminformation
Root-kodeord
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
|
Systeminformation
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.
Opsætning af konsollen
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.
9. Installation af nødvendige systemværktøjer
9.a. Enhedshåndtering
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 |
# emerge --unmerge udev
# emerge devfsd
|
9.b. Systemslogning
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
|
9.c. Valgfrit: Cron-daemon
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
# crontab /etc/crontab
|
9.d. Valgfrit: Filregister
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
|
9.e. Filsystemsredskaber
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.
9.f. Netværksredskaber
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).
RAID-værktøj til IBM-hardware
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.
10. Opsætning af boot-loader
10.a. Installation af PALO
På PA-RISC platformen hedder boot-loaderen palo. Du bliver måske nødt
til at emerge den på din maskine først.
Kode oversigt 1.1: At installere palo |
# emerge palo
|
Du kan finde opsætningsfilen
i /etc/palo.conf. Her er et opsætningseksempel:
Kode oversigt 1.2: Eksempel på /etc/palo.conf |
--commandline=2/vmlinux root=/dev/sdb2 HOME=/
--recoverykernel=/vmlinux.old
--init-partitioned=/dev/sdb
|
Den første linje fortæller palo om placeringen af kernen og hvilke
opstartsparametre, det skal bruge. 2/vmlinux betyder at kernen
/vmlinux ligger på anden partition. Pas på, stien til kernen er relativ
til partitionen, ikke til roden af dit filsystem.
Den anden linje indikerer hvilken genskabelseskerne, der skal bruges. Hvis det
er din første installation og du ikke har en genskabelseskerne, skal du
udkommentere linjen. Den tredje linje indikerer hvilken disk palo vil lægge
sig på.
Når opsætningen er færdig, så kør palo.
Kode oversigt 1.3: Anvend PALO-opsætningen |
# palo
|
Fortsæt nu med Genstart af systemet.
10.b. Genstart af systemet
Afslut det chrooted miljø og afmount alle mountede partitioner. Indtast så den magiske kommando, du har ventet på: reboot.
Kode oversigt 2.1: Afslutning af chroot og afmount af partitioner samt genstart |
# exit
cdimage ~# cd
cdimage ~# umount /mnt/gentoo/boot /mnt/gentoo/proc /mnt/gentoo
cdimage ~# 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.
11. Afslutning af din Gentoo installation
11.a. Brugeradministation
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:
# useradd jens -m -G users,wheel,audio -s /bin/bash
# passwd jens
Password:
Re-enter password:
|
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.
12. Hvad kan jeg gøre efter dette?
12.a. Dokumentation
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.
12.b. Gentoo Online
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 :)
B. Arbejde med Gentoo
1. En Introduktion til Portage
1.a. Velkommen til Portage
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
|
1.b. Portage-træet
Ebuilds
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.
Opdatering af Portage
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
Søgning efter 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
|
Installation af software
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 |
# 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
# 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
|
Fjernelse af software
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.
Opdatering af dit system
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
|
Metapakker
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
|
1.d. Når Portage klager...
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.
Blokerede pakker
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.
Maskerede pakker
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:
-
~arch nøgleordet betyder at programmet ikke er testet tilstrækkeligt
for at blive markeret som stabil. Vente nogle date eller uger og
prøv igen.
-
-arch nøgleordet eller -* nøgleordet betyder at programmet
ikke virker til din arktitektur. Hvis du tror at denne pakke virker,
placerer en fejlrapport i vores bugzilla
hjemmeside.
-
manglende nøgleord betyder at programmet ikke er testet på arkitekturen
endnu. Spørg arktitektur-porting-teamet for at teste denne pakke eller test
den for dem og rapporter dine resultater til bugzilla
hjemmesiden.
-
package.mask betyder at en pakke er fundet korrupt, ustabil eller
værre og er med vilje markeret som brug-ikke-denne-pakke.
-
profile betyder at pakken ikke er fundet mulig til din profil.
Programmet kan ødelægge dit system, hvis du installerer denne eller den
er bare ikke kompatibel med den profil du bruger.
Manglende afhængigheder
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.
Flertydige ebuild navne
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.
Cirkulære afhængigheder
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.
Hentning lykkedes ikke
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.
System-profil-beskyttelse
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.
2. USE-flag
2.a. Hvad er USE-flag?
Ideerne bag ved USE-flag
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.
Definition af et USE-flag
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.
Hvilke USE-flag eksisterer?
Der er to typer USE-flag: globale og lokale USE-flag.
-
Et globalt USE-flag er brugt af en del pakker, over hele systemet. Dette er
hvad de fleste folk forstår som USE-flag.
-
Et lokalt USE-flag er brugt af en enkelt pakke for at lave pakke-specifikke
beslutninger.
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.
2.b. Brug af USE-flag
Erklær permanente USE-flag
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 |
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
|
Automatiske USE-flag
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
|
Rangorden
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):
-
Standard USE-opsætning, erklæret i make.defaults
filens delen af din profil
-
Arvet USE-opsætning, hvis en pakke fra
/etc/make.profile/use.defaults er installeret
-
Brugerdefineret USE-indstilling i /etc/make.conf
-
Brugerdefineret USE-indstilling, som en miljø-variabel
-
Brugerdefineret USE-indstilling i /etc/portage/package.use
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
Se tilgængelige 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 ]
[ Legend : (U) Col 1 - Current USE flags ]
[ : (I) Col 2 - Installed With USE flags ]
U I [ Found these USE variables in : app-office/gnumeric-1.2.0 ]
- - : Adds GNU Data Access (CORBA wrapper) support for gnumeric
- - : unknown
+ + python : Adds support/bindings for the Python language
+ + bonobo : Adds support for gnome-base/bonobo (Gnome CORBA interfaces)
|
3. Portages egenskaber
3.a. Portage egenskaber
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
|
3.b. Distribueret samling
Brug af distcc
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.
Installation af distcc
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
|
3.c. Midlertidig Gemt Samling
Om ccache
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.
Installation af ccache
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
|
4. Startscripts
4.a. Runlevels
Opstart af dit system
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-scripts
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.
Hvordan init virker
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
|
Hvad er en runlevel?
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.
Arbejde med init-scripts
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
|
4.b. Arbejde med rc-update
Hvad er rc-update?
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.
Tilføje og fjerne tjenester
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
|
4.c. Opsætning af tjenester
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.
/etc/conf.d biblioteket
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).
4.d. Skrive init-scripts
Skal jeg gøre det?
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!
Layout
Basislayoutet af en init-script er vist nedenfor.
Kode oversigt 4.1: Basislayout af en init-script |
#!/sbin/runscript
depend() {
}
start() {
}
stop() {
}
restart() {
}
|
Enhver init-script kræver start() funktionen til at blive defineret. Alle
andre sektioner er valgbare.
Afhængigheder
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
-
kræver (virtuel) net-afhængigheden (som er sørget for, f.eks.
/etc/init.d/net.eth0)
-
bruger (virtuel) logger-afhængigheden (som er sørget for, f.eks.
/etc/init.d/syslog-ng)
-
bruger (virtuel) dns-afhængigheden (som er sørget for, f.eks.
/etc/init.d/named)
-
sørger for (virtuel) mta-afhængighed (som er brugt normalt af alle
mail-servere)
Kontrol over rækkefølgen
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 *
}
|
Standardfunktioner
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
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):
- /etc/conf.d/<dit init-script>
- /etc/conf.d/basic
- /etc/rc.conf
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.
Brug af softlevel
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 |
# ls /etc/runlevels/default
# for service in *; do rc-update add $service offline; done
# rc-update del net.eth0 offline
# rc-update show offline
acpid | offline
domainname | offline
local | offline
net.eth0 |
|
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
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.
5. Miljø-variabler
5.a. Miljø-variabler?
Hvad de er
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.
Vigtige eksempler
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
Mappen /etc/env.d
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.
Scriptet env-update
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
Brugerspecifikt
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.
Sessionsspecifikt
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"
|
C. At arbejde med Portage
1. Filer og biblioteker
1.a. Portage-filer
Opsætningsdirektiver
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.
Bruger-specifik opsætning
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:
-
package.mask, som er en liste over pakker du aldrig ønsker Portage at
installere
-
package.unmask, som er en liste over pakker, som du vil have mulighed
for at installere, selvom Gentoo-udviklere virkeligt afskrækker dig fra at
emerge dem
-
package.keywords, som er en liste over pakker, som du vil have mulighed
for at installere, selvom denne pakke ikke er fundet muligt til dit system
eller arkitektur (endnu)
-
package.use, som er en liste over USE-flag, som du vil bruge til
specifikke pakker, uden at hele systemet bruger disse USE-flag
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
|
1.b. Lagring af filer
Portage-træet
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.
Præ-byggede binære filer
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.
Kildekode
Programmernes kildekoder er gemt i /usr/portage/distfiles som
standard. Denne placering er defineret af DISTDIR-variablen.
RPM-filer
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 Database
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.
Portage midlertidige filer
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.
1.c. Bygning af software
Midlertidige Portage-filer
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.
Bygge-folderen
Portage opretter en specifik folder til bygning af hver pakke den emerger, i
/var/tmp/portage. Denne placering er defineret af BUILD_PREFIX-variablen.
Direkte filsystems placering
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.
1.d. Logningsegenskaber
Ebuild log
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.
2. Opsætning gennem variabler
2.a. Opsætning af Portage
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:
-
CFLAGS og CXXFLAGS definerer de ønskede kompiler-flag til C og C++
kompilering
-
CHOST definerer bygningsværtens informationer til programmets opsætningsscript
-
MAKEOPTS bliver flyttet til make-kommandoen og er normalt sat til at definere
antallet af parallelisme brugt igennem kompilering. Flere informationer
omkring make-valgmuligheder kan blive fundet i make's man-sider.
USE-variablen er også brugt igennem opsætningen og kompileringen, men
er blevet forklaret i mange detaljer i de foregående kapitler.
Merge valgmuligheder
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.
2.c. Opsætningsfilbeskyttelse
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
|
At udelukke foldere
For at 'afbeskytte' specifikke underfoldere af beskyttede placeringer kan du bruge
CONFIG_PROTECT_MASK-variablen.
2.d. Valgmuligheder af hentning
Server-placeringer
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:
-
GENTOO_MIRRORS definerer en liste af server-placeringer, som
indeholder kildekoder (distfiles)
-
PORTAGE_BINHOST definerer en specifik server-placering, som indeholder præ-byggede
pakker til dit system
En tredje indstilling involverer placeringen af rsync-serveren, som du kan bruge, når du
opdaterer dit Portage-træ:
-
SYNC definerer en specifik server, som Portage bruger til at fange
Portage-træet fra
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.
Fangst-kommandoer
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.
Rsync-indstillinger
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:
-
RSYNC_EXCLUDEFROM peger på en fil, som har en liste over de pakker og/eller kategorier
som rsync bør ignorere igennem opdateringsprocessen.
-
RSYNC_RETRIES definerer hvor mange gange rsync bør prøve at forbinde til
mirror peget på igennem SYNC-variablen før den opgiver. Denne variabel
er indstillet som standard til 3.
-
RSYNC_TIMEOUT definerer antallet af sekunder en rsync-forbindelse er død
før rsync ser en forbindelse som timed-out. Denne variabel er indstillet som standard til 180,
men opkaldsbrugere eller folk med langsomme computere bør nok indstille denne til 300 eller højere.
2.e. Gentoo-opsætning
Software gren valg
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.
Portages egenskaber
Du kan aktivere specifikke egenskaber til Portage igennem FEATURES-variablen.
Portages egenskaber blev diskuteret i tidligere kapitler, som f.eks. Portages egenskaber.
2.f. Portages adfærd
Ressourcehåndtering
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
|
Output-adfærd
NOCOLOR, som standard er sat til "false", definerer om Portage bør deaktivere
brugen af farvet output.
3. At blande software grene
3.a. Brug af software-grene
Den stabile gren
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.
Test-grenen
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
package.keywords-filen
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
|
Test af specifikke versioner
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
|
3.c. Brug af maskerede pakker
package.unmask-filen
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
|
package.mask-filen
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
|
4. Flere Portage værktøjer
4.a. etc-update
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.
4.b. dispatch-conf
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:
-
Automatisk merge opsætningsfilsopdateringer, som kun indeholder opdateringer til
kommentarer
-
Automatisk merge opsætningsfiler, som kun er forskelligt pga. 'luft' (whitespace).
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
|
4.c. quickpkg
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. Afvigelse fra det officielle træ
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
|
6. Ebuild Applikationen
6.a. Emerge og Ebuild
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
At hente kilder samt checksum
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
|
Udpakning af kildekode
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.
Samling af kildekoderne
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:
- Udføre pkg_preinst() funktionen, hvis specificeret
- Kopiere alle filer til det direkte filsystem
- Registrere filerne i Portages backend
- Udføre pkg_postinst() funktionen, hvis specificeret
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
|
Bygning af en (RPM) pakke
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:
-
package-funktionaliteten minder meget om merge-funktionaliteten, undtagen
alle nødvendige trin (fetch, unpack, compile, install) før oprettelsen af
pakken
-
rpm-funktionaliteten bygger en RPM-pakke fra de filer, oprettet
efter at have kørt ebuilds install-funktionalitet
Kode oversigt 3.3: Oprettelse af pakker |
# ebuild sti/til/ebuild package
# ebuild sti/til/ebuild rpm
|
Den oprettede RPM-fil indeholder dog ikke ebuilds afhængighedsinformationer.
6.d. Flere informationer
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
$ man emerge
$ man ebuild
$ man 5 ebuild
|
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.
|