[an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]
 
[an error occurred while processing this directive] [an error occurred while processing this directive]
Skåne Sjælland Linux User Group - http://www.sslug.dk Home   Subscribe   Mail Archive   Forum   Calendar   Search
MhonArc Date: [Date Prev] [Date Index] [Date Next]   Thread: [Date Prev] [Thread Index] [Date Next]   MhonArc
 

Re: [NOVICE] at compile Noget



Atte André Jensen wrote:
Mega-Hawk wrote:

Nu har jeg så tit læst noget om at compile programmer og sin egen kerne osv til linux, mener endda også jeg en gang læste at compile programmer til linux i sidste ende var mere drift sikker end at bruge deb og rpm pakker,

En hel distro... Du kan køre gentoo, hvor alle programmer hentes som kildekode og oversættes lokalt på din maskine. Hvis du vil gøre det helt selv får du nok at lave...

(Gentoo kan faktisk også installeres som binære pakker, det går så hurtigt som nettet nu er til.)

Når man kompilerer skal der sendes en masse parametre med til det program, som udfører selve kompileringen. Det kan være oplysninger om hvor filerne skal placeres, om programmet skal understøtte UTF8 osv.
Det er muligt - men ikke en banal opgave - at ændre på de parametre, og derved opnå, at det færdige (binære) program kører bedre på netop din maskine end standardversionen.


I gentoo har man samlet den slags konfigurationer i nogle få filer. Hvis du oplyser, at din maskine er en 686, vil den oplysning blive sendt med når programmerne kompileres, og de vil kunne udnytte de specielle egenskaber en 686 har, men som ikke er med i alle x86 processorer, og derfor ikke udnyttes som standard.
På en 3GHz maskine tager det en uges tid at oversætte alt muligt fra grunden op (incl. X og KDE), heri medregnet, at du jo også sover af og til. Hertil kommer, at du skal finde frem til, hvad det egentlig er for programmer, du vil have ind, det er ikke så helt logisk, at et program til at brænde CD'er hedder k3b - vel?.


Hvis du bruger en standard kerne, vil den være kompileret, så den dække flest mulige behov. Det vil typisk sige, at den understøtter et hav af netkort - din maskine har kun brug for, at den understøtter et enkelt. Selv om understøttelsen er lagt ud som moduler, der kun bruges hvis der er behov for det, kan man alligevel spare noget tid på kompileringen ved at fjerne understøttelsen for de ting man ikke har brug for (fx.fremmede netkort, mystiske filsystemer osv.).
Modsvarende kan man kompilere ting ind i kernen, som normalt er lagt ud som moduler, så kernen ikke skal starte de moduler (fx. netop dit netkort og de filsystemer du bruger).
I forbindelse med en kerne kan du lave disse ændringer med et program som menuconfig eller xconfig, Disse programmer ligger ikke færdige, de skal i sig selv oversættes, det sker med programmet make:


make menuconfig
eller
make xconfig

Det programet make gør er, at det løber din kernes kildetekster og meget andet igennem, oversætter programmet og starter det.
Begge programmer arbejder med den fil (.config), der senere kommer til at give oversætteren alle mulige oplysninger om, hvad det er, der skal oversættes, hvad det skal oversættes med, og hvilke parametre der skal sendes med til oversætteren.


Typisk går en oversættelse gennem tre faser.
1.
Du sætter konfigurationen op, så den passer med dine ønsker. Har du ingen ændringer, kan du ofte blot give kommandoen


./configure

2.
Efter at der er løbet en masse oplysninger ned over skærmen er du klar til næste fase, nemlig selve oversættelsen. Den sker med kommandoen
make
som ud fra konfigurationen får fx. gcc (en c kompiler) til at oversætte kildeteksterne til binær kode.


3.
Til slut vil kommandoen

make install
typisk kopiere de færdige filer på plads (evt. man sider osv).

Summa summarum.
Det selv at kompilere er ikke umuligt, men heller ikke altid helt enkelt.
Fordelen er, at man kan optimere programmerne, så de passer bedst muligt til ens egen maskine, ulempen, at man kan gøre dem ubrugelige (læs: man skal gøre mere end et enkelt forsøg inden tingene lykkes).


Kompileringen af en ny kerne adskiller sig fra alle andre programmer ved, at man først ser, om det lykkedes, når man forsøger at genstarte maskinen med den nye kerne, og gik noget galt, kan man komme rigtigt galt afsted, hvis man ikke har sikret sig, at der også er en fungerende kerne at starte på. Kernekompilering starter med, at man lærer at sætte flere kerner op i LILO eller Grub!

God fornøjelse.

 
Home   Subscribe   Mail Archive   Index   Calendar   Search

 
 
Questions about the web-pages to <www_admin>. Last modified 2006-01-01, 02:04 CET [an error occurred while processing this directive]
This page is maintained by [an error occurred while processing this directive]MHonArc [an error occurred while processing this directive] # [an error occurred while processing this directive] *