Avertisment :
Acest manual a fost înlocuit cu o versiune mai nouă şi nu mai este întreţinut.
|
[ << ]
[ < ]
[ Acasă ]
[ > ]
[ >> ]
5. Variabile de Mediu
Conţinut:
5.a. Variabile de Mediu?
Ce sunt ele
O variabilă de mediu este un obiect cu nume propriu, care conţine informaţii
folosite de una sau mai multe aplicaţii. Mulţi utilizatori (în special cei noi
sistemului Linux) consideră asta ca fiind un pic cam ciudat, sau chiar de
nestăpânit. Acest concept este greşit: folosind o variabilă de mediu, se
poate schimba cu uşurinţă configuraţia uneia sau mai multor aplicaţii.
Example Importante
Următorul tabel listează un număr de variabile folosite de sistemul Linux şi
descrie modul lor de folosire. Ca exemplu, sunt prezentate câteva valori pentru
aceste variabile după tabel.
| Variabilă |
Descriere |
| PATH |
Această variabilă conţine o listă de directoare, separate prin virgulă,
unde sistemul dumneavoastră caută fişierele executabile. Dacă introduceţi
numele unui executabil (cum ar fi ls, rc-update sau
emerge) dar acesta nu se află într-un director specificat, sistemul
dumneavoastră nu-l va executa (decât dacă introduceţi locaţia completă,
precum /bin/ls).
|
| ROOTPATH |
Această variabilă este asemănătoare comenzii PATH, doar că listează
directoarele ce trebuie verificate atunci când user-ul 'root' introduce o
comandă.
|
| LDPATH |
Această variabilă conţine o listă de directoare, separate prin virgulă,
unde linker-ul dinamic caută pentru a găsi o librărie.
|
| MANPATH |
Această variabilă conţine o listă de directoare, separate prin virgulă,
unde comanda man caută paginile de manual
|
| INFODIR |
Această variabilă conţine o listă de directoare, separate prin virgulă,
unde comanda info caută paginile info.
|
| PAGER |
Această variabilă conţine calea către programul folosit pentru a lista
conţinutul fişierelor (cum ar fi less sau more)
|
| EDITOR |
Această variabilă conţine calea către programul folosit pentru a schimba
conţinutul fişierelor (cum ar fi nano sau vi)
|
| KDEDIRS |
Această variabilă conţine o listă de directoare, separate prin virgulă, ce
conţin materiale specifice KDE.
|
| CLASSPATH |
Această variabilă conţine o listă de directoare, separate prin virgulă, ce
conţin clase Java.
|
| CONFIG_PROTECT |
Această variabilă conţine o listă delimitată de caracterul spaţiu a
directoarelor ce trebuie protejate de Portage în timpul actualizărilor.
|
| CONFIG_PROTECT_MASK |
Această variabilă conţine o listă delimitată de caracterul spaţiu a
directoarelor ce nu trebuie protejate de Portage în timpul actulizărilor.
|
Mai jos veţi găsi un exemplu de definire pentru toate variabilele:
Cod 1.1: Definiţii exemplu |
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. Definirea Variabilelor Globale
Directorul /etc/env.d
Pentru a centraliza definiţiile acestor variabile, Gentoo introduce directorul
/etc/env.d. În acest director veţi găsi unele fişiere, precum
00basic, 05gcc, etc. care conţin variabilele necesare
pentru aplicaţiile menţionate în nume.
De exemplu, când aţi instalat gcc, un fişier numit 05gcc a
fost creat de către ebuild şi conţine definiţiile următoarelor variabile:
Cod 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"
|
Alte distribuţii vă spun să schimbaţi sau să definiţi astfel de variabile de
mediu în /etc/profile sau alte locaţii. Gentoo, pe de altă parte,
uşurează (atât pentru dumneavoastră cât şi pentru portage) mentenanţa acestor
variabile fără a trebui să acordaţi atenţie fişierelor numeroase ce pot conţine
variabile de mediu.
De exemplu, când gcc este actualizat, fişierul
/etc/env.d/05gcc este actualizat fără a necesita interacţiunea cu
utilizatorul.
Acesta nu este un beneficiu numai pentru Portage, dar şi pentru dumneavoastră,
ca utilizator. Ocazional, este posibil să vi se ceară să setaţi o anumită
variabilă de mediu globală pentru tot sistemul. Ca exemplu, luăm variabila
http_proxy. În loc să vă încurcaţi cu /etc/profile, puteţi
crea un fişier nou (/etc/env.d/99local) unde să definiţi
variabilele de care aveţi nevoie:
Cod 2.2: /etc/env.d/99local |
http_proxy="proxy.server.com:8080"
|
Prin folosirea unui singur fişier în care păstraţi toate variabilele
dumneavoastră, puteţi avea acces rapid la variabilele definite de
dumneavoastră.
Script-ul env-update
Mai multe fişiere din /etc/env.d definesc variabila PATH.
Aceasta nu este greşit: când rulaţi env-update, va adăuga un număr de
definiţii înainte de a actualizarea variabilele de mediu, facilitând pachetelor
(sau utilizatorilor) adăugarea propriilor variabile fără alterarea valorilor
deja existente.
Script-ul env-update va adăuga valorile în ordine alfabetică, conform
fişierelor din /etc/env.d. Fişierele trebuie să înceapă cu două
cifre zecimale.
Cod 2.3: Ordinea actualizării utilizată de env-update |
00basic 99kde-env 99local
+-------------+----------------+-------------+
PATH="/bin:/usr/bin:/usr/kde/3.2/bin:/usr/local/bin"
|
Concatenarea variabilelor nu se întâmplă în toate cazurile, ci doar pentru
următoarele variabile: KDEDIRS, PATH, CLASSPATH,
LDPATH, MANPATH, INFODIR, INFOPATH,
ROOTPATH, CONFIG_PROTECT, CONFIG_PROTECT_MASK,
PRELINK_PATH şi PRELINK_PATH_MASK. Pentru toate celelalte
variabile, ultima valoare definită (în ordinea alfabetică a fişierelor din
/etc/env.d) este cea utilizată.
Când rulaţi env-update, script-ul va genera toate variabilele de mediu,
şi le va plasa în /etc/profile.env (care este utilizat de
/etc/profile). De asemenea, va extrage informaţiile din variabila
LDPATH şi le va folosi pentru a crea
fişierul/etc/ld.so.conf. Apoi, va rula ldconfig pentru a
recrea /etc/ld.so.cache, folosit de linker-ul dinamic.
Dacă doriţi să observaţi consecinţele env-update imediat după ce îl
rulaţi, executaţi următoarea comandă pentru a actualiza mediul. Utilizatorii
care au instalat ei înşişi Gentoo, îşi vor aminti de aceste instrucţiuni din
timpul instalării:
Cod 2.4: Actualizarea mediului |
# env-update && source /etc/profile
|
Notă:
Comanda de mai sus actualizează doar variabilele din terminalul curent,
consolele noi şi procesele fiu ale acestora. Astfel, dacă lucraţi
în X11, va trebui, fie să tastaţi source /etc/profile în fiecare
terminal nou pe care-l deschideţi, sau să reporniţi aplicaţia X pentru ca
toate terminalele să încarce noile variabile. Dacă utilizaţi un manager
de login, trebuie să tastaţi ca root /etc/init.d/xdm restart. Dacă
nu, va trebui să efectuaţi logout şi apoi să vă autentificaţi din nou
pentru ca X să poată crea procese fiu cu valorile noilor variabile.
|
5.c. Definirea Variabilelor Local
Specific User-ilor
Nu întotdeauna este dorită definirea globală a variabilelor de mediu. De
exemplu, s-ar putea să doriţi să adăugaţi /home/my_user/bin,
precum şi directorul curent de lucru (directorul în care vă aflaţi) la
variabila PATH, dar nu doriţi ca toţi user-ii sistemului să o aibă
definită în variabila lor PATH. Dacă doriţi să definiţi o variabilă de
mediu local trebuie să folosiţi ~/.bashrc sau
~/.bash_profile:
Cod 3.1: Extinderea variabilei PATH pentru folosire locală în ~/.bashrc |
PATH="${PATH}:/home/my_user/bin:"
|
Când efectuaţi din nou acţiunea de login, variabila dumneavoastră PATH
va fi actualizată.
Specific Sesiunii
Uneori, sunt necesare definiţii şi mai stricte. Poate doriţi să puteţi folosi
executabilele dintr-un director temporar, creat de dumneavoastră (fără a folosi
calea către executabile sau prin editarea ~/.bashrc) pentru timpul
scurt în care aveţi nevoie de ele.
În acest caz, puteţi defini variabila PATH în sesiunea curentă folosind
comanda export. Cât timp nu efectuaţi log out, variabila PATH va
folosi aceste setări temporare.
Cod 3.2: Definirea unei variabile de mediu specifice sesiunii |
# export PATH="${PATH}:/home/my_user/tmp/usr/bin"
|
[ << ]
[ < ]
[ Acasă ]
[ > ]
[ >> ]
Conţinutul acestui document este publicat sub licenţa Creative Commons -
Attribution / Share Alike.
|