Handbook:AMD64/Portage/CustomTree

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Handbook:AMD64/Portage/CustomTree and the translation is 100% complete.
AMD64 Handbook
Установка
Об установке
Выбор подходящего источника для установки
Настройка сети
Подготовка дисков
Установка файла stage
Установка базовой системы
Настройка ядра
Настройка системы
Установка системных утилит
Настройка загрузчика
Завершение
Работа с Gentoo
Введение в Portage
USE-флаги
Возможности Portage
Система сценариев инициализации
Переменные окружения
Работа с Portage
Файлы и каталоги
Переменные
Смешение ветвей программного обеспечения
Дополнительные утилиты
Дополнительные репозитории пакетов
Расширенные возможности
Настройка сети OpenRC
Начальная настройка
Расширенная настройка
Модульное построение сети
Беспроводная сеть
Добавляем функциональность
Динамическое управление


Исключение пакетов и категорий

Можно выборочно обновлять определенные категории/пакеты, игнорируя обновление других категорий/пакетов. Это достигается путем исключения таких категорий/пакетов программой 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:

ФАЙЛ /etc/portage/make.confОпределение файла с исключенными пакетами
PORTAGE_RSYNC_EXTRA_OPTS="--exclude-from=/etc/portage/rsync_excludes"
ФАЙЛ /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 или другим типом репозитория):

ФАЙЛ /var/db/repos/localrepo/metadata/layout.conf
masters = gentoo
auto-sync = false
thin-manifests = true
sign-manifests = false

Наконец, включите репозиторий в локальную систему, создав файл конфигурации для репозитория в /etc/portage/repos.conf. Это сообщит Portage, где можно найти локальный репозиторий:

ФАЙЛ /etc/portage/repos.conf/localrepo.conf
[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.1.38 был установлен вручную, нужно добавить следующую строку в /etc/portage/profile/package.provided:

ФАЙЛ /etc/portage/profile/package.providedПомечаем gentoo-sources-6.1.38 как установленный вручную
sys-kernel/gentoo-sources-6.1.38
Заметка
Это файл, который использует версии без = оператора.