2 <TITLE> Arbeid etter kompileringen
</TITLE>
3 <!-- Changed by: Espen Skoglund, 23-Apr-1996 -->
6 <H1>Arbeid etter kompileringen
</H1>
9 <LI><H3>Make install
</H3>
10 Når du har kompilert ferdig programpakken i skyggetreet, gjenstår
11 det bare å installere pakken. Dette består som oftest i å skrive:
17 Dersom du har konfigurert makefilene riktig, eller kjørt
18 <CODE>configure
</CODE> med korrekte argumenter, vil binærfiler,
19 bibliotek, manualer, etc. bli installert under
20 <CODE>/store/bin
</CODE>,
<CODE>/store/lib
</CODE>,
21 <CODE>/store/man
</CODE>, osv.
23 <P><LI><H3>Postinst
</H3>
24 Disse filene må nå flyttes over til versjonstreet, og symbolske
25 lenker fra linktreet til versjonstreet må opprettes. Kommandoen
26 <CODE>postinst
</CODE> gjør dette for deg.
30 Architecture suffix [hp700ux9] ?
32 Application [sharutils] ?
37 Som ved
<CODE>shadow
</CODE>-kommandoen, blir du også her konfrontert
38 med en del spørsmål. Og som ved
<CODE>shadow
</CODE>-kommandoen, vil
39 default-verdiene som regel være korrekte.
41 <P>Hva
<CODE>postinst
</CODE>-kommandoen egentlig gjør, er at den
42 søker gjennom hele linktreet og finner de filene som ikke er
43 sumbolske linker, og som er yngre en
10 minutter gammel. Når den
47 <CODE>/store/
<filsti
></CODE>,
50 vil den flytte denne til sin respektive plass i versjonstreet,
53 <CODE>/store/store/tklab1/
<applikasjon
>/ver-
<versjon
>/
<filsti
></CODE>.
56 En symbolsk lenke blir så opprettet fra linktreet til denne filen.
58 <P><CODE>Postinst
</CODE> sjekker også (ved å benytte kommandoen
59 <CODE>file
</CODE>), hvilken type fil den holder på å flytte. Dersom
60 filen er arkitekturavhengig, vil en arkitetkursuffiks bli lagt til
61 ved installeringen. Dersom filen ikke er arkitekturavhengig, vil
62 ingen slik suffiks bli lagt til. Ved installeringen av
63 <CODE>sharutils
</CODE> vil f.eks. følgende to symbolske lenker bli
67 /store/bin/shar -
> /store/store/tklab1/sharutils/ver-
4.2/bin/shar@hp700ux9
68 /store/info/sharutils.info -
> /store/store/tklab1/sharutils/ver-
4.2/info/sharutils.info
71 Ved enekelte anledninger ønsker du kanskje å installere filer som er
72 eldre enn
10 minutter fra linktreet. Dette kan du gjøre ved å gi
73 argumentet ``
<CODE>-t
<minutter
></CODE>'' til
74 <CODE>postinst
</CODE>. Du spesifiserer da en maksimalalder på
75 filene du ønsker å installere, gitt i minutter. Dette er særlig
76 nyttig for programpakker som benytter
<CODE>tar
</CODE> for å
77 installere filene sine i linktreet (f.eks. emacs).
78 Modifikasjonsdatoen til de installerte filene blir da uendret, og
79 filene kan bli flere år gamle.
81 <P><LI><H3>Spesielle konfigureringer
</H3>
82 Dersom programpakken inneholder emacs-info-sider, inneholder
83 konfigurasjonskode som skal tas med i emacs, har programmer som skal
84 legges inn i diverse mailcap-filer, eller behøver at spesielle
85 environment-variabler er satt, så må dette konfigureres på en
86 spesiell måte. Se på siden
<EM>``
<A
87 HREF=
"spec-config.html">Spesielle konfigureringer
</A>''
</EM> for
90 <P><LI><H3>Register
</H3>
91 Når du har gjort deg ferdig med installeringen, må du registrere
92 applikasjonen slik at de interne programmene i
<EM>store
</EM> vet
93 hva du har installert, og kan installere det på andre maskiner i
94 løpet av neste natt. Dette gjøres ved å kjøre kommandien
95 <CODE>register
</CODE>:
100 What application [sharutils] ?
101 (Info) (register)
<sharutils@tklab1
> Updating registration.
103 (Warning) (register)
<sharutils@tklab1
> YOU MUST RUN chkapp MANUALLY.
105 Full name . ... ... [] ?
<I>Shar utilities
</I>
107 Available versions are:
4.2 - choose primary:
108 Primary Version ... [
4.2] ?
109 Program Type .. ... (? for list) [] ?
<I>arc
</I>
110 License Type .. ... (? for list) [] ?
<I>gpl
</I>
111 Release level for version
4.2 [release] ?
112 Signature . ... ... [] ?
<I>eSk
</I>
113 Short Description . (max
30 chars) [] ?
114 ==
><I>Shell archiving utilities
</I> <==
115 XXX - fix sourcecode count (TODO)
116 Online Help ... ... [none] ?
117 Importance ... ... [
5] ?
118 Source ... ... ... [] ?
<I>ftp://prep.ai.mit.edu/pub/gnu/sharutils-${version}.tar.gz
</I>
119 Nightly Command ... [] ?
120 Not Links . ... ... [] ?
121 Dependencies .. ... [] ?
122 Current description is:
124 Do you want to edit the description [N] ?
<I>y
</I>
125 Enter text to be appended (terminate with '.')
126 <I>Husk å fikse emacs-info-sidene.
130 Som vi ser, blir en del default-verdier presentert også her. Hva de
131 forskjellige feltene skal inneholde er forsåvidt ganske
132 selvinnlysende. Noen ord er allikevel på sin plass her:
135 <DT><EM>Full name
</EM>,
<EM>Short Description
</EM> og
<EM>Description
</EM>
136 <DD>Bør være skrevet på engelsk. Det er planer om å lage et
137 web-grensesnitt mot
<EM>store
</EM>, og teksten her vil
138 sansynligvis bli engelsk. Dersom noe tekst er skrevet på norsk,
139 og noe på engelsk vil ting se lite pent ut. Konsistens må man
142 <P><EM>Short description
</EM> blir forresten brukt til
143 bl.a. generering av rapporter.
<EM>Description
</EM> blir benyttet
144 til bl.a. generering av news-meldinger. Et eksempel på en slik
145 <EM>description
</EM> kan være:
148 Shar makes so-called shell archives out of many files, preparing
149 them for transmission by electronic mail services. Unshar helps
150 unpacking shell archives after reception.
153 <DT><EM>Release level
</EM>
154 <DD>Forteller hvilken type utgivelse en gitt versjon av en applikasjon er
155 (eks. beta eller stable). Dette, sammen med profileringen til et
156 gitt linktre, bestemmer hvilken versjon av appliaksjonen som skal
157 installeres i linktreet. Følgende profileringer gjelder for
158 installasjonen (rekkefølgen av
<EM>release levels
</EM> forteller
159 hvordan hver profilering prioriterer utgivelsene):
161 <P><EM>Newer:
</EM> override alpha beta gamma release stable
162 dated old obsolete prealpha
163 <BR><EM>Normal:
</EM> override stable release gamma dated beta
164 old alpha obsolete prealpha
166 <P>For tklabben benyttes
<EM>newer
</EM>, og for resten av
167 installasjonen benyttes
<EM>normal
</EM>. Prioriteten av
168 <EM>release levels
</EM> ovenfor bestemmer hvilken versjon som skal
169 installeres av en gitt applikasjon.
171 <P>Eks: Vi har versjon
1.4 av en applikasjon installert i
172 <EM>store
</EM>, og denne versjonen er satt til relase level,
173 ``
<EM>release
</EM>''. Vi installerer nå versjon
2.001 av samme
174 applikasjon, og setter release level til ``
<EM>beta
</EM>''. Dette
175 vil føre til at versjon
2.001 vil bli installert på tklaben, mens
176 versjon
1.4 blir installert andre steder.
<P>
178 <DT><EM>Importance
</EM>
179 <DD>Forteller hvor viktig applikasjonen er. Jo høyere tall, jo viktigere
180 er applikasjonen.
<CODE>Perl-internal
</CODE> har
181 f.eks.
<EM>importance
</EM> 9 fordi hele
<EM>store
</EM> baserer seg
184 <P>Foreløpig blir ikke dette feltet meget benyttet. Et unntak er
185 noen lokale patcher til
<CODE>perl-internal
</CODE> som gjør at
186 dersom det skjer en konflikt i navnerommet (eks. to filer som
187 heter
<CODE>/store/etc/config
</CODE>), så vil kun det viktigeste
188 filsettet få filen installert.
<P>
191 <DD>Inneholder informasjon om hvor kildekoden kan bli funnet. Dette
192 feltet benyttes bl.a. for å kunne fortelle administratorene når en
193 ny versjon av programpakken kommer.
<EM>Store
</EM> kan også
194 konfigureres slik at denne nye pakken automatisk blir hentet.
196 <P>På grunn av at dette feltet skal benyttes internt av
197 <EM>store
</EM>, må feltet ha en gitt syntaks. Adresser kan enten
198 spesifiseres på URL-form som vist ovenfor (ved å benytte en av
199 protokollene HTTP eller FTP), eller de kan spesifiseres på
203 <CODE>prep.ai.mit.edu:/pub/gnu/sharutils-${version}.tar.gz
</CODE>
206 som også spesifiserer at FTP skal benyttes. Der det er mulig bør
207 en FTP-adresse benyttes fremfor HTTP -- dette fordi FTP i
208 motsetning til HTTP alltid kan gi en liste over innholder i en
209 katalog. Det stedet i adressen som inneholder versjonsnummeret
210 til pakken, må også spesifiseres som vist i eksempelet.
213 <DT><EM>Nightly command
</EM>
214 <DD>Spesifiserer en kommando som blir kjørt hver natt (fra skriptet
215 <CODE>cclient
</CODE>), og hver gang en
<CODE>linkup
</CODE> blir
216 gjort på applikasjonen. Dette er nyttig for programmer som
217 f.eks. ønsker å generere konfig-filer, indekser, etc. på grunnlag
218 av hva som ellers er installert i linktreet.
220 <P>Envirnoment-variabelen
<CODE>$TOPDIR
</CODE> blir også satt slik
221 at man kan benytte den i eventuelle skripter som blir startet.
222 Denne variabelen forteller hva filstien til rota i linktreet er
223 (typisk
<CODE>/store
</CODE>). For å starte et perlskript i
224 linktreet hver natt, kan man derfor spesifisere f.eks.:
227 <CODE>perl $TOPDIR/etc/make-emacs-dir.pl
</CODE>
230 Flere kommandoer kan dessuten spesifiseres ved å skille dem med
231 <CODE>;
</CODE> (semikolon).
234 <DT><EM>Not Links
</EM>
235 <DD>Forteller om filer som ikke er symbolske lenker, men som allikevel
236 hører med til applikasjonen. Dette kan f.eks. være indeks-filer
237 generert av en
<EM>nightly command
</EM>, og spesifiseres som et
238 <EM>perl regular expression
</EM> med filnavn relativt til
239 linktre-rota. Applikasjonen
<CODE>perl-internal
</CODE> genererer
240 f.eks. news-meldinger under
<CODE>/store/news
</CODE>, og har
241 derfor følgende
<EM>notlinks regexp
</EM>:
247 Dette forhindrer at filene under
<CODE>/store/news
</CODE> blir
248 slettet av
<CODE>cclient
</CODE>, eller kopiert opp i et eller
249 annet versjonstre av
<CODE>postinst
</CODE>. Flere
<EM>notlinks
250 regexp
</EM> kan gis ved å separere dem med mellomrom (space).
253 <DT><EM>Dependencies
</EM>
254 <DD>Gir en liste (separert med mellomrom) av applikasjoner som den gitte
255 applikasjonen er avhengig av.
<CODE>Exmh
</CODE> er
256 f.eks. avhengig av MH, Tcl og Tk. Dette fordi
<CODE>exmh
</CODE>
257 består av kode skrevet i Tcl/Tk, og det benytter seg av
258 funksjonalitet som MH tilbyr. Dersom en eller flere av disse
259 applikasjonene mangler, vil ikke
<CODE>exmh
</CODE> bli installert.
261 <P>Det er selvfølgelig bare mulig å spesifisere applikasjoner som
262 faktisk ligger i
<EM>store
</EM> i
<EM>dependency
</EM>-listen. Det
263 vil ellers være vanskelig for
<EM>store
</EM>-programmene å vite om
264 den aktuelle applikasjonen faktisk eksisterer på systemet.
266 <P>Det er ikke mulig å spesifisere versjonsnummer for
267 appliksjonene, og applikasjonsnavnene må samsvare nøyaktig med
268 navnet som applikasjonen har i
<EM>store
</EM>. Navnene er også
269 case-sensitive, slik at ``Tcl'' ikke er det samme som ``tcl''.
270 <CODE>Exmh
</CODE> har f.eks. følgende
<EM>dependency
</EM>-liste:
273 <CODE>mh tcl tk
</CODE>
279 <P><LI><H3>Chkapp
</H3>
280 Etter at
<CODE>register
</CODE> er kjørt, må
<CODE>chkapp
</CODE>
281 kjøres for å oppdatere listen over hvilke versjoner av applikasjonen
282 som eksisterer, samt hvilke arkitekturen hver versjon har støtte for.
286 Which master [tklab1] ?
287 Which application [sharutils] ?
290 <CODE>Chkapp
</CODE> må dessuten kjøres når der gjøres manuelle
291 forandringer i versjonstreet (f.eks. når filer blir lagt til eller
292 forandret). Kommandoen oppdaterer nemlig en fil
293 <EM>summary.
<versjon
></EM> som forteller om størrelse,
294 modifikasjonstid, etc. til hver fil i filsettet. Denne filen brukes
295 som en slags cache for de skriptene som kjøres hver natt, og som
296 skal bestemme om evt. nye filer må kopieres rundt om på systemet.
301 <ADDRESS><A HREF=
"/~espensk/">eSk
</A></ADDRESS>