Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Gentoo_x86_Handbook.doc
Скачиваний:
25
Добавлен:
19.09.2019
Размер:
924.16 Кб
Скачать

6.D. Выполняем задачи после --sync

/etc/portage/postsync.d

До этого момента мы говорили о вмешательстве в процесс компиляции. Однако Portage имеет также еще одну важную функцию — обновление дерева Portage. Чтобы выполнять задачи после обновления дерева Portage, поместите скрипт в /etc/portage/postsync.d и удостоверьтесь, что он помечен как исполняемый.

Пример: Запускаем eix-update

Если вы не используете eix-sync для обновления дерева, вы все еще можете обновлять его базу данных после запуска emerge —sync (или emerge-webrsync) добавив симлинк к /usr/bin/eix, и назвав ее eix-update в каталоге /etc/portage/postsync.d.

Код 4.1: Запускаем eix-update после операции sync

# ln -s /usr/bin/eix /etc/portage/postsync.d/eix-update

Заметка: Если вы хотите использовать другое имя, вам нужно сделать скрипт, который будет запускать /usr/bin/eix-update. Приложение eix смотрит, по какому имени его вызвали, чтобы определить, что ему нужно выполнить. Если вы разместите ссылку на eix, которая не будет называться eix-update, то программа будет работать некорректно.

6.E. Изменяем настройки профиля

/etc/portage/profile

По умолчанию, Gentoo использует настройки, находящиеся в профиле, на который указывает /etc/make.profile (символическая ссылка на нужную папку с профилем). Эти профили определяют как свои собственные настройки, так и наследуют настройки из других профилей (через свой родительский файл).

Используя /etc/portage/profile вы можете изменить настройки профиля, такие как пакеты (какие пакеты считаются частью системного набора), виртуалы (пакеты по умолчанию, при установке виртуального пакета), и много чего еще.

Пример: Добавляем nfs-utils к системному набору

Если вы используете файловые системы, основанные на NFS, и они для вас являются критичными, вы можете захотеть добавить net-fs/nfs-utils в системные пакеты, что заставит Portage предупреждать вас, если он вдруг должен быть удален.

Чтобы достичь этой цели, мы добавим пакет в /etc/portage/profile/packages, и добавим перед его именем звездочку:

Код 5.1: Содержимое /etc/portage/profile/packages

*net-fs/nfs-utils

6.F. Применение нестандартных патчей

Используем epatch_user

Чтобы работать с несколькими ебилдами похожим образом, разработчики ебилдов используют eclasses (что-то вроде библиотек оболочки), в которых определены частоиспользуемые функции. Один из этих eclass'ов это eutils.eclass, в котором есть одна интересная функция, epatch_user.

Функция epatch_user применяет патчи к исходному коду, которые находятся в /etc/portage/patches/<category>/<package>[-<version>[-<revision>]], смотря какой каталог будет найден первым. К сожалению, не все ебилды автоматически вызывают данную функцию, поэтому простое добавление своего патча в это место не всегда вызовет его применение.

К счастью, с информацией, приведенной выше, вы можете вызывать эту функцию, вмешавшись, например, в фазу prepare. Эту функцию можно вызывать столько раз, сколько хотите, она применит патчи только один раз.

Пример: Добавляем патчи к Firefox

Пакет www-client/firefox это один из тех немногих пакетов, который уже вызывает epatch_user из ебилда, поэтому нам не нужно будет ничего переопределять.

Если вам нужно пропатчить firefox (например потому что разработчик попросил вас помочь ему протестировать патч для бага, который вы нашли), поместите патч в /etc/portage/patches/www-client/firefox (хотя, наверное, будет лучше использовать полное имя, включая версию, чтобы патч не вступил в противоречие с последующими версиями) и пересобрать firefox.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]