கையேடு:பாகங்கள்/வேளைசெய்தல்/சூழல்மாறிகள்
சூழல் மாறிகள்
முன்னுரை
சூழல் மாறிகள் என்பது ஒன்று அல்லது அதற்கு மேற்பட்ட செயலிகள் பயன்படுத்தும் தகவல்களைக் கொண்ட பெயரிடப்பட்ட பொருளாகும். சூழல் மாறிகளைப் பயன்படுத்துவதன் மூலம் ஒருவர் எளிமையாக ஒன்று அல்லது அதற்கு மேற்பட்ட செயலிகளின் உள்ளமைவுகளை மாற்ற இயலும்.
முக்கியமான எடுத்துக்காட்டுகள்
பின்வரும் அட்டவணை லினக்ஸ் முறைமையால் பயன்படுத்தப்படும் மாறிகள் மற்றும் அவற்றின் பயன்களின் விளக்கம் ஆகியவற்றைப் பட்டியலிடுகிறது. எடுத்துக்காட்டு மதிப்புகள் அட்டவணைக்குப் பின்னர் காட்டப்பட்டுள்ளது.
மாறி | விளக்கம் |
---|---|
PATH | இந்த மாறியானது செயல்படுத்தகு கோப்புகளுக்காக முறைமை பார்க்கும் அடைவுகளின் முக்கால் புள்ளியால் பிரிக்கப்பட்ட பட்டியலைக் கொண்டுள்ளது. செயல்படுத்தகு நிரல்களான ls, rc-update அல்லது emerge ஐ இடும்போது ஒருவேளை இவை பட்டியலிடப்பட்ட அடைவில் இல்லையென்றால், நிரலின் முழு பாதையைக் கொண்ட (/bin/ls போன்ற) கட்டளையாக இடாதவரை முறைமை அதைச் செயல்படுத்தாது. |
ROOTPATH | இந்த மாறி PATH மாறியின் செயலாற்றியை ஒத்தது என்றாலும் இது கட்டளையை வேர்-பயனர் இடும்போது பார்க்க வேண்டிய அடைவுகளை மட்டுமே பட்டியலிடும். |
LDPATH | இந்த மாறியானது திரட்டைத் தேடிக் கண்டுபிடிப்பதற்காக இயங்காற்றலுக்குரிய இணைப்பி பயன்படுத்தும் அடைவுகளின் முக்கால் புள்ளியால் பிரிக்கப்பட்ட பட்டியலைக் கொண்டுள்ளது. |
MANPATH | இந்த மாறியானது, கைமுறை பக்கங்களைத் தேடுவதற்கு man கட்டளை பயன்படுத்தும் அடைவுகளின் முக்கால் புள்ளியால் பிரிக்கப்பட்ட பட்டியலைக் கொண்டுள்ளது. |
INFODIR | இந்த மாறியானது, தகவல் பக்கங்களைத் தேடுவதற்கு info கட்டளை பயன்படுத்தும் அடைவுகளின் முக்கால் புள்ளியால் பிரிக்கப்பட்ட பட்டியலைக் கொண்டுள்ளது. |
PAGER | இந்த மாறியானது கோப்புகளில் உள்ள உள்ளடக்கத்தைப் பட்டியலிடப் பயன்படுத்தப்படும் நிரல்களான less அல்லது more போன்றவற்றின் பாதையைக் கொண்டிருக்கும். |
EDITOR | இந்த மாறியானது கோப்புகளில் உள்ள உள்ளடக்கத்தை மாற்றப் பயன்படுத்தப்படும் நிரல்களான nano அல்லது vi போன்றவற்றின் பாதையைக் கொண்டிருக்கும். |
KDEDIRS | இந்த மாறியானது KDE-சார்ந்த பொருட்களைக் கொண்டுள்ள அடைவுகளின் முக்கால் புள்ளியால் பிரிக்கப்பட்ட பட்டியலைக் கொண்டுள்ளது. |
CONFIG_PROTECT | இந்த மாறியானது இற்றைப்படுத்தலின் போது Portage ஆல் பாதுகாக்கப்பட வேண்டிய அடைவுகளின் இடைவெளியால் பிரிக்கப்பட்ட பட்டியலைக் கொண்டுள்ளது. |
CONFIG_PROTECT_MASK | இந்த மாறியானது இற்றைப்படுத்தலின் போது Portage ஆல் பாதுகாக்கப்படக் கூடாத அடைவுகளின் இடைவெளியால் பிரிக்கப்பட்ட பட்டியலைக் கொண்டுள்ளது. |
கீழே இருப்பது இவ்வகையான மாறிகள் எல்லாவற்றிற்கான எடுத்துக்காட்டு வரையறுத்தலாகும்:
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"
உலகளவில் மாறிகளை வரையறுத்தல்
env.d அடைவு
இவ்வகை மாறிகளின் வரையறுத்தலை மையமாக்கும் விதமாக சென்டூவானது /etc/env.d/ என்னும் அடைவை அறிமுகப்படுத்துகிறது. இந்த அடைவினுள் 00basic, 05gcc முதலிய பல எண்ணிக்கையிலான கோப்புகள் கிடைக்கின்றன. இந்த கோப்புகள் அதன் பெயரில் குறிப்பிட்டுள்ள செயலிக்குத் தேவையான மாறிகளைக் கொண்டுள்ளன.
எடுத்துக்காட்டாக, gcc ஆனது நிறுவப்படும்போது, பின்வரும் மாறிகளின் வரையறுத்தல்களைக் கொண்ட 05gcc என அழைக்கப்படும் கோப்பு ebuild ஆல் உருவாக்கப்படும்:
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"
சூழல் மாறிகளின் வரையறுத்தல்களை மாற்றுதல் அல்லது சேர்த்தல் ஆகியவற்றை /etc/profile அல்லது மற்ற இடத்தில் செய்யுமாறு பயனர்களிடம் மற்ற வழங்கல்கள் கூறலாம். ஆனால் சென்டூ இந்த செயலை எளிமையாக்குவதன் மூலம் சூழல் மாறிகளைக் கொண்டுள்ள பல எண்ணிக்கையிலான கோப்புகளுக்குப் பெரிய அளவில் கவனம் செலுத்தாமல் பயனர்கள் (மற்றும் Portage) சூழல் மாறிகளை எளிமையாகப் பராமரிக்கவும், மேலாண்மை செய்யவும் முடியும்.
எடுத்துக்காட்டாக, gcc ஐ இற்றைப்படுத்தும்போது, எந்தவித பயனர்-ஊடாடலும் கோராமல் /etc/env.d/05gcc கோப்பும் இற்றைப்படுத்தப்படும்.
இதன் மூலம் Portage மட்டுமல்லாமல் பயனரும் பயனடைவர். பயனர்கள் குறிப்பிட்ட சூழல் மாறிகளை முறைமை முழுமைக்கு அமைக்க எப்போதாவது கேட்கப்படலாம். எடுத்துக்காட்டாக நாம் http_proxy மாறியை எடுத்துக்கொள்வோம். நேரடியாக /etc/profile இல் மாற்றங்கள் செய்து குழப்புவதற்குப் பதிலாக இப்போது பயனர்கள் ஒரு கோப்பை (/etc/env.d/99local போன்றவற்றை) உருவாக்கி அதில் இவற்றிற்கான வரையறுத்தல்(களை) இடலாம்:
http_proxy="proxy.server.com:8080"
எல்லா தன்-மேலாண்மை மாறிகளுக்கும் ஒரே கோப்பை பயன்படுத்துவதன் மூலம், பயனர்கள் தாங்களாக வரையறுத்துள்ள மாறிகளை விரைவாக மீள்பார்வையிடலாம்.
env-update
/etc/env.d/ இல் உள்ள பல்வேறு கோப்புகள் PATH மாறியை வரையறுக்கிறது. இது பிழையல்ல: env-update கட்டளை செயல்படுத்தும்போது, சூழல் மாறிகளை இற்றைப்படுத்துவதற்கு முன் பல்வேறு வரையறுத்தல்களை இது பின்னொட்டு செய்யும். இதன்மூலம் ஏற்கனவே உள்ள மதிப்புகளுடன் தலையிடாமல் தொகுப்புகள் (அல்லது பயனர்கள்) தங்கள் சொந்த சூழல் மாறி அமைப்புகளை எளிமையாகச் சேர்க்க முடியும்.
env-update குறுநிரலானது மதிப்புகளை /etc/env.d/ கோப்புகளின் அகர வரிசையில் பின்னொட்டு செய்யும். கோப்பு பெயர்கள் இரண்டு பதின்ம இலக்கத்தில் துவங்க வேண்டும்.
00basic 99kde-env 99local
+-------------+----------------+-------------+
PATH="/bin:/usr/bin:/usr/kde/3.2/bin:/usr/local/bin"
மாறிகளின் ஒன்றிணைத்தல் பின்வரும் மாறிகளைத் தவிர மற்ற இடங்களில் எப்போதும் நடக்காது: ADA_INCLUDE_PATH, ADA_OBJECTS_PATH, CLASSPATH, KDEDIRS, PATH, LDPATH, MANPATH, INFODIR, INFOPATH, ROOTPATH, CONFIG_PROTECT, CONFIG_PROTECT_MASK, PRELINK_PATH, PRELINK_PATH_MASK, PKG_CONFIG_PATH மற்றும் PYTHONPATH. மற்ற எல்லா மாறிகளுக்கும் அண்மையில் வரையறுக்கப்பட்ட மதிப்பு (/etc/env.d/ அடைவில் அகர வரிசையில் உள்ள கோப்புகள்) பயன்படுத்தப்படுகிறது.
மாறி பெயர்களை /etc/env.d/ கோப்பில் உள்ள COLON_SEPARATED அல்லது SPACE_SEPARATED மாறிகளில் சேர்ப்பதன் மூலம் கூடுதல் மாறிகளை இந்த மாறிகள்-ஒன்றிணைத்தல் பட்டியலில் சேர்க்க வாய்ப்புள்ளது.
env-update ஐ செயல்படுத்தும்போது, எல்லா சூழல் மாறிகளையும் இந்த குறுநிரல் உருவாக்கி /etc/profile.env என்னும் இடத்தில் வைக்கும் (இது பின்பு /etc/profile ஆல் பயன்படுத்தப்படும்). மேலும் இது LDPATH மாறியிடமிருந்து தகவல்களைப் பிழிந்தெடுத்து /etc/ld.so.conf ஐ உருவாக்கப் பயன்படுத்தும். இதன் பிறகு, இயங்காற்றலுக்குரிய இணைப்பியால் பயன்படுத்தப்படும் /etc/ld.so.cache ஐ மறுஉருவாக்குவதற்கு ldconfig ஐ இயக்கும்.
env-update இன் விளைவை அதை இயக்கிய பின்பு உடனடியாக காண விரும்பினால், சூழலை இற்றைப்படுத்துவதற்குப் பின்வரும் கட்டளையைச் செயல்படுத்தவும். சென்டூவை தாங்களாக நிறுவிய பயனர்கள் நிறுவல் வழிகாட்டுதல்கள் மூலம் இதை நினைவில் வைத்திருக்க வாய்ப்புள்ளது:
root #
env-update && source /etc/profile
மேலுள்ள கட்டளையானது இப்போதுள்ள முனையம், புதிய முனையம் மற்றும் அதன் குழந்தைகள் ஆகியவற்றில் உள்ள மாறிகளை இற்றைப்படுத்துகிறது. எனவே, பயனர் X11 இல் வேளை செய்து கொண்டிருந்தால், அவர் ஒவ்வொரு முறை புதிய முனையம் திறக்கும்போதும் source /etc/profile ஐ செய்ய வேண்டும் அல்லது எல்லா புதிய முனையங்களிலும் புதிய மாறியை இற்றைப்படுத்த X ஐ மறுதொடக்கம். உள்நுழைவு மேலாளர் பயன்படுத்தப்பட்டால், வேர் பயனராக மாறி /etc/init.d/xdm சேவையை மறுதொடக்கம் செய்வது இன்றியமையாததாகும்.
மற்ற மாறிகளை வரையறுக்கும்போது கூடு மாறிகளைப் பயன்படுத்த வாய்ப்பில்லை. இதன் பொருள்,
FOO="$BAR"
(இதில் $BAR என்பது மற்றொரு மாறியாகும்) போன்றவை தடை செய்யப்பட்டுள்ளது.உள்ளூரளவில் மாறிகளை வரையறுத்தல்
பயனர் சார்ந்தவை
சூழல் மாறியை உலகளவில் வரையறுப்பதற்கான தேவை இல்லாமல் போகலாம். எடுத்துக்காட்டாக, ஒருவர் முறைமையில் உள்ள மற்ற பயனர்களின் PATH மாறியைப் பாதிக்காத வகையில் /home/my_user/bin மற்றும் தற்போது வேளை செய்து கொண்டிருக்கும் அடைவு (பயனர் இப்போது உள்ள அடைவு) ஆகியவற்றை PATH மாறியில் சேர்க்க விரும்பலாம். உள்ளூரளவில் சூழல் மாறியை வரையறுக்க, ~/.bashrc அல்லது ~/.bash_profile ஐ பயன்படுத்தவும்:
# முக்கால் புள்ளியை அடுத்து எந்த அடைவும் இல்லை என்றால் அது இப்போது பணி செய்யும் அடைவாகக் கருதப்படும்
PATH="${PATH}:/home/my_user/bin:"
வெளியேறுதல்/உள்நுழைதலுக்குப் பிறகு, PATH மாறி இற்றைப்படுத்தப்படும்.
அமர்வு சார்ந்தவை
சில நேரம் இன்னும் கண்டிப்பான வரையறுத்தல்கள் கோரப்படுகிறது. எடுத்துக்காட்டாக, இருமங்களை அதற்காகப் பாதையைப் பயன்படுத்தாமல் அல்லது குறுகிய கால தேவைகளுக்காக ~/.bashrc ஐ திருத்தாமல் ஒரு உருவாக்கப்பட்ட தற்காலிக அடைவின் மூலம் பயன்படுத்தப் பயனர் விரும்பலாம்.
இந்த வழக்கில், export கட்டளையைப் பயன்படுத்தி இப்போதைய அமர்வில் PATH மாறியை வரையறுக்கவும். பயனர் வெளியேறாத வரை இந்த தற்காலிக அமைப்புகளை PATH மாறி பயன்படுத்தும்.
root #
export PATH="${PATH}:/home/my_user/tmp/usr/bin"