Gentoo. Дополнительные репозитории
2023-10-01
·
3 мин. для прочтения
Gentoo. Дополнительные репозитории.
Содержание
1 Общая информация
- Ранее использовалась утилита
layman
. - Сейчас рекомендуется использовать модуль eselect
eselect-repository
. - Документация:
2 Установка
- Установка:
emerge app-eselect/eselect-repository
3 Конфигурация
- Для работы модуля должен существовать каталог или файл
repos.conf
, путь к которому задаётся переменнойREPOS_CONF
в/etc/eselect/repository.conf
. - Будем использовать каталог конфигурации:
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 ))
4 Использование
4.1 Синхронизация репозитория
- Репозитории могут быть синхронизированы утилитой
emaint
:emaint sync -r foo
4.2 Просмотр репозиториев
Gentoo позволяет пользователям и разработчикам регистрировать репозитории на https://repos.gentoo.org/ для публичного использования.
Просмотр списка репозиториев:
eselect repository list
- суффикс
*
указывает, что этот репозиторий установлен и подключён; - суффикс
#
указывает, что для этого репозитория необходимо обновить их информацию о синхронизации (путём выключения и включения), или они были настроены пользователем; - суффикс
@
указывает, что такой репозиторий не указан по имени в официальном, опубликованном списке.
- суффикс
Перечислить только сконфигурированные репозитории:
eselect repository list -i
4.3 Добавление репозиториев
Добавление репозиториев с https://repos.gentoo.org/:
eselect repository enable foo
Добавление произвольных репозиториев
eselect repository add test git https://github.com/test/test.git
- Синтаксис:
eselect repository add <название> <метод-синхронизации> <адрес-синхронизации>
- Синтаксис:
4.4 Отключение репозиториев
Отключение репозиториев без удаления содержимого:
eselect repository remove foo
- Синтаксис:
remove [-f] (<название>|<индекс>)
- Опция
-f
требуется для репозиториев, не зарегистрированных на repos.gentoo.org, или без информации о синхронизации.
- Синтаксис:
Отключение репозиториев с удалением содержимого:
eselect repository remove foo
- Синтаксис:
remove [-f] (<название>|<индекс>)
- Опция
-f
требуется для репозиториев, не зарегистрированных на repos.gentoo.org, или без информации о синхронизации.
- Синтаксис:
4.5 Создание нового репозитория
Создание каркаса репозитория:
eselect repository create foo
- Синтаксис:
create <название> [<путь>]
- Синтаксис:
5 Настройки репозиториев
5.1 Приоритет репозиториев
- По умолчанию пакеты в оверлейных репозиториях имеют преимущество перед пакетами в репозитории
gentoo
. - Кроме того, можно управлять приоритетами дополнительных репозиториев.
- Добавьте параметр приоритета в файл описания репозиториев
/etc/portage/repos.conf/eselect-repo.conf
:[local] location = /var/db/repos/local priority = 100
6 Списки полезных репозиториев
6.1 Karma
6.2 guru
- Страница: https://wiki.gentoo.org/wiki/Project:GURU
- Репозиторий: https://github.com/gentoo-mirror/guru
- Добавление репозитория:
eselect repository enable guru
- Синхронизация репозитория:
emaint sync -r guru
6.3 haskell
- Добавление репозитория:
eselect repository enable haskell
- Синхронизация репозитория:
emaint sync -r haskell