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