PATH eller MANPATH-variablene, eller at
andre applikasjonsspesifikke variabler må settes
(eks. FMHOME i FrameMaker).
Det er derimot ønskelig at brukerne skal slippe å vite om disse
variablene -- de skal automatisk konfigureres inn i brukerens oppsett.
Et filsett, env-config, i store sørger for
dette.
I katalogen /store/etc/ENV ligger det en rekke filer
``ENV-*'' som forteller noe om hvlike
environment-variabler som må settes. Disse filene hører til
forskjellige filsett (teTeX, postgres95,
osv.). Filsettet env-config inneholder dessuten noen
default-variabler som det ikke passer å spesifisere i de andre
filsettene (eks. TZ og XFILESEARCHPATH, samt
standardverdier for PATH og MANPATH).
Alt hva vi behøver for å konfigurere brukernes environment-oppsett til vår applikasjon, er derfor å snekre i sammen en slik fil som spesifiserer hvilke variabler som må settes.
#) blir ignorert.
$TOP eller
$TOPDIR forekommer, blir dette byttet ut med filstien
til linktre-roten (typisk /store).
<uid>:<gid>:<pri>:<type>:<variabel>=<verdi>
<uid>
espensk,geiri'').
Dersom feltet består av ``*'', vil alle brukere få
variabelen satt. Komplimentet av brukere kan også spesifiseres
ved å benytte ``!''. ``!root''
forteller f.eks. at alle brukerne utenom root-brukeren skal ha
variabelen satt. Man kan forøvrig benytte tall-uider i denne
listen også, disse vil da bli oversatt til navn-uider dersom det
lar seg gjøre.
<gid>
/usr/bin/groups''
benyttes for å bestemme hvilke grupper den aktuelle brukeren er
medlem av. Formatet er forøvrig likt det som benyttes for
<uid>.
<pri>
PATH har
f.eks. ``/store/bin'' prioritet 5 og
``/store/opt/krb5/bin'' priotitet 4. Dette fører
til at ``/store/opt/krb5/bin'' havner før
``/store/bin'' i den ferdige stien.
Dersom vi har med vanlige verider å gjøre (dvs. alle verdier
som ikke er stier) vil dette fungere som en helt vanlig
priotitet. TZ med prioritet 4 benyttes f.eks. før
TZ med prioritet 5.
<type>
p -
/usr/ingres/bin'' inn i PATH,
vil dette bare gjelde på lglaben (og andre steder hvor
ingres er installert).
n -
XFILESEARCHPATH til å være
``/store/lib/X11/app-defaults/%N''. I dette
tilfellet finnes jo ingen slik katalog.
s -
TZ).
<variabel>=<verdi>
s), blir
variabelen (eventuelt) satt til den gitte verdien. Dersom
variabelen derimot er en sti (type p eller
n), blir den gitte verdien (eventuelt) lagt til i
stien.
Hvis en linje ender med ``\'' (backslash), blir
linjen konkatinert med neste linje, og et ``:'' (kolon)
blir satt som skille mellom dem. Dette er nyttig dersom du
spesifiserer en sti bestående av flere elementer, og ønsker å rydde
opp i konfigurasjonsfilen. Følgende to settinger er altså like:
PATH. Siden prioriteten er høy (2), vil
disse elementene havne langt frem i stien. Siden variabel-settingen
er av type p, vil eksistensen til hver av katalogene
bli sjekket før de blir tatt med. Dvs. at dersom f.eks. katalogen
``/opt/graphics/common/bin'' ikke eksisterer, vil den
ikke bli tatt med i den ferdige stien.
Den typiske bruken av environment-settinger, er derimot meget
enkel. Som oftest ønsker vi bare å legge til et enkelt element i
PATH og/eller MANPATH. Dette gjelder
f.eks. for Kerberos-applikasjonen. Filsettet inneholder derfor en
fil ``etc/ENV/ENV-kerberos''. Innholdet i denne filen
er:
env-config genererer filene
/store/etc/src.sh og /store/etc/src.csh hver
natt ved hjelp av en nightly command. De genererte filene er
i henholdsvis bourne-shell og c-shell format, og kan
``sources'' av andre shell-oppstart-filer (eller interaktivt
av brukerne) dersom det er ønskelig. Zsh genererer
dessuten sin egen /store/skel/zshenv hver natt slik at
den ikke behøver å source noen av disse filene.
Dersom applikasjoner ønsker å konfigurere dette selv, slik som
f.eks. zsh gjør, er det ønskelig at koden i
env-config benyttes. Eksempel på perl-kode følger:
/store/skel/zshenv).
``&Env'build_csh_env'' kan også benyttes istedenfor
``&Env'build_env'' dersom csh-syntaks er
ønskelig.
Filsett som skal benytte seg av environment-konfigurasjonene bør
settes til å ha dependency env-config (dette
gjelder f.eks. zsh). Hvis ikke dette blir gjort vil ikke:
environ.pl'' kunne inkluderes i perl-skript
(dersom det benyttes).
etc/src.sh'' eller ``etc/src.csh''
vil ikke eksistere (dersom dette f.eks. skulle sources i
oppstartfilene).
PATH og
MANPATH.