கையேடு:MIPS/வேளைசெய்தல்/USE
USE கொடிகள் என்றால் என்ன
USE கொடிகளுக்குப் பின்னால் உள்ளக் கருத்து
சென்டூவை நிறுவும்போது, பயனர்கள் அவர்கள் வேளை செய்யும் சூழல்களைச் சார்ந்து தேர்வுகளைச் செய்கின்றனர். சேவையகத்திற்கான அமைவுகள், பணிநிலையத்திற்கான அமைவை விட மாறுபட்டிருக்கும். மேலும் விளையாடுவதற்காகப் பயன்படுத்தப்படும் பணிநிலையம் 3D மீள்தருகைக்கு பயன்படும் பணிநிலையங்களை விட மாறுபட்டதாக இருக்கும்.
என்ன தொகுப்பை நிறுவ வேண்டும் என்பதற்கு மட்டுமல்லாமல் குறிப்பிட்ட தொகுப்பு என்ன தனிச்சிறப்புகளைக் கொண்டிருக்க வேண்டும் என்பதையும் தேர்வு செய்வதற்கும் இது பொருந்தும். OpenGL க்கான தேவை இல்லையென்றால், எதற்காக ஒருவர் அதை நிறுவிப் பராமரிப்பதையும், பெரும்பாலான தொகுப்புகளில் இதன் ஆதரவைச் சேர்த்து உருவாக்குவதையும் கருத வேண்டும்? ஒருவர் KDE ஐ பயன்படுத்த விரும்பவில்லை என்றால், KDE க்கான ஆதரவு இல்லாமலும் தொகுப்புகள் குறையின்றி இயங்கும் என்ற நிலையில் எதற்காக அதைச் சேர்த்துத் தொகுப்பதை அவர் கருத வேண்டும்?
எதை நிறுவ மற்றும் செயல்படுத்த வேண்டும்/தேவையில்லை என முடிவெடுப்பதில் பயனர்களுக்கு உதவுவதன் மூலம், அவர்கள் சூழலை எளிமையான வழியில் குறிப்பிடுவதை சென்டூ விரும்புகிறது. இது பயனர்கள் தங்களுக்கு உண்மையில் என்ன தேவை என்பதை உணர் வைக்கிறது. Portage க்கான செயல்பாடு எளிமையாக்கப்பட்டு, பயனுள்ள முடிவுகளை எடுக்க வழிவகுக்கிறது.
USE கொடியின் வரையறை
USE கொடிகளை உள்ளிடவும். இவ்வகை கொடியானது ஒரு குறிப்பிட்ட கருத்துக்கான ஆதரவு மற்றும் சார்புநிலை தகவல்களை உள்ளடக்கிய ஒரு சிறப்பு சொல்லாகும். குறிப்பிட்ட USE கொடி இயக்கப்பட்டால், தேர்ந்தெடுக்கப்பட்ட சிறப்பு சொல்லுக்கான ஆதரவை முறைமை செயலாட்சியர் விரும்புவதை Portage அறிந்துகொள்ளும். கண்டிப்பாக இது ஒரு தொகுப்பிற்கான சார்புத் தகவலை மாற்றலாம். USE கொடியைப் பொறுத்து, கோரப்பட்ட சார்பு மாற்றங்களை நிறைவேற்ற, இது மேலும் பல சார்புகளை இழுக்க வேண்டியிருக்கும்.
குறிப்பிட்ட இந்த எடுத்துக்காட்டைக் காணவும்: kde
என்னும் USE கொடி USE மாறியில் அமைக்கப்படவில்லையென்றால், KDE க்கான ஆதரவு விரும்பினால் கிடைக்கும் எல்லா தொகுப்புகளும் KDE யின் ஆதரவு இன்றி தொகுக்கப்படும். மேலும், KDE க்கான சார்புநிலை விரும்பினால் கிடைக்கும் எல்லா தொகுப்புகளும் KDE திரட்டுகளின் (சார்புநிலைகளாக) நிறுவல் இல்லாமல் நிறுவப்படும்.
kde
கொடி செயல்படுத்தப்படும்போது தொகுப்புகள் KDE ஆதரவு உடன் தொகுக்கப்பட்டு KDE திரட்டுக்கள் சார்புநிலைகளாக நிறுவப்படும்.
USE கொடிகளை சரியாக வரையறுப்பதன் மூலம் முறைமை மேலாளரின் தேவைக்கு ஏற்ப முறைமையை வடிவமைக்க முடியும்.
USE கொடிகளைப் பயன்படுத்துதல்
நிலையான USE கொடிகளை அறிவித்தல்
எல்லா USE கொடிகளும் USE மாறிக்குள் வரையறுக்கப்படும். பயனர்கள் USE கொடிகளை தேடி தேர்வு செய்வதை எளிமையாக்கும் வகையில் நாங்கள் முன்னிருப்பாக ஒரு USE அமைப்பை அளித்துள்ளோம். இந்த அமைப்பானது பெரும்பாலான சென்டூ பயனர்களால் பயன்படுத்தப்படும் USE கொடிகள் என நாங்கள் கருதிய USE கொடிகளின் திரளாகும். மேலும் இது தேர்ந்தெடுக்கப்பட்ட தனியமைப்பின் ஒரு பாகமான make.defaults கோப்புகளில் வரையறுக்கப்பட்டுள்ளது.
முறைமை கவனிக்கும் தனியமைப்பானது /etc/portage/make.profile குறியீட்டுத்தொடுப்பின் மூலம் சுட்டிக்காட்டப்படுகிறது. ஒவ்வொறு தனியமைப்பும் மற்றொரு தனியமைப்பின் மேல் செயல்படுகிறது. எனவே இவற்றின் கூட்டலை இறுதி விளைவு என கொள்ளலாம். இந்த தனியமைப்புகளுக்கும் மேல் உள்ள தனியமைப்பு அடிப்படை தனியமைப்பு என அழைக்கப்படுகிறது (/var/db/repos/gentoo/profiles/base).
இப்போதைய செயல்பாட்டில் உள்ள USE கொடிகளை (முழுவதுமாக) காண, emerge --info என்னும் கட்டளையைப் பயன்படுத்தவும்:
root #
emerge --info | grep ^USE
USE="a52 aac acpi alsa branding cairo cdr dbus dts ..."
இந்த மாறி ஏற்கனவே பல சிறப்பு சொற்களை கொண்டுள்ளது. ஆகையால் make.defaults கோப்பில் உள்ள USE மாறிகளை உங்கள் தேவைக்காக திருத்த வேண்டாம். இந்த கோப்பில் செய்யப்பட்ட திருத்தங்கள் அனைத்தும் சென்டூ கருவூலம் இற்றைப்படுத்தப்பட்டால் மீண்டும் பழைய நிலைக்கு திருத்தியமைக்கப்படும்.
இந்த முன்னிருப்பு அமைப்பை மாற்ற சிறப்பு சொற்களை USE மாறிக்குள் சேர்க்கவும் அல்லது நீக்கவும். இதை முறைமை முழுமைக்கும் செய்ய /etc/portage/make.conf இனுள் USE மாறியை வரையறுக்கவும். இந்த மாறியில் தேவையான USE கொடிகளை சேர்க்கவோ நீக்கவோ செய்யலாம். USE கொடியை நீக்குவதற்கு அதன் முன் கழித்தல் குறியை (-
) சேர்க்கவும்.
எடுத்துக்காட்டாக, KDE மற்றும் Qt கான ஆதரவை நீக்கி LDAP கான ஆதரவை சேர்க்க /etc/portage/make.conf கோப்பில் USE மாறியை பின்வருமாறு சேர்க்கவும்:
USE="-kde -qt5 ldap"
தனி தொகுப்புகளுக்கு USE கொடிகளை அறிவித்தல்
சில நேரங்களில் பயனர்கள் முறைமை முழுமைக்கும் இல்லாமல் ஒரு (அல்லது ஒன்றிரண்டு) பயன்பாடுகளுக்கு மட்டும் குறிப்பிட்ட USE கொடியை வரையறுக்க விரும்புவார்கள். இதைச் செய்ய, /etc/portage/package.use ஐ திருத்தவும். package.use என்பது பொதுவாக ஒற்றை கோப்பாகும், இருப்பினும் இது குழந்தை கோப்புகள் நிரம்பியுள்ள அடைவாகவும் இருக்கலாம்; இந்த மரபை எவ்வாறு பயன்படுத்துவது என்பது பற்றிய கூடுதல் தகவலுக்கு கீழே உள்ள உதவிக்குறிப்பைப் பார்க்கவும், பின்னர் man 5 portage என்னும் கைமுறை பக்கத்தை பார்க்கவும். பின்வரும் எடுத்துக்காட்டுகள் package.use ஐ ஒற்றைக் கோப்பாக கருதுகிறது.
எடுத்துக்காட்டாக, VLC ஊடக இயக்கி தொகுப்பானது புளூ-ரே ஆதரவை மட்டும் கொண்டிருப்பதற்கு:
media-video/vlc bluray
If package.use ஆனது தனி கோப்பாக இல்லாமல் ஒரு அடைவாக ஏற்கனவே இருந்தால் package.use/ அடைவிற்குள் தொகுப்புகளுக்கான கோப்புகளை உருவாக்குவதன் மூலம் தொகுப்புகளின் USE கொடிகளை திருத்தியமைக்கலாம். கோப்பு பெயரிடல் மரபு எதுவாயினும் அதை பின்பற்றலாம், இருப்பினும் ஓரியல்பான பெயரிடல் மரபை பயன்படுத்துவது நன்மை பயக்கும். இவ்வகை மரபுகளுள் ஒன்று தொகுப்பின் பெயரை தலைப்பாக கொண்டு கோப்பை உருவாக்குவது. எடுத்துக்காட்டாக, media-video/vlc தொகுப்பிற்கு
bluray
USE கொடியை அமைப்பதற்கு பின்வருமாறு செய்யவும்:root #
echo "media-video/vlc bluray" >> /etc/portage/package.use/vlc
இதேபோல் குறிப்பிட்ட ஒரு செயலிக்கு USE கொடியை வெளிப்படையாக முடக்க இயலும். எடுத்துக்காட்டாக PHP இல் bzip2 ஆதரவை முடக்குவதற்கு (make.conf இல் வெளிப்படையாக bzip2 USE கொடி வரையறுக்கப்படுவதால் மற்ற தொகுப்புகளுக்கு ஆதரவு வழங்கப்படும்):
dev-lang/php -bzip2
தற்காலிக USE கொடிகளை அறிவித்தல்
சில நேரங்களில் பயனருக்கு ஒரு USE கொடி குறுகிய காலத்திற்கு மட்டுமே தேவைப்படும். இவ்வாறான சூழலில் /etc/portage/make.conf கோப்பில் USE கொடியை சேர்த்து பின் நீக்குவதற்கு பதிலாக அந்த USE மாறியை சூழல் மாறியாக தூண்டியில் தெரிவிக்கலாம். இந்த செயல் அளிக்கப்பட்ட கட்டளைக்கு மட்டுமே பொருந்தும் என்பதை நினைவில் வைத்து கொள்ளவும். செயலியை மீள்நிறுவல் அல்லது (பயனரின் அளித்த கட்டளை மூலம் வெளிப்படையாகவோ அல்லது முறைமை இற்றைப்படுத்தலின் ஒரு பகுதியாகவோ வரும்) இற்றைப்படுத்தல் செயலை செய்தால் இந்த இடைக்கால USE கொடி வரையறையால் நிகழ்ந்த மாற்றங்கள் அனைத்தும் தவிர்க்கப்பட்டு மீளமைக்கப்படும்.
பின்வரும் எடுத்துக்காட்டில் SeaMonkey தொகுப்பின் நிறுவலின்போது USE மாறியிலிருந்து pulseaudio
மதிப்பை இடைக்காலமாக நீக்கப்படுவதை காணலாம்:
root #
USE="-pulseaudio" emerge www-client/seamonkey
முந்துரிமை
எந்த அமைப்பு USE அமைப்பை காட்டிலும் அதிக முன்னுரிமையை கொண்டுள்ளது என்பதில் ஒரு குறிப்பிட்ட முந்துரிமை உள்ளது. USE அமைப்பின் முந்துரிமை குறைந்த முன்னுரிமையை கொண்டுள்ளது முதலாக பின்வருமாறு:
- தனியமைப்பின் ஒரு பாகமாக கருதப்படும் make.defaults கோப்பில் வரையறுக்கப்பட்டுள்ள முன்னிருப்பு USE அமைப்புகள்
- /etc/portage/make.conf இல் உள்ள பயனர் வரையறுத்துள்ள USE அமைப்புகள்
- /etc/portage/package.use இல் உள்ள பயனர் வரையறுத்துள்ள USE அமைப்புகள்
- சூழல் மாறிகளாக பயனர் வரையறுத்துள்ள USE அமைப்புகள்
Portage கணக்கில் எடுத்துகொள்ளும் இறுதி USE அமைப்புகளை காண emerge --info கட்டளையை இயக்கவும். இது Portage க்கு புலப்படும் எல்லா தொடர்புடைய மாறிகளையும் (USE மாறியையும் சேர்த்து) அதன் இப்போதைய வரையறையுடன் பட்டியலிடும்.
root #
emerge --info
புதிய USE கொடிகளுக்கு முழு முறைமையும் தகவமைத்தல்
USE கொடிகளை மாற்றியமைத்த பின் தேவையான மாற்றங்களை செயல்படுத்த முறைமையை இற்றைப்படுத்த வேண்டும். இதை செய்ய emerge கட்டளையுடன் --newuse
விருப்பத்தேர்வை சேர்த்து இயக்கவும்:
root #
emerge --update --deep --newuse @world
அடுத்ததாக, "பழைய" முறைமையில் நிறுவப்பட்ட முன்னீட்டிற்குறிய சார்புநிலைகள் புதிய USE கொடிகளால் வழக்கொழிந்து போனதால் அவற்றை நீக்க Portage இன் depclean விருப்பத்தேர்வை பயன்படுத்தவும்.
அளிக்கப்பட்ட "வழக்கொழிந்த" தொகுப்புகளின் பட்டியலை ஒன்றிற்கு இருமுறை வழக்கொழிந்த தொகுப்புகளை தவிர்த்து தேவையான தொகுப்புகளை எதுவும் நீக்கப்படும் பட்டியலில் உள்ளதா என்பதை சரிபார்த்து கொள்ளவும். பின்வரும் எடுத்துக்காட்டில் உள்ள கட்டளை depclean விருப்பத்தேர்வில்
--pretend
(-p
) விருப்பத்தேர்வை பயன்படுத்தி வழக்கொழிந்த தொகுப்புகளை நீக்காமல் அவற்றின் பட்டியலை மட்டும் அச்சிட வைக்கும்:
root #
emerge --pretend --depclean
depclean முடிந்தவுடன், emerge ஆனது நீக்கப்பட்டுள்ள தொகுப்புகளால் அளிக்கப்படும் பகிர்ந்தளிக்கப்பட்ட பொருட்களோடு இயங்காற்றலால் இணைக்கப்பட்டுள்ள செயலிகளை மீள்உருவாக்க அறிவுறுத்தும். செயலி முறிவுகளை தவிர்ப்பதற்காக இந்த செயலை செய்யும் வரை தேவையான திரட்டுகளை Portage பாதுகாத்து வைத்திருக்கும். மேலும் இது எதை மீள்உருவாக்கம் செய்ய வேண்டும் என்பதை preserved-rebuild
கணத்தில் சேமித்து வைத்திருக்கும். தேவையான தொகுப்புகளை மீள்உருவாக்க இதை இயக்கவும்:
root #
emerge @preserved-rebuild
இவை அனைத்தும் முடிந்ததும் முறைமை புதிய USE கொடி அமைப்புகளை பயன்படுத்த தொடங்கிவிடும்.
தொகுப்பு சார்ந்த USE கொடிகள்
கிடைக்கும் USE கொடிகளைப் பார்வையிடல்
மீண்டும் நாம் seamonkey எடுத்துக்காட்டை எடுத்து கொள்வோம்: இந்த தொகுப்பில் எந்த USE கொடிகளை எல்லாம் கிடைக்க பெறுகிறது என்பதை அறிந்து கொள்வதற்கு emerge கட்டளையை --pretend
மற்றும் --verbose
விருப்பத்தேர்வோடு சேர்த்து இடவும்:
root #
emerge --pretend --verbose www-client/seamonkey
These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild N ] www-client/seamonkey-2.48_beta1::gentoo USE="calendar chatzilla crypt dbus gmp-autoupdate ipc jemalloc pulseaudio roaming skia startup-notification -custom-cflags -custom-optimization -debug -gtk3 -jack -minimal (-neon) (-selinux) (-system-cairo) -system-harfbuzz -system-icu -system-jpeg -system-libevent -system-libvpx -system-sqlite {-test} -wifi" L10N="-ca -cs -de -en-GB -es-AR -es-ES -fi -fr -gl -hu -it -ja -lt -nb -nl -pl -pt-PT -ru -sk -sv -tr -uk -zh-CN -zh-TW" 216,860 KiB Total: 1 package (1 new), Size of downloads: 216,860 KiB
இந்த செயலை emerge மட்டுமே செய்யும் என்றில்லை. இச்செயலுக்காகவே தனித்துவமாக வடிவமைக்கப்பட்ட equery கட்டளையானது app-portage/gentoolkit தொகுப்பின் மூலம் கிடைக்கும். இது தொகுப்பு தகவல்களை அளிக்கும் ஆற்றல் பெற்றது
root #
emerge --ask app-portage/gentoolkit
இப்போது குறிப்பிட்ட தொகுப்பின் USE கொடிகளை காண்பதற்கு equery ஐ uses
மதிப்புரு உடன் சேர்த்து இயக்கவும். எடுத்துக்காட்டாக, app-portage/portage-utils தொகுப்பின் USE கொடிகளை காண:
user $
equery --nocolor uses =app-portage/portage-utils-0.93.3
[ Legend : U - final flag setting for installation] [ : I - package is installed with flag ] [ Colors : set, unset ] * Found these USE flags for app-portage/portage-utils-0.93.3: U I + + nls : Add Native Language Support (using gettext - GNU locale utilities) + + openmp : Build support for the OpenMP (support parallel computing), requires >=sys-devel/gcc-4.2 built with USE="openmp" + + qmanifest : Build qmanifest applet, this adds additional dependencies for GPG, OpenSSL and BLAKE2B hashing + + qtegrity : Build qtegrity applet, this adds additional dependencies for OpenSSL - - static : !!do not set this during bootstrap!! Causes binaries to be statically linked instead of dynamically
REQUIRED_USE முன்னீடுகளை நிறைவேற்றல்
சில ebuild கள் சரியாக வேலை செய்வதற்கு USE கொடிகளின் சில சேர்க்கைகள் தேவைப்படுகின்றன அல்லது தடைசெய்யப்படுகின்றன. இது REQUIRED_USE கோவையில் வைக்கப்பட்டுள்ள முன்னீடுகளின் தொகுப்பின் மூலம் வெளிப்படுத்தப்படுகிறது. இந்த முன்னீடுகள் அனைத்து பண்புகளும் சார்புகளும் நிறைவடைவதையும், உருவாக்கம் வெற்றியடைந்து எதிர்பார்த்தபடி செயல்படுவதையும் உறுதி செய்கிறது. இவற்றில் ஏதேனும் நிறைவு செய்யப்படாவிட்டால், emerge உங்களை எச்சரித்து, சிக்கலைச் சரிசெய்யும்படி கேட்கும்.
எடுத்துக்காட்டு | விளக்கம் |
---|---|
REQUIRED_USE="foo? ( bar )"
|
foo அமைக்கப்பட்டிருந்தால், bar ஐ அமைக்க வேண்டும்.
|
REQUIRED_USE="foo? ( !bar )"
|
foo அமைக்கப்பட்டிருந்தால், bar ஐ அமைக்கக் கூடாது.
|
REQUIRED_USE="foo? ( || ( bar baz ) )"
|
foo அமைக்கப்பட்டிருந்தால், bar அல்லது baz ஐ அமைக்க வேண்டும்.
|
REQUIRED_USE="^^ ( foo bar baz )"
|
foo bar அல்லது baz இல் சரியாக ஏதாவது ஒன்றை அமைக்க வேண்டும்.
|
REQUIRED_USE="|| ( foo bar baz )"
|
foo bar அல்லது baz இல் குறைந்தது ஒன்றையாவது அமைக்க வேண்டும்.
|
REQUIRED_USE="?? ( foo bar baz )"
|
foo bar அல்லது baz இல் ஒன்றிற்கு மேல் அமைக்கக் கூடாது.
|