Подключение EPEL, RPMForge и других репозиториев в CentOS

АБ
Антон Белов
января 31, 2020

Общая информация

В одной из статей уже рассматривалось использование пакетного менеджера Yum в операционной системе CentOS. Сейчас же разберемся с репозиториями, которые являются неотъемлемой частью инфраструктуры управления пакетами.

Репозиторий представляет собой централизованное хранилище скомпилированных и готовых к установке программ с метаданными об их совместимости и взаимозависимостях. Репозитории бывают:

  • официальные — поддерживаемые разработчиками дистрибутива ОС. Содержат пакеты, являющиеся частью операционной системы, а также дополнительные программы, тесно в нее интегрированные;
  • коммерческие — поддерживаемые разработчиками стороннего платного программного обеспечения. Доступ к таким репозиториям обычно требует наличия подписки;
  • открытые — поддерживаемые энтузиастами, сообществом или разработчиками свободно-распространяемого ПО. Открыты для всех желающих.

Так как перечень программного обеспечения, включенного в состав операционной системы ограничен, и разработчики не всегда успевают вовремя тестировать и включать в свои репозитории свежие версии сторонних проектов (веб-серверы, почтовые серверы, СУБД и т.д.), зачастую приходится подключать дополнительные репозитории.

Есть два основных способа подключения. Наиболее предпочтительный — установка RPM-пакета репозитория. В ходе этой операции скачиваются и создаются все необходимые файлы, после чего новый репозиторий появится в списке подключенных (команда yum repolist). Другой способ — создать файл настроек репозитория самостоятельно в каталоге /etc/yum.repos.d/. Файл должен иметь расширение repo и содержать следующие параметры:

[repo]
name=repo_name
baseurl=repo_url

Описание параметров:

[repo] — краткое имя репозитория;
name — полное имя репозитория;
baseurl — ссылка на репозиторий (может быть заменена параметром mirrorlist или metalink — ссылка на список региональных зеркал репозитория);
gpgcheck — проводить ли проверку цифровой подписи пакетов (если значение параметра 1 — проводить, если 0 — не проводить);
gpgkey — местоположение открытого ключа репозитория, с помощью которого производится проверка подписи;
enabled — используется ли репозиторий при поиске и установке пакетов (1 — используется, 0 — репозиторий отключен).

Все необходимые значения для указанных параметров обычно можно найти на веб-сайте соответствующего репозитория.

Подключаем сторонний репозиторий

Если говорить о дистрибутивах, основанных на Red Hat Linux, самым популярным репозиторием, рекомендуемым для подключения, является Extra Packages for Enterprise Linux (EPEL). На CentOS-серверах, развернутых из наших шаблонов, этот репозиторий уже подключен. В случае, если операционная система установлена с нуля, подключить EPEL достаточно просто:

yum install epel-release

RPM-пакет с настройками EPEL уже содержится в составе официального репозитория CentOS, поэтому все необходимые файлы и GPG-ключи загрузятся автоматически. Если просмотреть содержимое файла /etc/yum.repos.d/epel.repo, то мы увидим уже знакомые параметры:

Другой распространенный репозитарий — Remi`s RPM repository, содержащий актуальные версии пакетов PHP-стека. Репозиторий EPEL должен быть подключен в ОС, так как пакеты Remi зависят от пакетов репозитория EPEL. Детальную информацию можно найти на сайте https://rpms.remirepo.net/. Для подключения достаточно скачать RPM-пакет и запустить его установку:

wget https://rpms.remirepo.net/enterprise/remi-release-7.rpm
rpm -Uvh remi-release-7.rpm

Запустим yum repolist и убедимся, что репозитории зарегистрированы в операционной системе:

По умолчанию включен только репозиторий remi-safe — он содержит пакеты, не замещающие пакеты дистрибутива операционной системы, чем минимизируются возможные конфликты и проблемы в работе. Если посмотреть список REPO-файлов, которые появились, увидим достаточно большой перечень:

Эти репозитории отключены и должны включаться администратором сервера в тех случаях, когда это требуется. Чтобы включить репозиторий на постоянной основе, устанавливаем параметр enabled=1 в соответствующем REPO-файле. Для разовых операций используем параметр --enablerepo=repo_name в соответствующей команде yum, например:

yum --enablerepo=remi install php

Одним из широко распространенных ранее сторонних репозиториев был RepoForge (RPMForge), но, к сожалению, на данный момент он уже не поддерживается. Хотя физически репозиторий доступен, пакеты в нем уже давно не обновляются, в связи с чем использовать его не рекомендуется. Если все же по каким-то причинам требуется им воспользоваться, подключить его тоже достаточно просто — на странице http://repoforge.org/use/ находим ссылку на требуемую версию, скачиваем пакет и устанавливаем. Например, для CentOS 7:

wget http://repository.it4i.cz/mirrors/repoforge/redhat/el7/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
yum localinstall rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm

Остались вопросы? Задайте их нашему эксперту и получите квалифицированную помощь