Gentoo Logo

Kiistö: Tämä käsikirja on vanhentunut eikä sitä enää ylläpidetä.


[ << ] [ < ] [ Etusivu ] [ > ] [ >> ]


5. Ympäristömuuttujat

Sisällysluettelo:

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.

Koodilistaus 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:

Koodilistaus 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ä:

Koodilistaus 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.

Koodilistaus 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:

Koodilistaus 2.4: Ympäristön päivitys

# env-update && source /etc/profile

Huomaa: 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.

Tärkeää: 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:

Koodilistaus 3.1: PATHin paikallinen laajennus tiedostossa ~/.bashrc

(Ylimääräinen kaksoispiste lasketaan viittaukseksi aina nykyiseen
hakemistoon)
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.

Koodilistaus 3.2: Istuntokohtaisen muuttujan määrittely

# export PATH="${PATH}:/home/my_user/tmp/usr/bin"

[ << ] [ < ] [ Etusivu ] [ > ] [ >> ]


Tulostettava muoto

Näytä kaikki

Tämä sivu on viimeksi päivitetty 18. toukokuuta 2007

Tätä käännöstä ei enää ylläpidetä

Tiivistelmä: Gentoossa ympäristömuuttujia voidaan helposti hallita. Tässä kappaleessa kerrotaan miten se tehdään ja kuvataan yleisimmin käytetyt muuttujat.

Sven Vermeulen
Tekijä

Daniel Robbins
Tekijä

Chris Houser
Tekijä

Jerry Alexandratos
Tekijä

Seemant Kulleen
Gentoon x86-kehittäjä

Tavis Ormandy
Gentoon alpha-kehittäjä

Brad House
Gentoon AMD64-kehittäjä

Guy Martin
Gentoon HPPA-kehittäjä

Pieter Van den Abeele
Gentoon PPC-kehittäjä

Joe Kallar
Gentoon SPARC-kehittäjä

John P. Davis
Toimittaja

Pierre-Henri Jondot
Toimittaja

Eric Stockbridge
Toimittaja

Rajiv Manglani
Toimittaja

Jungmin Seo
Toimittaja

Stoyan Zhekov
Toimittaja

Jared Hudson
Toimittaja

Colin Morey
Toimittaja

Jorge Paulo
Toimittaja

Carl Anderson
Toimittaja

Jon Portnoy
Toimittaja

Zack Gilburd
Toimittaja

Jack Morgan
Toimittaja

Benny Chuang
Toimittaja

Erwin
Toimittaja

Joshua Kinard
Toimittaja

Grant Goodyear
Katselmoija

Gerald J. Normandin Jr.
Katselmoija

Donnie Berkholz
Katselmoija

Ken Nowack
Katselmoija

Lars Weiler
Contributor

Flammie Pirinen
Vastuullinen kääntäjä

Jouni Hätinen
Käännöksen laatutarkistaja

Donate to support our development efforts.

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