Gentoo Logo

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

(Een dubbele punt zonder een map erachter wordt gezien als de huidige map)
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 ] [ > ] [ >> ]


Print

View all

Upgedate op 30 augustus 2006

De originele versie van dit document was laatst geupdate om 18 december 2013

Korte inhoud: Met Gentoo kunt u gemakkelijk de omgevingsvariabelen van uw systeem beheren. Dit hoofdstuk legt uit hoe u dat doet, en dit boekdeel beschrijft ook de meest gebruikte variabelen.

Sven Vermeulen
Author

Roy Marples
Author

Daniel Robbins
Author

Chris Houser
Author

Jerry Alexandratos
Author

Seemant Kulleen
Gentoo x86 Developer

Tavis Ormandy
Gentoo Alpha Developer

Jason Huebel
Gentoo AMD64 Developer

Guy Martin
Gentoo HPPA developer

Pieter Van den Abeele
Gentoo PPC developer

Joe Kallar
Gentoo SPARC developer

John P. Davis
Editor

Pierre-Henri Jondot
Editor

Eric Stockbridge
Editor

Rajiv Manglani
Editor

Jungmin Seo
Editor

Stoyan Zhekov
Editor

Jared Hudson
Editor

Colin Morey
Editor

Jorge Paulo
Editor

Carl Anderson
Editor

Jon Portnoy
Editor

Zack Gilburd
Editor

Jack Morgan
Editor

Benny Chuang
Editor

Erwin
Editor

Joshua Kinard
Editor

Tobias Scherbaum
Editor

Xavier Neys
Editor

Grant Goodyear
Reviewer

Gerald J. Normandin Jr.
Reviewer

Donnie Berkholz
Reviewer

Ken Nowack
Reviewer

Lars Weiler
Contributor

Dimitry Bradt
Translator

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.