Gentoo.USE-флаги.

Gentoo.USE-флаги.


Одна из сложностей, с которой приходится столкнуться начинающему пользователю Gentoo – это USE-флаги. Откуда их брать? Как прописывать? Где взять готовые списки, чтобы все было хорошо?

Дело в том, что USE-флаги задаются каждым пользователем отдельно, именно под себя. Потому найти каких-то ни было универсальных списков данных флагов просто не возможно. Но не надо отчаиваться! Есть несколько простых правил, выполняя которые мы сводим использование USE-флагов к нечто простому.

Итак, что это за правила?

Нужно помнить, что существует минимум два конфигурационных файла, отвечающих за USE-флаги. Во-первых, это /etc/make.conf, в котором задаются флаги, действующие на все устанавливаемые пакеты. И во-вторых, это вручную создаваемый файл /etc/portage/packages.use, в котором указываются отдельные пакеты с соответствующими флагами. Пример файла /etc/portage/packages.use:

www-client/w3m -gtk lynxkeymap 
net-im/pidgin -networkmanager -gstreamer -dbus
 x11-libs/vte -python 
x11-misc/xbindkeys guile 
app-editors/emacs -svg 
xfce-base/thunar -trash-plugin -startup-notification x11-libs/cairo glitz -xcb 
media-sound/sonata -trayicon 
app-office/openoffice java -pam 
media-fonts/terminus-font quote ru-dv ru-i bolddiag width 
net-misc/slimrat -X 
x11-wm/dwm savedconfig
media-video/vlc qt4 schroedinger skins stream sys-apps/man-pages -linguas_ru 
net-libs/libsoup gnome 
net-libs/libproxy gnome 
net-nds/openldap sasl

Не нужно сразу, во время установки, пытаться создавать колоссальный по объему список глобальных флагов, так сказать про запас.

Достаточно с самого начала задать к примеру следующие флаги:

  • USE=”X gtk mmx sse sse2 smp ssse3 mmxext dvd alsa cdr bash-completion -gnome -kde -qt3 -qt4 -bindist -consolekit -policykit -eds”

Это примерный список, который в дальнейшем будем наращивать. Как видно, указываем использование gtk-интерфейса, задаем основные инструкции процессора, использование двд, звука и записи компакт-дисков, при этом отключаем гном, кде, qt-интерфейс, консолекит и полисикит.

Перед установкой любого пакета проверяем флаги которые используются программой. Для этого запускаем, например для bash:

  • $ emerge -pv bash
    These are the packages that would be merged, in order: 
    Calculating dependencies... done! 
    [ebuild   R   ] app-shells/bash-4.0_p28  USE="net nls -afs -bashlogger -examples -plugins -vanilla" 0 kB
    

    Сразу видно, какие флаги используются, какие в данный момент времени включены, а какие выключены. Для того, чтобы сказать, нужен какой-то конкретный флаг или нет, необходимо знать, для чего он вообще используется. Очень удобно для этих целей использовать утилиту euse, которая входит в состав пакета gentoolkit. Рекомендую ставить этот пакет с самого начала, еще во время установки системы.

  • emerge -av gentoolkit

Обратите внимание, что при установке используются флаги “-av”. Это позволяет перед установкой проверить флаги еще раз, посмотреть список пакетов, которые будут устанавливаться и если все нормально, после подтверждения пользователя будет осуществлена установка нужного пакета.

После установки для того, чтобы посмотреть назначение конкретного флага используется следующий вызов euse:

  • $ euse -i vanilla

global use flags (searching: vanilla)

[-    ] vanilla - Do not add extra patches which change default behaviour; DO NOT USE THIS ON A GLOBAL SCALE as the severity of the meaning changes drastically 

local use flags (searching: vanilla)

[-    ] vanilla (www-apache/mod_security): Provide the original ModSecurity Core Rule Set without Gentoo-specific relaxation. When this flag is enabled, we install the unadulterated Core Rule Set. Warning! The original Core Rule Set is draconic and most likely will break your web applications, including Rails-based web applications and Bugzilla.

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

Все флаги без исключения добавляем в файл /etc/portage/packages.use, то есть указываем флаги только локально. Пример моего файла смотрите выше. Когда набирается большое число пакетов, анализируем их на наличие повторяющихся флагов и переносим их в /etc/make.conf

Если системы была собрана с одним набором флагов, и в дальнейшем мы принимаем решение использовать другой набор – в этом нет ничего страшного. Производим изменение списка флагов и запускаем обновление системы:

  • emerge -auND world

Будет произведен анализ установленных пакетов на измененные зависимости и необходимые пакеты доставляются и пересобираются. После чего не лишним будет выполнить очистку системы:

  • emerge -a –depclean

Проверяем список пакетов, который будет удален, при необходимости добавляем нужные имена файлов в файл /var/lib/portage/world для того, чтобы оставить их в системе и затем удаляем все то, что уже является лишним в системе.

Соблюдая эти правила довольно просто управлять списком USE-флагов не захламляя систему ненужными зависимостями. Надеюсь эта статья поможет вам ближе познакомиться с Gentoo. На деле данная операционная система довольно проста!