Kompilering i store
Hvordan man kompilerer selve applikasjonen i store kan man
ikke si noe særlig generelt om. Instruksjoner om hvordan dette skal
foregå vil man finne forklart i distribusjoenen til den enkelte
applikasjon (typisk i en fil med navn INSTALL eller README).
Det man derimot må passe på når man kompilerer programmer, er at
filstier som blir hardkodet inn i programmene benytter prefiksen
/store
istedenfor den filstien som blir foreslått (typisk
/usr/local
).
Kommandoene unshadow og fix
Ved kompileringen vil det ofte være nødvendig å forandre på en eller
flere filer for å tilpasse applikasjonen til de lokale omgivelsene.
Dette kan være f.eks. makefiler eller konfigurasjonsfiler. Vi ønsker
derimot ikke å forandre på de orginale filene som følger med
distribusjonen (konfigurasjoner som gjelder for hpux vil
sansynligvis ikke gjelde for solaris), og må derfor kopiere
filen over til skyggetreet slik at vi forandrer på kopien av filen
istedenfor orginalen. Til dette benytter vi kommandoen
unshadow
. Hvis vi f.eks. skal forandre på en fil
src/config.h
, kan vi skrive:
$ unshadow src/config.h
Deretter kan vi editere filen etter behov. Som oftest ønsker vi å
kjøre unshadow
på en fil fordi vi vil forandre den. Av
denne grunnen finnes også en kommando fix
som kjører
unshadow
på den spesifiserte filen, og deretter starter
opp vi
på den. Følgende to kommandosekvenser er derfor
like:
$ unshadow Makefile
$ vi Makefile
$ fix Makefile
Configure-skript
For alle GNU pakker, og en stor del av andre programpakker, så følger
det et konfigurasjonsskript med i programpakke-distribusjonen. For
slike pakker er kompileringen i store særdeles enkel. Alt
man behøver å gjøre, er å spesifisere en prefiks, /store
,
til konfigurasjonsskriptet. Dette er også tilfelle for pakken
sharutils
. Vi skriver derfor:
$ ./configure --prefix=/store
I noen tilfeller kan det også være nødvendig å spesifisere hvilken
c-kompilator man skal benytte. Dette skulle her på installasjonen
pr. default bli satt til cc
, men man vet jo aldri hva som
kommer til å hende over natten. En enkel måte å spesifisere dette på,
er å kjøre configure
på følgende måte:
$ CC=cc ./configure --prefix=/store
Etter at configure
har kjørt ferdig behøver man
forhåpentligvis bare å starte make
. Programpakken burde
da kompilere seg ferdig uten problemer.
$ make
Spesifisering av bibliotek
Dersom du spesifiserer søkestien for bibliotek som skal benyttes under
kompileringen (opsjonen -L
til cc eller ld), så bør stier
som er mest mulig standard spesifiseres. Å spesifisere f.eks.
``-L/usr/local1/lib
'' er mao. en lite lur ting å gjøre --
dette for at programmet da sansynligvis bare vil fungere på tklaben.
Katalogen /usr/local1
eksisterer nemlig ikke andre steder
på installasjonen.
Å benytte /usr/local
i store er generelt sett
lite ønskelig. Grunnen til at vi vil konvertere til store er
jo bl.a. fordi vi ønsker å gå bort ifra et uoversiktlig
/usr/local
-system. Å gjøre appliksjoner i store
avhengig av /usr/local
gjør ikke denne konverteringen
enklere.
eSk