]> pere.pagekite.me Git - homepage.git/blob - store/doc-espensk/in-install.html
Generated.
[homepage.git] / store / doc-espensk / in-install.html
1 <HTML><HEAD>
2 <TITLE> Kompilering i store </TITLE>
3 <!-- Changed by: Espen Skoglund, 23-Apr-1996 -->
4 </HEAD><BODY>
5
6 <H1>Kompilering i store</H1>
7
8 Hvordan man kompilerer selve applikasjonen i <EM>store</EM> kan man
9 ikke si noe særlig generelt om. Instruksjoner om hvordan dette skal
10 foregå vil man finne forklart i distribusjoenen til den enkelte
11 applikasjon (typisk i en fil med navn INSTALL eller README).
12
13 <P>Det man derimot må passe på når man kompilerer programmer, er at
14 filstier som blir hardkodet inn i programmene benytter prefiksen
15 <CODE>/store</CODE> istedenfor den filstien som blir foreslått (typisk
16 <CODE>/usr/local</CODE>).
17
18 <H3> Kommandoene unshadow og fix </H3>
19
20 Ved kompileringen vil det ofte være nødvendig å forandre på en eller
21 flere filer for å tilpasse applikasjonen til de lokale omgivelsene.
22 Dette kan være f.eks. makefiler eller konfigurasjonsfiler. Vi ønsker
23 derimot ikke å forandre på de orginale filene som følger med
24 distribusjonen (konfigurasjoner som gjelder for <EM>hpux</EM> vil
25 sansynligvis ikke gjelde for <EM>solaris</EM>), og må derfor kopiere
26 filen over til skyggetreet slik at vi forandrer på kopien av filen
27 istedenfor orginalen. Til dette benytter vi kommandoen
28 <CODE>unshadow</CODE>. Hvis vi f.eks. skal forandre på en fil
29 <CODE>src/config.h</CODE>, kan vi skrive:
30
31 <LISTING>
32 $ <I>unshadow src/config.h</I>
33 </LISTING>
34
35 Deretter kan vi editere filen etter behov. Som oftest ønsker vi å
36 kjøre <CODE>unshadow</CODE> på en fil fordi vi vil forandre den. Av
37 denne grunnen finnes også en kommando <CODE>fix</CODE> som kjører
38 <CODE>unshadow</CODE> på den spesifiserte filen, og deretter starter
39 opp <CODE>vi</CODE> på den. Følgende to kommandosekvenser er derfor
40 like:
41
42 <LISTING>
43 $ <I>unshadow Makefile</I>
44 $ <I>vi Makefile</I>
45
46 $ <I>fix Makefile</I>
47 </LISTING>
48
49
50 <H3> Configure-skript </H3>
51
52 For alle GNU pakker, og en stor del av andre programpakker, så følger
53 det et konfigurasjonsskript med i programpakke-distribusjonen. For
54 slike pakker er kompileringen i <EM>store</EM> særdeles enkel. Alt
55 man behøver å gjøre, er å spesifisere en prefiks, <CODE>/store</CODE>,
56 til konfigurasjonsskriptet. Dette er også tilfelle for pakken
57 <CODE>sharutils</CODE>. Vi skriver derfor:
58
59 <LISTING>
60 $ <I>./configure --prefix=/store</I>
61 </LISTING>
62
63 I noen tilfeller kan det også være nødvendig å spesifisere hvilken
64 c-kompilator man skal benytte. Dette skulle her på installasjonen
65 pr. default bli satt til <CODE>cc</CODE>, men man vet jo aldri hva som
66 kommer til å hende over natten. En enkel måte å spesifisere dette på,
67 er å kjøre <CODE>configure</CODE> på følgende måte:
68
69 <LISTING>
70 $ <I>CC=cc ./configure --prefix=/store</I>
71 </LISTING>
72
73 Etter at <CODE>configure</CODE> har kjørt ferdig behøver man
74 forhåpentligvis bare å starte <CODE>make</CODE>. Programpakken burde
75 da kompilere seg ferdig uten problemer.
76
77 <LISTING>
78 $ <I>make</I>
79 </LISTING>
80
81 <H3> Spesifisering av bibliotek </H3>
82
83 Dersom du spesifiserer søkestien for bibliotek som skal benyttes under
84 kompileringen (opsjonen <CODE>-L</CODE> til cc eller ld), så bør stier
85 som er mest mulig standard spesifiseres. Å spesifisere f.eks.
86 ``<CODE>-L/usr/local1/lib</CODE>'' er mao. en lite lur ting å gjøre --
87 dette for at programmet da sansynligvis bare vil fungere på tklaben.
88 Katalogen <CODE>/usr/local1</CODE> eksisterer nemlig ikke andre steder
89 på installasjonen.
90
91 <P>Å benytte <CODE>/usr/local</CODE> i <EM>store</EM> er generelt sett
92 lite ønskelig. Grunnen til at vi vil konvertere til <EM>store</EM> er
93 jo bl.a. fordi vi ønsker å gå bort ifra et uoversiktlig
94 <CODE>/usr/local</CODE>-system. Å gjøre appliksjoner i <EM>store</EM>
95 avhengig av <CODE>/usr/local</CODE> gjør ikke denne konverteringen
96 enklere.
97
98
99 <HR>
100 <ADDRESS><A HREF="/~espensk/">eSk</A></ADDRESS>
101
102 </BODY></HTML>