Disclaimer :
Dit document is niet juist en is niet meer onderhouden.
|
[ << ]
[ < ]
[ Home ]
[ > ]
[ >> ]
5. Omgevingsvariabelen
Inhoud:
5.a. Omgevingsvariabelen?
Wat zijn dat
Een omgevingsvariabele is een ding dat een naam heeft en informatie bevat die
wordt gebruikt door één of meer toepassingen. Veel gebruikers (met name degenen
die nieuw zijn binnen Linux) vinden dit vreemd en onhandig. Niets is minder
echter waar: door omgevingsvariabelen te gebruiken kunt u eenvoudig de
instellingen voor één of meer toepassingen veranderen.
Belangrijke voorbeelden
De onderstaande tabel laat enkele variabelen zien die een Linux systeem
gebruikt en geeft daar een korte uitleg bij. Voorbeelden van bruikbare waarden
zullen na de tabel worden gegeven.
| Variabele |
Beschrijving |
| PATH |
Deze variabele bestaat uit een lijst van mappen waarin een systeem zoekt
naar programma's. Wanneer u de naam van een programma in typt (zoals
ls, rc-update of emerge) en het programma staat niet
in de lijst, zal het programma niet worden uitgevoerd. Tenzij u natuurlijk
de volledig naam van de map en het programma opgeeft (zoals
/bin/ls).
|
| ROOTPATH |
Deze variabele doet hetzelfde als PATH, maar dan voor mappen die
worden doorzocht wanneer de root een commando intypt.
|
| LDPATH |
Deze variabele bevat de mappen waar wordt gezocht naar bibliotheken, door
de zogenaamde dynamische linker.
|
| MANPATH |
Deze variabele bevat een lijst met mappen waar het commando man
zoekt naar handleidingen.
|
| INFODIR |
Deze variabele bevat een lijst met mappen waar het commando info
zoekt naar info pagina's.
|
| PAGER |
Deze variabele bevat de verwijzing naar een programma dat de inhoud van
bestanden kan weergeven (zoals less of more).
|
| EDITOR |
Deze variabele bevat de verwijzing naar uw (favoriete) editor (zoals
nano of vi).
|
| KDEDIRS |
Deze variabele bevat een lijst met mappen die door KDE worden gebruikt.
|
| CLASSPATH |
Deze variabele bevat een lijst met mappen waarin Java classes zijn
opgeslagen.
|
| CONFIG_PROTECT |
Deze variabele bevat een lijst met mappen die beveiligd worden door Portage
tijdens updates (let op, spaties in plaats van dubbele punten).
|
| CONFIG_PROTECT_MASK |
Deze variabele bevat een lijst met mappen die niet beveiligd worden door
Portage tijden updates (let op, spaties in plaats van dubbele
punten).
|
Hieronder worden enkele voorbeelden gegeven voor deze variabelen:
Codevoorbeeld 1.1: Voorbeelden |
PATH="/bin:/usr/bin:/usr/local/bin:/opt/bin:/usr/games/bin"
ROOTPATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin"
LDPATH="/lib:/usr/lib:/usr/local/lib:/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3"
MANPATH="/usr/share/man:/usr/local/share/man"
INFODIR="/usr/share/info:/usr/local/share/info"
PAGER="/usr/bin/less"
EDITOR="/usr/bin/vim"
KDEDIRS="/usr"
CLASSPATH="/opt/blackdown-jre-1.4.1/lib/rt.jar:."
CONFIG_PROTECT="/usr/X11R6/lib/X11/xkb /opt/tomcat/conf \
/usr/kde/3.1/share/config /usr/share/texmf/tex/generic/config/ \
/usr/share/texmf/tex/platex/config/ /usr/share/config"
CONFIG_PROTECT_MASK="/etc/gconf"
|
5.b. Variabelen globaal definiëren
De map /etc/env.d
Om de definities bij elkaar te kunnen houden, heeft Gentoo de map
/etc/env.d. In deze map bevinden zich een aantal bestanden,
waaronder bijvoorbeeld 00basic en 05gcc, waarin
de variabelen voor de toepassing waar ze naar vernoemd zijn worden ingesteld.
Toen u gcc hebt geïnstalleerd is bijvoorbeeld het bestand
05gcc aangemaakt door de ebuild, met daarin de volgende
variabelen:
Codevoorbeeld 2.1: /etc/env.d/05gcc |
PATH="/usr/i686-pc-linux-gnu/gcc-bin/3.2"
ROOTPATH="/usr/i686-pc-linux-gnu/gcc-bin/3.2"
MANPATH="/usr/share/gcc-data/i686-pc-linux-gnu/3.2/man"
INFOPATH="/usr/share/gcc-data/i686-pc-linux-gnu/3.2/info"
CC="gcc"
CXX="g++"
LDPATH="/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3"
|
Andere distributies hebben deze variabelen bijvoorbeeld in
/etc/profile. Gentoo maakt het eenvoudiger voor u (en voor
Portage) door zelf de omgevingsvariabelen bij te houden, zonder dat u de
verschillende bestanden moet aanpassen waarin omgevingsvariabelen kunnen staan.
Wanneer u gcc update wordt het bestand/etc/env.d/05gcc
automatisch ge-update, zonder dat u iets hoeft te doen.
Dit is niet alleen een voordeel voor Portage, maar ook voor uzelf. Toch moet
u soms zelf een omgevingsvariabele invoeren. Als voorbeeld nemen we hier de
variabele http_proxy. Deze kunt u eenvoudig definiëren door een bestand
/etc/env.d/99local aan te maken met de variabele daarin:
Codevoorbeeld 2.2: /etc/env.d/99local |
http_proxy="proxy.server.com:8080"
|
Wanneer u alle variabelen toevoegt in hetzelfde bestand zet, hebt u een
goed overzicht van de variabelen die u zelf instelt.
Het env-update Script
De verschillende bestanden in /etc/env.d definieren samen de
variabelePATH: op deze manier kunt u door env-update te draaien
de verschillende definities toevoegen, waardoor het eenvoudiger is voor
pakketten (en gebruikers) om hun eigen variabelen toe te voegen, zonder daarbij
met de reeds bestaande waarden aan te hoeven passen.
Het env-update script voegt de waarden in alfabetische volgorde toe. De
bestandsnamen moeten daarom beginnen met twee getallen.
Codevoorbeeld 2.3: Volgorde om toe te voegen door env-update |
00basic 99kde-env 99local
+-------------+----------------+-------------+
PATH="/bin:/usr/bin:/usr/kde/3.2/bin:/usr/local/bin"
|
Niet alle variabelen worden op de bovenstaande manier samengevoegd. Dit geldt
alleen voor: KDEDIRS, PATH, CLASSPATH, LDPATH,
MANPATH, INFODIR, INFOPATH, ROOTPATH,
CONFIG_PROTECT, CONFIG_PROTECT_MASK, PRELINK_PATH en
PRELINK_PATH_MASK. Voor de rest van de variabelen wordt de laatst
gedefinieerde waarde gebruikt die in /etc/env.d is gedefinieerd
(op alfabetische volgorde).
Wanneer u env-update draait, worden alle omgevingsvariabelen aangemaakt
en in het bestand /etc/profile.env geplaatst (wat dan gebruikt
wordt door /etc/profile). Het bestand /etc/ld.so.conf
wordt aangemaakt met de informatie uit LDPATH. Daarna wordt
ldconfig gedraaid om /etc/ld.so.cache overnieuw aan te maken,
voor gebruik door de dynamische linker.
Wanneer u direct gebruik wilt maken van de omgevingsvariabelen die door
env-update zijn toegevoegd, moet u het onderstaande commando uitvoeren.
Indien u Gentoo zelf hebt geïnstalleerd, herinnert u zich dit waarschijnlijk
nog wel uit de installatie instructies:
Codevoorbeeld 2.4: De omgevingsvariabelen updaten |
# env-update && source /etc/profile
|
Nota:
Het bovenstaande commando werkt alleen voor de variabelen in uw huidige
terminal en voor nieuwe consoles. Dus wanneer u X11 draait, moet u
in elke nieuwe terminal source /etc/profile draaien of X herstarten.
Wanneer u een login manager gebruikt kunt u /etc/init.d/xdm restart
draaien als root. Als u dit niet doet, moet u uitloggen en overnieuw inloggen
om de nieuwe variabelen te kunnen gebruiken.
|
5.c. Variabelen lokaal definiëren
User Specific
Soms wilt u een omgevingsvariabele niet globaal definiëren. U kunt bijvoorbeeld
de map /home/my_user/bin en de map waarin u werkt aan de variabele
PATH willen toevoegen, zonder dat alle andere gebruikers deze mappen in
hun PATH hebben staan. Dit kan door een variabele lokaal te definiëren
in ~/.bashrc of ~/.bash_profile:
Codevoorbeeld 3.1: PATH lokaal uitbreiden via ~/.bashrc |
PATH="${PATH}:/home/my_user/bin:"
|
Zodra u overnieuw inlogt wordt uw PATH variabele bijgewerkt.
Per sessie
Soms wilt u een omgevingsvariabele helemaal niet permanent gebruiken. U kunt
bijvoorbeeld een tijdelijke map hebben, waarvoor u de niet steeds de hele
map wilt intypen en niet ~/.bashrc wilt aanpassen, omdat u de
verwijzing maar tijdelijk nodig heeft.
In zo'n geval kunt u de variabele PATH in de huidige sessie aanpassen
met het commando export. De variabele blijft dan actief totdat u
uitlogt.
Codevoorbeeld 3.2: Een omgevingsvariabele definieren voor één sessie |
# export PATH="${PATH}:/home/my_user/tmp/usr/bin"
|
[ << ]
[ < ]
[ Home ]
[ > ]
[ >> ]
The contents of this document are licensed under the Creative Commons -
Attribution / Share Alike license.
|