В началоЕщё раз о главном – жизнь после установки → USE-флаги
Gentoo-doc HOME Пред.: Обновление конфигов.В началоУровень выше: Ещё раз о главном – жизнь после установкиСлед.: Поддержание системы в чистоте и порядке =)

3. USE-флаги

3.1. C флагами я не совсем разобрался... зачем их прописывать, если проги и без них поставятся?
3.2. Т.е. прогу надо будет заново ставить?
3.3. Вот мы дали команду emerge gnome -pv
3.4. Ну вот я и пытаюсь узнать..как определить необходимость?
3.5. Но ведь можно сделать так:
3.6. >понял, а как быть, если прога тянет за собой другие, а у тех свои зависимости?

3.1.

C флагами я не совсем разобрался... зачем их прописывать, если проги и без них поставятся?

Предположим, ставим мы с тобой kopete (IM-клиент). Ты не включаешь никакие флаги и ставишь пакет, а я включаю "irc" и "yahoo". Так вот мой копете будет поддерживать также протоколы irc и yahoo, а твой – не будет.

3.2.

Т.е. прогу надо будет заново ставить?

Да, тебе придётся прописать флаги и пересобрать пакет. USE-флаги нужны для того, чтобы включать некоторый функционал в собираемом пакете.

3.3.

Вот мы дали команду emerge gnome -pv

Там появились строки..красного, синего и желтого цвета...что это все означает?

Жёлтым% выделены изменения в наборе флагов пакета. Флаги, больше недействительные (удалённые) для новой версии пакета будут взяты в скобки, новые (добавленные) флаги, появившиеся для новой версии, будут без скобок.

Красные – включенные флаги.

Синие – соответственно не включенные (идут по минусу).

Зелёные* – флаг был включен в системе после сборки пакета, пакет был собран без этого флага, готов к пересборке с ним.

Например:

[ebuild     UD] app-emulation/wine-0.9.49 [0.9.57]

предлагает понизить версию пакета wine (я ставил тестовую 0.9.57, у которой были доступны новые use-флаги "gecko" и "samba", и которых не будет, если пересобрать пакет в версию 0.9.49).

Флаг "java" я включил в системе только что, и поэтому он подсветился во всех пакетах, где он может использоваться, зелёным цветом.USE-флаги добавляются (включаются) в системе по мере необходимости.

3.4.

Ну вот я и пытаюсь узнать..как определить необходимость?

К примеру, поставил ты систему, чист твой /etc/make.conf, включено только несколько обязательных флагов (прописаны в профиле). Теперь хочешь установить Пакет_А, по-хорошему пишешь:

# emerge <Пакет_А> -pv

и смотришь use-флаги всех пакетов, что будут устанавливаться. Какие флаги тебе кажутся нужными – включаешь (прописываешь). И ещё раз перезапускаешь команду (могут появиться новые зависимости со своими флагами). Процесс повторять до полного удовлетворения =)

Если прописываешь флаги в make.conf – то они будут действовать глобально для всех пакетов, где встретятся. Если в /etc/portage/package.use в формате: категория/пакет флаг [флаг -флаг] (app-misc/mc 7zip -X -gpm -ncurses slang) то тогда эти флаги будут включены только для этого пакета.

Обычно в make.conf находится некоторое количество глобальных флагов (X, kde, gnome, alsa, etc...) и много-много строк в package.use. Так постепенно use-флаги и накапливаются. А если ты сразу пропишешь в make.conf "Х, kde, gnome, samba" и т.д. (думая, что "вот сейчас я пропишу всё что мне надо и забуду про эти флаги"), то установка какого-нибудь mc потянет за собой столько пакетов по зависимостям... что ты будешь совсем не рад =) Причём, есть вероятность, что всё зациклится и выпадет ошибка.

Смотреть, что означает конкретный флаг удобно в другой консоли в ufed.

В make.conf можно прописать дефолтные опции, которые всегда будут ставится после emerge, к примеру, так: EMERGE_DEFAULT_OPTS="--ask --verbose"

Еще стоит отметить, как более правильно распределять флаги между make.conf и package.use. У меня сейчас глобальные флаги, описывающие всю мою систему, в make.conf, а более локальные – относящиеся к конкретным программам – в package.use. Так наверно более удобно. Вообще я как-то стремлюсь сократить число флагов в make.conf.

Полезный пакет:

# emerge ufed – интерактивный ncurses-based редактор use-флагов. В нём флаги можно включать (отключать) и ufed будет прописывать их в /etc/make.conf. Конечно информация о флагах здесь не настолько подробная, как хотелось бы (особенно для новичка), но всё же лучше чем ничего.

3.5.

Но ведь можно сделать так:

# USE="флаг" emerge <пакет>

А при обновлении мира, флаг у этого пакета потеряется, ибо нигде не прописан, то есть при пересборке (обновлении пакета) получится USE="-флаг" emerge <пакет> и пакет потеряет часть функциональности.

3.6.

>понял, а как быть, если прога тянет за собой другие, а у тех свои зависимости?

Смотришь их флаги, включаешь, а они после этого потянут ещё что-нибудь... смотришь теперь и их флаги)) пока не остановится процесс разрастания))

Если не планируется использовать deltup, можно прописать зеркало yandex в make.conf:

GENTOO_MIRRORS="http://mirror.yandex.ru/gentoo-distfiles/ ";

(хотя эта строка и при дельтапе не помешает).

Пред.: Обновление конфигов.В началоУровень выше: Ещё раз о главном – жизнь после установкиСлед.: Поддержание системы в чистоте и порядке =)
В началоЕщё раз о главном – жизнь после установки → USE-флаги