Наръчник PPC

Какво представляват USE флаговете

Идеята зад USE флаговете

Когато инсталират Gentoo (или която и да е друга дистрибуция или дори операционна система като цяло), потребителите правят избор въз основа на средата, в която работят. Настройката за сървъра се различава от настройката за работния плот. Системата на играта се различава от системата за 3D изобразяване.

Това се отнася не само кои пакети трябва да бъдат инсталирани, но и кои функции в определени пакети трябва да се поддържат. Ако няма нужда от OpenGL, защо някой да инсталира и поддържа OpenGL и да предоставя OpenGL поддръжка в толкова много други пакети? Ако някой не иска да използва KDE, защо да си прави труда да компилира пакети с поддръжка на KDE, ако ще работи без нея?

За да помогне на потребителите да решат какво да инсталират/активират и какво не, Gentoo иска да даде на потребителя лесен начин да опише неговата/нейната среда. Този метод ще помогне на потребителя да реши от какво наистина се нуждае, а също така ще улесни работата с Portage, което ще вземе по-полезни решения.

Определение на флага USE

Нека да разгледаме флаговете на USE. Този флаг е ключова дума, която реализира информация за поддръжка и зависимост за определена концепция. Като дефинира флаг на USE, Portage ще знае, че поддържа тази ключова дума. Разбира се, това се отразява и на подробностите за зависимостта на пакета.

Нека да разгледаме конкретен пример: ключовата дума kde. Ако няма такава ключова дума в променливата USE, всички пакети, за които поддръжката на KDE не е задължителна, ще бъдат компилирани. без Поддръжка на KDE. Всички пакети, които имат незадължителна KDE зависимост, ще бъдат инсталирани без Инсталиране на KDE библиотеки (като зависимости). Ако ключовата дума kde е дефинирана, тези пакети ще бъдат компилирани с Поддръжка на KDE и KDE библиотеки ще бъде инсталиран като зависимост.

С правилната дефиниция на ключовите думи системата може да бъде адаптирана към нуждите на потребителите.

Какво представляват USE флаговете

Има два типа USE флагове: глобален и локален.

  • Глобален USE флаговете се използват от много пакети и работят в цялата система. Това е, което повечето хора наричат ​​USE флагове. Списък с наличните глобални USE флагове може да се намери на главната страница или локално във файла /usr/portage/profiles/use.desc .
  • Местен USE флаговете се използват от определен пакет за определяне на параметрите на самия пакет. Списък с наличните локални USE флагове може да се намери на главната страница на сайта или локално във файла /usr/portage/profiles/use.local.desc .

Използване на USE флагове

Деклариране на постоянни USE флагове

Както бе споменато по-рано, всички USE флагове са декларирани в променливата USE. За да улесним потребителите да намират и избират USE флагове, ние вече предоставяме някои настройки по подразбиране за USE флаг. Тези настройки са колекция от USE флагове, които според нас често се използват от потребителите на Gentoo. Тези настройки са декларирани във файловете make.defaults, които принадлежат към избрания профил.

Профилът, на който се позовава системата, се чете от символната връзка /etc/portage/make.profile. Всеки профил работи върху други профили, така че крайният резултат в крайна сметка ще бъде сумата от всички профили. Най-отгоре е основният профил (/ usr/portage/profiles/base).

Както можете да видите, тази променлива вече съдържа много ключови думи. Не променяйте никакви файлове make.defaults, за да персонализирате променливата USE за вашите лични нужди: промените в тези файлове ще бъдат отменени при следващото актуализиране на хранилището на Gentoo!

За да промените тези настройки по подразбиране, добавете или премахнете ключови думи към/от променливата USE. Това може да стане глобално чрез дефиниране на променливата USE във файла /etc/portage/make.conf. В тази променлива можете да добавите допълнителни необходими USE флагове или да премахнете USE fdags, които вече не са необходими. За да премахнете, трябва да добавите представка под формата на знак минус (-) преди ключовата дума.

Например, за да деактивирате поддръжката на KDE и Qt, но да разрешите поддръжката на LDAP, в /etc/portage/make.conf трябва да бъдат дефинирани следните USE флагове:

Деклариране на USE флагове за отделни пакети

Понякога потребителите трябва да дефинират USE флаг за едно (или повече) приложения, а не за цялата система. За да постигнете това, редактирайте /etc/portage/package.use. package.use обикновено е един файл, но все пак може да бъде директория; вижте върха по-долу и man 5 portage за повече подробности. Следващият пример предполага, че package.use е единственият файл.

Например, за да активирате поддръжката на Blu-ray само в пакета VLC:

Съвети
Ако package.use съществува вече като a директория (за разлика от един файл), пакетите могат да имат модифицирани локални USE флагове, като просто създават файлове под директорията package.use /. Всяка конвенция за именуване на файлове може да работи, но е разумно да се приложи съгласувана схема за именуване. Една конвенция е просто да използвате името на пакета като заглавие на дъщерния файл. Например, локално задаване на флаг USE на bluray за пакета media-video/vlc може да се извърши, както следва:

По същия начин можете да деактивирате използването на USE флагове за конкретно приложение. Например, за да деактивирате поддръжката на bzip2 в PHP (но оставете тази поддръжка за всички останали пакети, благодарение на дефиницията на флаг USE в make.conf):

Деклариране на временни USE флагове

Понякога потребителите трябва да зададат флаг USE за кратко време. Вместо да редактирате файла /etc/portage/make.conf два пъти (за да направите промените и да ги отхвърлите в променливата USE), просто дефинирайте променливата USE като променлива на околната среда. Не забравяйте, че тези настройки ще бъдат приложени само към въведената команда; прекомпилирането или актуализирането на това приложение (изрично или като част от системна актуализация) ще отмени промените, направени чрез временна промяна на дефинициите на USE флаг.

Следващият пример временно премахва pulseaudio от променливата USE по време на инсталирането на SeaMonkey:

Старшинство

Разбира се, има приоритет, при който настройките да заменят другите USE настройки. Последователност за USE настройки, сортирани по приоритет (първо с по-нисък приоритет):

  1. настройките по подразбиране за USE са декларирани в make.defaults, част от избрания профил
  2. потребителски дефинирани USE настройки в /etc/portage/make.conf
  3. потребителски дефинирани USE настройки в /etc/portage/package.use
  4. потребителски дефинирани USE настройки като променлива на средата.

За да покажете окончателните настройки, както ги вижда Portage, стартирайте emerge --info. Това ще покаже списък на съответните променливи (включително USE променливи) с текущите им стойности, както се вижда от Portage.

Адаптиране на цялата система към новите флагове на USE

След промяна на USE флаговете, системата трябва да бъде актуализирана, за да влязат в сила промените. За да направите това, използвайте опцията --newuse за emerge:

След това изпълнете Portage Dependency Cleanup (depclean), за да премахнете условни зависимости, които са присъствали в „старата“ система, но сега са оттеглени с нови USE флагове.

След като depclean завърши, стартирайте revdep-rebuild, за да възстановите приложенията, които динамично ще свържат споделените обекти, предварително предоставени от премахваните пакети. revdep-rebuild е част от пакета app-portage/gentoolkit; не забравяйте да го инсталирате първо.

След като всичко това приключи, системата ще бъде конфигурирана в съответствие с новите настройки на флаговете USE.

Специални пакети USE флагове

Преглед на наличните USE флагове

Вземете seamonkey като пример: какви USE флагове използва? За да намерим това, ще използваме emerge с опциите --pretend и --verbose:

emerge не е една помощна програма, която може да се използва за това. Всъщност има специална програма за получаване на информация за пакет, наречен equery, който се намира в пакета app-portage/gentoolkit.

Сега изпълнете equery с аргумент използва, за да видите флаговете на USE за конкретен пакет. Например за пакета gnumeric:

Удовлетворяване на условията на REQUIRED_USE

Някои ebuild-и изискват или забраняват определени комбинации от USE флагове, за да може всичко да работи според очакванията. Това се изразява чрез набор от условия, които са поставени в израза REQUIRED_USE. Такива условия гарантират, че всички функции и зависимости са изпълнени и компилацията ще продължи правилно и както се очаква. Ако някое от тези изявления се провали, emerge ще ви предупреди и ще ви помоли да разрешите проблема.

Някои примери за изрази REQUIRED_USE са дадени по-долу: