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 |
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 ]
[ > ]
[ >> ]
Ez a dokumentum a Creative Commons -
Attribution / Share Alike licensz védelme alatt áll.
|