eselect/repository
eselect-repository — это модуль eselect для конфигурирования репозиториев ebuild-файлов для Portage. Конфигурационные файлы для репозиториев хранятся в /etc/portage/repos.conf.
Для более подробной информации об опциях запустите man repository.eselect.
Эта утилита заменяет layman в качестве утилиты для перечисления, конфигурации и синхронизации дополнительных репозиториев. Тем не менее, остались некоторые ситуации, когда layman может дополнить eselect-repository, например, при использовании систем контроля версий, которые Portage не может синхронизировать (к примеру, darcs и g-sorcery).
Утилита eselect-repository написана и сопровождается разработчиком Gentoo Michał Górny (mgorny) .
Установка
Emerge
root #
emerge --ask app-eselect/eselect-repository
Конфигурация
Первоначальная настройка
Для работы модуля должен существовать каталог или файл repos.conf, путь к которому задаётся переменной REPOS_CONF в /etc/eselect/repository.conf. В соответствии с Руководством Gentoo желательно выбрать вариант с каталогом, в противном случае не будут работать некоторые инструмены:
root #
mkdir -p /etc/portage/repos.conf
Файлы
/etc/eselect/repository.conf
# конфигурация для eselect-repo
# (читается как bash сценарий, поэтому значения должны оставаться совместимыми
# с bash)
# Следующие переменные указывают на пути,
# настроенные во время сборки:
# CACHEDIR -- системный каталог кэша (напр. /var/cache)
# SYSCONFDIR -- системный каталог конфигурации (напр. /etc)
# SHAREDSTATEDIR -- системный каталог с разделяемыми состояниями
# (shared state) (напр. /var)
# Расположение файла или каталога с конфигурацией репозиториев.
# Если это каталог, используются правила Portage для дочерних файлов.
REPOS_CONF=${SYSCONFDIR}/portage/repos.conf
# Файл, в который будут добавляться конфигурации новых репозиториев,
# если REPOS_CONF является каталогом. Вы можете использовать
# переменную "${repository}", которая указывает на
# название вновь добавленного репозитория.
REPOS_CONF_SUBFILE=${REPOS_CONF}/eselect-repo.conf
# Родительский каталог, куда будут добавлены сами репозитории.
# Новые репозитории добавляются как дочерние каталоги
# с названием самого репозитория.
REPOS_BASE=${SHAREDSTATEDIR}/db/repos
# Расположение списка удалённых репозиториев (remote repositories list).
# По умолчанию использует список gentoo-mirror, который содержит,
# прегенерированный кэш метаданных
# (pregenerated metadata cache).
REMOTE_LIST_URI=https://qa-reports.gentoo.org/output/repos/repositories.xml
# Альтернатива: изначальный список Gentoo без прегенерации.
#REMOTE_LIST_URI=https://api.gentoo.org/overlays/repositories.xml
# Каталог, где будет храниться кэш repositories.xml. Файл всегда называется
# "repositories.xml" из-за технических ограничений wget.
REMOTE_LIST_CACHEDIR=~/.cache/eselect-repo
# Интервал (в секундах) проверки списка удалённых репозиториев на изменения.
# По умолчанию равен 2 часам.
REMOTE_LIST_REFRESH=$(( 2 * 3600 ))
Использование
Репозитории могут быть синхронизированы уже после конфигурации, используя утилиту emaint в Portage:
root #
emaint sync -r foo
repos.gentoo.org
Gentoo позволяет пользователям и разработчикам регистрировать репозитории на repos.gentoo.org для публичного использования. eselect repository может скачивать этот список известных репозиториев и обрабатывать его.
Просмотр списка репозиториев ebuild-файлов, зарегистированных в repos.gentoo.org
eselect repository может вывести список всех репозиториев с repos.gentoo.org:
user $
eselect repository list
Available repositories: [1] foo [2] bar [3] baz [4] cross # [5] good * [6] my_overlay @
- Суффикс * указывает, что этот репозиторий установлен и включен.
- Суффикс # указывает, что для этого репозитория необходимо обновить их информацию о синхронизации (путём выключения и включения), или они были настроены пользователем.
- Суффикс @ указывает, что такой репозиторий не указан по имени в официальном, опубликованном списке.
Используйте опцию -i
, чтобы перечислить только сконфигурированные репозитории:
user $
eselect repository list -i
Добавление репозиториев ebuild-файлов с repos.gentoo.org
Синтаксис: enable (<название>|<индекс>)...
root #
eselect repository enable foo bar baz
Добавление репозиториев
Todo:
Todo:
- перечислить и обьяснить доступные методы синхронизации.
Синтаксис: add <название> <метод-синхронизации> <адрес-синхронизации>
root #
eselect repository add test git https://github.com/test/test.git
Если репозиторий ebuild-файлов добавляется в первый раз, его необходимо синхронизировать перед использованием.
Хотя Gentoo репозиторий ebuild-файлов и заполняется или проверяется разработчиками Gentoo, а GURU репозиторий находится под их надзором, это не всегда так для других репозиториев ebuild-файлов. Есть вероятность, что некоторые репозитории могут содержать уязвимые, плохо работающие или, теоретически, даже вредоносные программы.
Отключение репозиториев без удаления содержимого
Синтаксис: disable [-f] (<название>|<индекс>)...
root #
eselect repository disable foo bar
Опция -f
требуется для репозиториев, не зарегистрированных на repos.gentoo.org, или без информации о синхронизации. Используйте её с осторожностью.
Отключение репозиториев с удалением содержимого
Синтаксис: remove [-f] (<название>|<индекс>)...
root #
eselect repository remove bar baz
Опция -f
требуется для репозиториев, не зарегистрированных на repos.gentoo.org, или без информации о синхронизации. Используйте её с осторожностью.
Создание нового репозитория ebuild-файлов
Подкоманда create создаст каркас репозитория ebuild-файлов и сконфигурирует его для Portage:
Синтаксис: create <название> [<путь>]
root #
eselect repository create <название_репозитория>
Adding <название_репозитория> to /etc/portage/repos.conf ... Repository <название_репозитория> created and added
См. также
- Eselect — a tool for administration and configuration on Gentoo systems.
- Useful Portage tools — перечисляет специфичные для Gentoo системные утилиты (для Portage), доступные в репозитории ebuild-ов.
- Project:Portage/Sync