Gentoo Logo

Visszavonások : Ez a dokumentum már nem érvényes, ezért nincs többé karbantartva.


[ << ] [ < ] [ Kezdőlap ] [ > ] [ >> ]


5. Környezeti változók

Tartalom:

5.a. Környezeti Változók?

Mik is ezek

A környezeti változó egy objektum ami információkat tartalmaz egy vagy több alkalmazás számára. Némely felhasználó (és különösképpen a kezdő Linuxosok) egy kissé furcsának és érthetetlennek találják ezt. Akárhogyis, a környezeti változók használatával bárki könnyen megtudja változtatni egy vagy több alkalmazás beállításait.

Fontos Példák

A következő táblázat egy Linux rendszer által használt változók nevét és azok leírásait tartalmazza. A példa értékek a táblázat után találhatóak.

Változó Leírás
PATH Ez a változó egy kettőspontokkal elválasztott jegyzéklistát tartalmaz melyekben a rendszer a futtatható állományokat keresi. Ha beírod egy futtatható állomány nevét (mint ls, rc-update vagy emerge) de ez az állomány nem található a megadott jegyzéklistában, a rendszer nem fogja futtatni (amíg meg nem adod a teljes elérési utat, mint parancsot, például /bin/ls).
ROOTPATH Ez a változó a PATH változóhoz hasonló szerepet tölt be, de ez csak egy olyan jegyzéklistát tartalmaz ami csak rendszergazda által kiadott parancs esetén lesz ellenőrizve.
LDPATH Ez a változó egy kettőspontokkal elválasztott jegyzéklistát tartalmaz melyet a dinamikus linker néz át, hogy megtaláljon egy könyvtárat.
MANPATH Ez a változó egy kettőspontokkal elválasztott jegyzéklistát tartalmaz amelyekben a man parancs kézikönyv oldalakat keres.
INFODIR Ez a változó egy kettőspontokkal elválasztott jegyzéklistát tartalmaz amelyekben az info parancs info oldalakat keres.
PAGER Ez a változó tartalmazza az elérési utat egy programokhoz ami a fájlok tartalmának listázására szolgál (mint less vagy more).
EDITOR Ez a változó tartalmazza az elérési utat egy programokhoz ami a fájlok tartalmának szerkesztésére szolgál (mint nano vagy vi).
KDEDIRS Ez a változó egy kettőspontokkal elválasztott jegyzéklistát tartalmaz ami KDE-specifikus tartalmakat tárol.
CONFIG_PROTECT Ez a változó egy szóköz-határolt jegyzéklistát tartalmaz melyeknek a Portage által védettnek kell lenniük frissítés közben.
CONFIG_PROTECT_MASK Ez a változó egy szóköz-határolt jegyzéklistát tartalmaz melyeknek a Portage által nem kell védettnek lenniük frissítés közben.

Az alábbiakban egy-egy példa található minden változóra:

Kódlista 1.1: Példa definíciók

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. Globális Változók Definiálása

A /etc/env.d jegyzék

A változók definícióinak központosítása érdekében, a Gentoo bevezette a /etc/env.d jegyzéket. Ebben a jegyzékben található számozott fájlok, mint 00basic, 05gcc, stb. a nevükben található alkalmazásokhoz szükséges változókat tárolják.

Például, mikor telepítetted a gcc-t, egy 05gcc nevű fájlt hozott létre az ebuild, ami az alábbi változó definíciókat tárolja:

Kódlista 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"

Más disztribúciók azt mondják, hogy az ilyen környezeti változók módosítását vagy hozzáadását a /etc/profile vagy egyéb helyen kell megtenni. A Gentoo könnyebbé teszi ezt neked (és a Portage számára), hogy kezelhesd és karbantarthasd a környezeti változókat anélkül, hogy különösebb figyelmet fordítanál a számozott fájlokra, amelyek környezeti változókat tartalmazhatnak.

Például, mikor frissíted a gcc-t a /etc/env.d/05gcc is frissül, bármilyen felhasználói beavatkozás szüksége nélkül.

Nem ez az egyetlen előnye a Portage-nek, de egy felhasználónak ez is fontos. Alkalmanként felvetődhet a kérdés, hogy hogyan lehet egyes környezeti változókat az egész rendszerre kiterjedően beállítani. Példaként vegyük a http_proxy változót. A /etc/profile módosítása helyett, most elegendő a egy fájlt létrehozni (/etc/env.d/99local) és a definíció(ka)t beírni:

Kódlista 2.2: /etc/env.d/99local

http_proxy="proxy.server.com:8080"

Minden változód esetén a megfelelő fájl használatával, egy gyors áttekintést nyerhetsz a már megadott változóidról.

Az env-update Parancsfájl

Több fájl is a /etc/env.d jegyzékben definiálja a PATH változót. Ez nem egy hiba: mikor futtatod az env-update-t, hozzáfűzni a többi definíciót mielőtt frissítené a környezeti változókat, így megkönnyíti a csomagok (vagy a felhasználók) számára, hogy hozzáadják a saját környezeti változó beállításaikat anélkül, hogy összeütközésbe kerülnének a már létező értékekkel.

Az env-update parancsfájl hozzáfűzi az értékeket a /etc/env.d jegyzékbeli betűrendben lévő fájlokhoz. A fájlneveknek két decimális számmal kell kezdődniük.

Kódlista 2.3: Használt parancs frissítése env-update-tel

         00basic        99kde-env       99local
     +-------------+----------------+-------------+
PATH="/bin:/usr/bin:/usr/kde/3.2/bin:/usr/local/bin"

A változók összefűzése nem mindig következik be, csak az alábbiaknál: KDEDIRS, PATH, LDPATH, MANPATH, INFODIR, INFOPATH, ROOTPATH, CONFIG_PROTECT, CONFIG_PROTECT_MASK, PRELINK_PATH és PRELINK_PATH_MASK. Minden további változóhoz az utoljára definiált érték ( a /etc/env.d jegyzékbeli betűrendben lévő fájlok ) használatos.

Mikor futtatod a env-update-t, a parancsfájl elkészít minden környezeti változót és elhelyezi ezeket az /etc/profile.env-ben (amelyet a /etc/profile használ ). Valamint kicsomagolja az LDPATH változóban található információkat és felhasználja azokat a /etc/ld.so.conf elkészítéséhez. Ezek után lefuttatja az ldconfig-t, hogy elkészítse a /etc/ld.so.cache fájlt amit a dinamikus linker használ.

Ha megakarod tekinteni az env-update hatását közvetlenül a futása után, futtasd az alábbi parancsot, hogy frissítsd a környezeti változóidat. Azok a felhasználók akik maguk telepítették Gentoo rendszerüket valószínűleg emlékezni fognak erre a telepítési utasításra:

Kódlista 2.4: Környezet frissítése

# env-update && source /etc/profile

Megjegyzés: A fenti parancs nem csinál mást, mint a pillanatnyi terminálon frissíti a környezeti változókat, új konzolokon, és annak gyermekeiben. Így, ha X11-ben dolgozol, minden új terminálba ki kell adnod a source /etc/profile parancsot vagy indítsd újra az X-et ezáltal minden új terminál az új változókat fogja használni. Ha bejelentkezéskezelőt használsz, jelentkezz be rendszergazdaként ( root ) és írd be a /etc/init.d/xdm restart parancsot. Ha nem, ki kell jelentkezned és vissza, hogy az új változó értékeket használatba vedd.

Fontos: Nem tudsz használni egyéb változókat shell változó definiálásánál. Így az olyan dolgok, mint például a VALAMI="$EGYEB" (ahol $EGYEB egy másik változó) vissza lesz utasítva.

5.c. Helyi Változók Definiálása

Felhasználó Specifikus

Nem mindig akarsz globális környezeti változót definiálni. Például, a /home/my_user/bin jegyzéket és a munkajegyzéket (a jegyzék amiben vagy) hozzá akarod adni a PATH változóhoz, de nem akarod, hogy ez a rendszer többi felhasználójának is bele kerüljön a PATH változójába. Ha lokális környezeti változót akarsz definiálni, a ~/.bashrc vagy ~/.bash_profile fájlokat kell használnod:

Kódlista 3.1: PATH kiterjesztése lokális használatra a ~/.bashrc-ben

(Egy kettőspont amit nem követ jegyzéknév, az jelenti az aktuális 
munkajegyzéket)
PATH="${PATH}:/home/my_user/bin:"

Mikor újra bejelentkezel, a PATH változó már a frissített lesz.

Munkamenet Specifikus

Néha szükséged lehet időleges definíciókra. Például, ha binárisokat akarsz használni egy általad készített ideiglenes jegyzékből anélkül, hogy a teljes elérési utat használnád, vagy módosítanád a ~/.bashrc fájt arra a rövid időre amíg szükséged van erre.

Ebben az esetben lehetőséged van csak az adott munkamenetre érvényes PATH változó definiálásra az export parancs használatával. Amíg nem jelentkezel ki a PATH változó az ideiglenes beállításokat fogja használni.

Kódlista 3.2: Munkamenet-specifikus környezeti változó definiálása

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

[ << ] [ < ] [ Kezdőlap ] [ > ] [ >> ]


Nyomtatás

View all

Frissítve 2007. május 18.

Ezen dokumentum eredeti változatának utolsó frissítési dátuma 2013. december 18.

Összefoglaló: A Gentoo-val a környezeti változók kezelése is egyszerű. Ebből a fejezetből megismerheted a leggyakrabban használt változókat és a használatukat.

Sven Vermeulen
Szerző

Grant Goodyear
Szerző

Roy Marples
Szerző

Daniel Robbins
Szerző

Chris Houser
Szerző

Jerry Alexandratos
Szerző

Seemant Kulleen
Gentoo x86 fejlesztő

Tavis Ormandy
Gentoo Alpha fejlesztő

Jason Huebel
Gentoo AMD64 fejlesztő

Guy Martin
Gentoo HPPA fejlesztő

Pieter Van den Abeele
Gentoo PPC fejlesztő

Joe Kallar
Gentoo SPARC fejlesztő

John P. Davis
Szerkesztő

Pierre-Henri Jondot
Szerkesztő

Eric Stockbridge
Szerkesztő

Rajiv Manglani
Szerkesztő

Jungmin Seo
Szerkesztő

Stoyan Zhekov
Szerkesztő

Jared Hudson
Szerkesztő

Colin Morey
Szerkesztő

Jorge Paulo
Szerkesztő

Carl Anderson
Szerkesztő

Jon Portnoy
Szerkesztő

Zack Gilburd
Szerkesztő

Jack Morgan
Szerkesztő

Benny Chuang
Szerkesztő

Erwin
Szerkesztő

Joshua Kinard
Szerkesztő

Tobias Scherbaum
Szerkesztő

Xavier Neys
Szerkesztő

Joshua Saddler
Szerkesztő

Gerald J. Normandin Jr.
Elbíráló

Donnie Berkholz
Elbíráló

Ken Nowack
Elbíráló

Lars Weiler
Közreműködő

Konkoly Katalin
Fordító

Sipos Tibor
Fordító

Nyitrai István
Fordító

Lukács Árpád
Fordító

Lónyai Gergely
Fordító, lektor

Donate to support our development efforts.

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