[Solved] Где находятся глобальные USE флаги и где локальные?

Хэндбук только сообщил о их важности. Но как с ними обращаться и более как с ними работать.. на этом текст заканчивается и вопрос мой тоже.
Единственное что, поискав в интернете я нашел что одни, глобальные используются уже позже, но надо сначала использовать
может быть имелось в виду package.use локальным. Хотя я могу быть не прав (и это может быть make.defaults моего профиля, который я тоже не могу найти). Иногда после прочтения документации остаётся только смутная дымка... как же уже приступить к работе. Ибо примеры редко случаются.

...

Ну, профили лежат тут: /usr/portage/profiles/

Заклинание eselect profile list выдаст подобное:

Available profile symlink targets:
  [1]   default/linux/x86/10.0
  [2]   default/linux/x86/10.0/selinux
  [3]   default/linux/x86/10.0/desktop *
  [4]   default/linux/x86/10.0/desktop/gnome
  [5]   default/linux/x86/10.0/desktop/kde
  [6]   default/linux/x86/10.0/developer
  [7]   default/linux/x86/10.0/server
  [8]   hardened/linux/x86
  [9]   hardened/linux/x86/selinux

В каталоге профилей все глобальные определения. Далее.

Тут /usr/portage находятся каталоги ПО, названные соответственно категории ПО. Заходим, к примеру, в /usr/portage/app-admin и видим уже список ПО, относимого к данной категории. Далее заходим в, например, /usr/portage/app-admin/apachetop и видим там *.ebuild файлы. В этих файлах указана информация о конкретных пакетах. Это, видимо, вторая вниз по иерархии ступень инициализации переменных. Но лезть в глобальные настройки профиля, редактировать USE в ebuild (если нет острой необходимости) ни к чему. Ведь есть файл /etc/make.conf и там мы выставляем свои USE, keywords, флаги компиляции и проч. и проч. Этот файл - еще одна ступень вниз по иерархической лестнице. Но есть еще вариант. Папка /etc/portage а в ней файл package.use где мы моем прописать для каждого пакета USE флаги. Например
dev-haskell/cgi -doc -profile
Нну, или с указанием версии
=dev-haskell/cgi-100500 -doc -profile
или
>=dev-haskell/cgi-100500 -doc -profile
или
<=dev-haskell/cgi-100500 -doc -profile
(ну, короче, обозначения "равно", "больше", "меньше" и т. д. везде одни).
Кстати, тут же можно управлять маскировками, создав в папке /etc/portage файл package.mask, кейвордами в файле package.keywords и так далее.

И казалось бы, мы добрались до последней ступени иерархии этих треклятых USE флагов... Ан, нет! Колдуем в консоли при установке что-то типа:

USE="-doc" emerge vlc

И VLC соберется без doc. Это самый локальный метод. Кстати, при последующей пересборке эти USE не сохранятся, нужно помнить.

Скажу в заключении, что в 99% (статистика собрана британскими учёными) случаев пользователь оперирует (далее по иерархии сверху вниз):
1) /etc/make.conf
2) /etc/portage/package.*
3) USE="" emerge

Поправьте, если где ошибся.

UPD: Флаги, коротые установлены для определенного пакета, можно посмотреть так:

emerge -pv vlc

«Зрячий, незрячий, а если не смотришь - всё равно не увидишь» - Затойчи.

несмотря на то, что в посте

несмотря на то, что в посте есть и толковая информация, пожалуйста не путайте человека:

глобальные флаги это флаги имеющие общий функционал для > 5 приложений и описанные в profiles/use.desc
локальные относящиеся к конкретному приложению и описанные в метадате.

[1] http://devmanual.gentoo.org/general-concepts/use-flags/index.html

...

Угу, спасибо, почитаю.

«Зрячий, незрячий, а если не смотришь - всё равно не увидишь» - Затойчи.

qnikst

qnikst написал(а):
глобальные флаги это флаги имеющие общий функционал для > 5 приложений

Почему именно 5, а не 10 и не 100. Если флаг встречается более чем у одного ebuild`а то он уже глобальный. Если флаг встречается только у одного ebuild`а то он локальный.

profiles/use.desc - содержит список глобальных флагов.
profiles/use.local.desc - содержит список локальных флагов.

а давай ты пойдёшь почитаешь

а давай ты пойдёшь почитаешь devmanual и вернёшься сюда и сам ответишь на свой вопрос, хорошо?

Цитата: Почему именно 5, а не

Цитата:
Почему именно 5, а не 10 и не 100?

Судя по тому, что это документация для разработчиков Gentoo, логично предположить, что данное число принято по соглашению между разработчиками

Нейтральность - высшее достижение сознания!

/etc/portage

А ещё стоит заметить, что /etc/portage/* может иметь внутри себя не только файлы, но и директории. И более того, директории могут "ветвиться" ещё дальше.
Например я часто использую такой хак:
/etc/portage/package.use — директория. В ней лежит симлинк _$OVERLAYNAME_overlay, который смотрит в /var/lib/layman/$OVERLAYNAME/Documentation/package.use, в котором находятся каталоги категорий, в которых уже файлы с назвниями пакетов, содержащие в себе уже то, что надо.
Тоже самое и для keywords, mask, unpask, profile/provided и env ;)

...

А у меня это выглядит так:

$ ls -l /etc/portage
drwxr-xr-x 2 root root 4096 июня  10 09:45 bin
drwxr-xr-x 2 root root 4096 июня  20 12:42 package.keywords
drwxr-xr-x 2 root root 4096 февр.  8 12:56 package.mask
drwxr-xr-x 2 root root 4096 марта 19 16:45 package.unmask
drwxr-xr-x 2 root root 4096 июня   1 12:39 package.use
drwxr-xr-x 2 root root 4096 июня  10 09:45 postsync.d
drwxr-xr-x 3 root root 4096 февр. 12 15:55 savedconfig

А после:

$ ls -l /etc/portage/package.use
-rw-r--r-- 1 root root   54 окт.  25  2011 app-accessibility
-rw-r--r-- 1 root root  140 янв.  18 12:38 app-admin
-rw-r--r-- 1 root root   66 окт.  25  2011 app-antivirus
...
...
...
-rw-r--r-- 1 root root  191 июня   3 01:52 x11-wm
-rw-r--r-- 1 root root    0 нояб. 14  2011 xfce-base
-rw-r--r-- 1 root root   53 янв.  19 00:31 xfce-extra

И управляю всем этим делом при помощи простенького быдлоскрипта на bash.

«Зрячий, незрячий, а если не смотришь - всё равно не увидишь» - Затойчи.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".