Handbook:X86/Portage/CustomTree
Использование подмножества Gentoo репозитория
Исключение пакетов и категорий
Можно выборочно обновлять определенные категории/пакеты, игнорируя обновление других категорий/пакетов. Это достигается путем исключения таких категорий/пакетов программой rsync на этапе выполнения emerge --sync.
Чтобы это заработало, необходимо выключить проверку манифестов, что снижает безопасность использования репозитория. Чтобы выключить проверку, либо отключите USE-флаг rsync-verify для пакета sys-apps/portage, либо установите параметр sync-rsync-verify-metamanifest=no в записи репозитория Gentoo repos.conf.
Определите имя файла, содержащего шаблоны исключаемых пакетов, в переменной PORTAGE_RSYNC_EXTRA_OPTS в файле /etc/portage/make.conf:
PORTAGE_RSYNC_EXTRA_OPTS="--exclude-from=/etc/portage/rsync_excludes"
games-*/*
Заметьте, однако, что это может привести к проблемам с зависимостями, так как новые разрешенные пакеты могут зависеть от других новых, но исключенных из обновления пакетов.
Добавление неофициальных файлов ebuild
Определение пользовательского репозитория ebuild-файлов
Manual creation
Можно настроить Portage так, чтобы он использовал сборочные файлы ebuild, не входящие в официальный Gentoo репозиторий. Создайте новый каталог (к примеру, /var/db/repos/localrepo), в котором будут находиться файлы ebuild сторонних разработчиков. Используйте в точности такую же структуру каталогов, как и в официальном Gentoo репозитории!
root #
mkdir -p /var/db/repos/localrepo/{metadata,profiles}
root #
chown -R portage:portage /var/db/repos/localrepo
Затем выберите подходящее имя для репозитория. В следующем примере в качестве имени используется «localrepo»:
root #
echo 'localrepo' > /var/db/repos/localrepo/profiles/repo_name
Then define the EAPI used for the profiles within the repository:
root #
echo '8' > /var/db/repos/localrepo/profiles/eapi
Сообщим Portage, что главный (master) репозиторий это основной Gentoo репозиторий, и что репозиторий не должен автоматически синхронизироваться (так как это не поддерживается сервером rsync, зеркалом git или другим типом репозитория):
masters = gentoo
auto-sync = false
thin-manifests = true
sign-manifests = false
Наконец, включите репозиторий в локальную систему, создав файл конфигурации для репозитория в /etc/portage/repos.conf. Это сообщит Portage, где можно найти локальный репозиторий:
[localrepo]
location = /var/db/repos/localrepo
Optional: Creating a repo using eselect repository
Alternatively, a custom ebuild repository can be quickly created using the eselect repository module (from app-eselect/eselect-repository). In the following example, substitute localrepo
with a name of choice:
root #
eselect repository create localrepo
Adding localrepo to /etc/portage/repos.conf/eselect-repo.conf ... Repository <ebuild_repository_name> created and added
A bare repository named "localrepo" will be made available at /var/db/repos/localrepo.
Работа с несколькими оверлеями
For those desiring to develop several ebuild repos, test packages before they hit the Gentoo repository, or who want to use unofficial ebuilds from various sources, the app-eselect/eselect-repository package also provides tooling to aid in keeping repositories up to date. See also eselect repository article.
eselect-repository
Например, чтобы включить репозиторий GURU:
root #
eselect repository enable guru
root #
emerge --sync
Программы, поддерживаемые не через Portage
Использование Portage с пакетами самостоятельной сборки
Иногда пользователям может потребоваться настраивать, устанавливать и поддерживать программное обеспечение самостоятельно, без автоматизации со стороны Portage, несмотря на то, что оно поддерживается Portage. Наиболее известные случаи - это исходный код ядра и драйверы от Nvidia. Можно настроить Portage так, чтобы системе стало известно, что определенные пакеты установлены вручную (тогда Portage будет принимать данную информацию во внимание при расчете зависимостей). Данный процесс называется внедрение, и поддерживается Portage посредством файла /etc/portage/profile/package.provided.
Например, чтобы сообщить Portage о том, что пакет gentoo-sources-6.6.21 был установлен вручную, нужно добавить следующую строку в /etc/portage/profile/package.provided:
sys-kernel/gentoo-sources-6.6.21
Это файл, который использует версии без
=
оператора.