This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.
Please visit our production wiki at https://wiki.gentoo.org
Handbook:SPARC/Portage/CustomTree
Использование подмножества Gentoo репозитория
Исключение пакетов и категорий
Можно выборочно обновлять определенные категории/пакеты, игнорируя обновление других категорий/пакетов. Это достигается путем исключения таких категорий/пакетов программой rsync на этапе выполнения emerge --sync.
Определите имя файла, содержащего шаблоны исключаемых пакетов, в переменной PORTAGE_RSYNC_EXTRA_OPTS в файле /etc/portage/make.conf:
PORTAGE_RSYNC_EXTRA_OPTS="--exclude-from=/etc/portage/rsync_excludes"
games-*/*
Заметьте, однако, что это может привести к проблемам с зависимостями, так как новые разрешенные пакеты могут зависеть от других новых, но исключенных из обновления пакетов.
Добавление неофициальных файлов ebuild
Определение пользовательского репозитория
Можно настроить Portage так, чтобы он использовал сборочные файлы ebuild, не входящие в официальный Gentoo репозиторий. Создайте новый каталог (к примеру, /usr/local/portage), в котором будут находиться файлы ebuild сторонних разработчиков. Используйте в точности такую же структуру каталогов, как и в официальном Gentoo репозитории!
root #
mkdir -p /usr/local/portage/{metadata,profiles}
root #
chown -R portage:portage /usr/local/portage
Затем выберите подходящее имя для репозитория. Следующий пример использует в качестве имени "localrepo":
root #
echo 'localrepo' > /usr/local/portage/profiles/repo_name
Сообщим Portage, что главный (master) репозиторий это основной Gentoo репозиторий, и что репозиторий не должен автоматически синхронизироваться (так как это не поддерживается сервером rsync, зеркалом git или другими хранилищами исходного кода):
masters = gentoo auto-sync = false
Наконец, включите репозиторий в локальную систему, создав файл конфигурации для репозитория в /etc/portage/repos.conf, что сообщит Portage, где можно найти локальный репозиторий:
[localrepo] location = /usr/local/portage
Работа с несколькими оверлеями
Для продвинутых пользователей, ведущих разработку в нескольких оверлейных каталогах, тестирующих пакеты перед включением в основной Gentoo репозиторий или просто желающих использовать неофициальные сборочные файлы ebuild из разных источников, в пакете app-portage/layman есть утилита layman, которая поможет поддерживать ваши оверлейные репозитории в актуальном состоянии.
Иначе установите app-eselect/eselect-repository для использования встроенной синхронизации в in Portage. Смотрите также Eselect/Repository
eselect-repository
Добавление дополнительных репозиториев становится простым занятием с этой утилитой.
Например, чтобы включить оверлей hardened-development:
root #
eselect repository enable hardened-development
Обновление оверлеев, добавленных таким способом, происходит обычным способом с помощью:
root #
emerge --sync
Layman
Сначала установите и сконфигурируйте layman, как показано в Overlays User Guide, и добавьте необходимые репозитории с помощью команды layman -a.
Например, чтобы включить оверлей hardened-development:
root #
layman -a hardened-development
Независимо от того, сколько репозиториев используются с помощью layman, все они могут быть обновлены с помощью следующей команды:
root #
layman -S
Для более детальной информации по работе с оверлеями, прочитайте man layman и ранее упомянутое руководство пользователя по оверлеям.
Программы, поддерживаемые не через Portage
Использование Portage с пакетами самостоятельной сборки
Иногда пользователям может потребоваться настраивать, устанавливать и поддерживать программное обеспечение самостоятельно, без автоматизации со стороны Portage, несмотря на то, что оно поддерживается Portage. Наиболее известные случаи - это исходный код ядра и драйверы от Nvidia. Можно настроить Portage так, чтобы системе стало известно, что определенные пакеты установлены вручную (тогда Portage будет принимать данную информацию во внимание при расчете зависимостей). Данный процесс называется внедрение, и поддерживается Portage посредством файла /etc/portage/profile/package.provided.
Например, чтобы сообщить Portage о том, что пакет gentoo-sources-4.9.16 был установлен вручную, нужно добавить следующую строку в /etc/portage/profile/package.provided:
sys-kernel/gentoo-sources-4.9.16
Это файл, который использует версии без
=
оператора.