[ << ]
[ < ]
[ Home ]
[ > ]
[ >> ]
5. Ympäristömuuttujat
Content:
5.a. Ympäristömuuttujat
Mitä ne ovat?
Ympäristömuuttujat ovat nimettyjä olioita jotka sisältävät yhden tai useamman
ohjelmiston käyttämää tietoa. Monet käyttäjistä (etenkin Linuxiin aiemmin
tutustumattomat) pitävät näitä outoina ja hankalasti hallittavina, mutta
ovat kuitenkin väärässä: ympäristömuuttujilla voi helposti ja kätevästi muuttaa
ohjelman tai ohjelmien asetuksia.
Tärkeitä esimerkkejä
Seuraavassa taulukossa on muutamia Linux-järjestelmien muuttujia selityksineen.
Esimerkkiarvot ovat taulukon alla.
| Muuttuja |
Kuvaus |
| PATH |
Tässä muuttujassa on kaksoispistein eroteltu listaus hakemistoista joista
suoritettavia tiedostoja etsitään. Kun suoritettavan komennon nimi annetaan
(sellainen kuten ls, rc-update tai emerge), mutta
vastaavaa tiedostoa ei löydy listatuista hakemistoista, sitä ei voida
suorittaa (ellei suorituksessa nimetty ohjelman koko polkua, kuten
/bin/ls).
|
| ROOTPATH |
tämä muuttuja on muuten sama kuin PATH, mutta sen hakemistot
tarkastetaan vain kun pääkäyttäjä antaa komentoja
|
| LDPATH |
tämä muuttuja on kaksoispistein eroteltu lista hakemistoista, joista
dynaaminen linkitin etsii kirjastotiedostoja
|
| MANPATH |
tämä muuttuja on kaksoispistein eroteltu lista hakemistoista, joilta
man-komento etsii ohjesivuja
|
| INFODIR |
Tämä muuttuja on kaksoispistein eroteltu lista hakemistoista, joista
info-komento etsii infosivuja
|
| PAGER |
tämä muuttuja kertoo tiedostojen sisältöjen katselemiseen tarkoitetun
ohjelman (kuten less tai more) täyden hakemistopolun
|
| EDITOR |
tämä muuttuja kertoo tiedostojen sisältöjen muokkaamiseen tarkoitetun
ohjelman (kuten nano tai vi) täyden hakemistopolun
|
| KDEDIRS |
tämä muuttuja on kaksoispistein eroteltu lista hakemistoista, joista löytyy
KDE-keskeistä tietoa.
|
| CONFIG_PROTECT |
Tämä muuttuja on välilyönnein eroteltu lista hakemistoista, joita
Portage ei automaattisesti päivitä
|
| CONFIG_PROTECT_MASK |
Tämä muuttuja on välilyönnein eroteltu lista hakemistoista, jotka
Portage kuitenkin päivittää automaattisesti.
|
Alla esimerkki näiden muuttujien arvoista.
Code Listing 1.1: Esimerkkimäärittelyjä |
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"
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. Muuttujien järjestelmänlaajuinen määrittäminen
Hakemisto /etc/env.d
Näiden muuttujien keskittämiseen Gentoossa on kehitetty hakemisto
/etc/env.d. Tässä hakemistossa on joukko tiedostoja, kuten
esimerkiksi 00basic, 05gcc jne., mitkä sisältävät
muuttujia nimetyn sovelluksen käytettäväksi.
Esimerkiksi gcc:n asennuksessa ebuildi loi tiedoston 05gcc,
joka sisältää seuraavat muuttujat:
Code Listing 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"
|
Muissa Linux-jakeluissa ympäristömuuttujia määritellään tiedostossa
/etc/profile tai muissa paikoissa. Gentoossa taas muuttujien
ylläpito on tehty käyttäjälle (ja Portagelle) helpoksi kun ei tarvitse
kiinnittää huomiota kaikkiin mahdollisiin ympäristömuuttujia sisältäviin
tiedostoihin.
Esimerkiksi gcc:n päivittäminen päivittää myös
tiedoston /etc/env.d/05gcc ilman käyttäjän vuorovaikutusta.
Tästä on hyötyä Portagen lisäksi käyttäjälle. Toisinaan on tarve
asettaa joitain järjestelmänlaajuisia muuttujia. Esimerkkinä käytämme
http_proxyä, sitä varten luodaan uusi tiedosto
(/etc/env.d/99local) johon sisällytetään määritelmä:
Code Listing 2.2: /etc/env.d/99local |
http_proxy="proxy.example.com:8080"
|
Kun käytetään samaa tiedostoa kaikille omille muuttujille, niitä voidaan
kätevästi tarkastella ja muuttaa yhdessä näkymässä.
Skripti nimeltä env-update
Useat tiedostot hakemistossa /etc/env.d määrittelevät
polkumuuttujan PATH. Siinä ei ole mitään virheellistä;
komento etc-update yhdistää moninkertaiset määrittelyt ympäristömuuttujia
päivittäessään, joten pakettien (ja käyttäjien) on helppo lisäillä omia
muuttujiaan välittämättä siitä onko se jo määritetty muualla.
Yhdistely ei koska kaikkia muuttujia, vain seuraavia:
KDEDIRS, PATH, LDPATH,
MANPATH, INFODIR, INFOPATH, ROOTPATH,
CONFIG_PROTECT, CONFIG_PROTECT_MASK, PRELINK_PATH ja
PRELINK_PATH_MASK.
Muista käytetään viimeiseksi mainittua (eli /etc/env.d:stä
aakkosjärjestyksessä poimittuna viimeistä).
env-udpate yhdistää muuttujat hakemiston
/etc/env.d tiedostonimien mukaan numerojärjestyksessä.
Tiedostonimien on alettava kahdella numerolla.
Code Listing 2.3: env-updaten päivitysjärjestys |
00basic 99kde-env 99local
+-------------+----------------+-------------+
PATH="/bin:/usr/bin:/usr/kde/3.2/bin:/usr/local/bin"
|
Komento env-update luo kaikki ympäristömuuttujat tiedostoon
/etc/profile.env (jonka /etc/profile puolestaan
lataa). Se myös hakee tiedot muuttujasta LDPATH ja luo niistä
tiedoston /etc/ld.so.conf, minkä jälkeen suoritetaan
ldconfig dynaamisen linkittäjän tiedoston /etc/ld.so.cache
luomiseksi.
Jos haluat nähdä env-updaten muutokset välittömästi, suorita
seuraava komento ympäristön päivittämiseksi. Ne jotka asensivat Gentoon itse
muistanevat tämän asennusohjeista:
Code Listing 2.4: Ympäristön päivitys |
# env-update && source /etc/profile
|
Note:
Ylläolevat komennot päivittävät vain nykyisen terminaalin, uusien
konsolien ja niiden lapsiprosessien muuttujat. Jos siis X11 on käytössä, pitää
source /etc/profile kirjoittaa jokaiselle avatulle terminaalille tai
uudelleenkäynnistää X, jotta uudet terminaalit saavat muuttujat. Jos käytössä
on kirjautumisohjelma, uudelleenkäynnistys tapahtuu komennolla
/etc/init.d/xdm restart, muutoin pitää kirjautua ulos X:stä ja takaisin
sisään.
|
Important:
Kuoren muuttujia ei voi käyttää osana muita muuttujia, eli tyyppiä
FOO="$BAR" olevat määrittelyt eivät toimi, jossa $BAR
olisi kuoren muuttuja.
|
5.c. Paikallisten muuttujien määrittely
Käyttäjäkohtaiset
Joskus ympäristömuuttujia ei haluta määritellä järjestelmänlaajuisiksi.
Esimerkiksi käyttäjä voisi lisätä hakemiston /home/kayttaja/bin
ja nykyisen hakemiston polkumuuttujaan PATH, mutta tätä eivät varmaankaan
muut käyttäjät halua omiin polkuihinsa. Paikallinen ympäristömuuttuja
määritellään tiedostossa ~/.bashrc tai
~/.bash_profile:
Code Listing 3.1: PATHin paikallinen laajennus tiedostossa ~/.bashrc |
PATH="${PATH}:/home/my_user/bin:"
|
PATH-muuttuja päivittyy seuraavassa sisäänkirjautumisessa.
Istuntokohtaiset
Joskus tarvitaan vieläkin tarkempia määritelmiä. Esimerkiksi käyttäjä voisi
haluta suorittaa komentoja luomastaan väliaikaishakemistosta muuttamatta
tiedostoa ~/.bashrc niiksi hetkiksi kun väliaikaista hakemistoa
käytetään.
Tällöin voidaan määrittää PATH nykyistä istuntoa varten komennolla
export. Silloin PATH-muuttuja säilyttää arvonsa uloskirjautumiseen
saakka.
Code Listing 3.2: Istuntokohtaisen muuttujan määrittely |
# export PATH="${PATH}:/home/my_user/tmp/usr/bin"
|
[ << ]
[ < ]
[ Home ]
[ > ]
[ >> ]
The contents of this document, unless otherwise expressly stated, are licensed under the CC-BY-SA-2.5 license. The Gentoo Name and Logo Usage Guidelines apply.
|