Подключить repo epel, rpmforge и другие репозитории в CentOS

Для любого сервера необходимо иметь возможность оперативно получить актуальное свежее программное обеспечение. Установка репозиториев epel, rpmforge и др. repo для CentOS решает вопрос получения rpm пакетов для последующей настройки и обновления функционала сервера. Так что уделим внимание этому вопросу и разберемся в тонкостях, которые тут присутствуют, как и в любом другом вопросе.

Углубленный онлайн-курс по MikroTik

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.

Данная статья является частью единого цикла статьей про сервер Centos.

Репозитории в CentOS

Для начала давайте поясним, что такое репозитории и для чего они нужны. Вот что говорит wikipedia на этот счет:

Репозито́рий, хранилище — место, где хранятся и поддерживаются какие-либо данные. Чаще всего данные в репозитории хранятся в виде файлов, доступных для дальнейшего распространения по сети.

Существуют репозитории для хранения программ, написанных на одном языке (например, CPAN для Perl) или предназначенных для одной платформы. Многие современные операционные системы, такие как OpenSolaris, FreeBSD и большинство дистрибутивов Linux, имеют официальные репозитории, но также позволяют устанавливать пакеты из других мест. Большинство репозиториев бесплатны, однако некоторые компании предоставляют доступ к собственным репозиториям за платную подписку.

Некоторое время назад Linux приложения выходили в виде исходного кода, который потом компилировали на сервере и получали готовые программы. На сегодняшний день большинство приложений выходят в виде так называемых пакетов. Это уже собранные приложения, которые можно сразу установить и пользоваться.

В нашем случае репозиторий - хранилище пакетов для операционной системы CentOS. Существуют repository от разработчика системы, их называют официальные. Набор rpm пакетов там обычно ограничен и версии не самые свежие. Для установки дополнительного софта используют сторонние репозитории. Их поддерживать могут как другие компании, так и группы энтузиастов.

Управлением пакетами и репозиториями в CentOS занимается утилита yum. Ее конфигурационный файл находится в /etc/yum.conf. Этот файл содержит секцию [main], в которой указываются глобальные настройки программы. Так же он может содержать одну или несколько секций [repository], в которой хранятся настройки репозиториев. Тем не менее, рекомендуется информацию о репозиториях хранить в каталоге /etc/yum.repos.d/ в специальных файлах .repo.

Минимальное содержание файла .repo следующее:

[repository]
name=repository_name
baseurl=repository_url
name имя, описывающее репозиторий, может быть любым
baseurl ссылка на расположение репозитория, может быть в виде http, ftp или file ссылки

Другие ползные параметры, которые могут быть указаны в repo файле:

enabled принимает значение 1 или 0, 1 - репозиторий подключен, 0 - отключен
async управляет загрузкой пакетов, auto - использует при возможности параллельную загрузку, on - использует только параллельную загрузку, off - параллельная загрузка отключена
mirrorlist вместо ссылки на конкретный адрес репозитория может быть указана ссылка на список адресов, из которых при установке будет выбран наиболее подходящий
gpgcheck принимает значение 1 или 0, 1- осуществлять проверку GPG подписи пакета из репозитория, 0 - не проверять
gpgkey ссылка на GPG ключ репозитория

Вот содержание стандартного файла с репозиториями CentOS /etc/yum.repos.d/CentOS-Base.repo:

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

Подключение репозиториев в CentOS

Добавить репозиторий в CentOS можно тремя разными способами:

  1. Добавив секцию [repository] в файл /etc/yum.conf
  2. Создав .repo файл в директории /etc/yum.repos.d
  3. Установив rpm пакет с информацией о репозитории

Как уже было сказано ранее, первый способ использовать не рекомендуется самими разработчиками. Наиболее быстрый и удобный третий способ. Если rpm пакета для добавления репозитория не существует, то используется вручную второй способ.

Установка epel repo в CentOS

Полностью epel репозиторий называется так - Extra Packages for Enterprise Linux. Это хранилище пакетов, созданное группой специалистов операционной системы Fedora. Пакеты из epel репозитория никогда не конфликтуют и не переустанавливают базовые пакеты RHEL. Поддерживаются пакеты для следующих операционных систем:

  • Red Hat Enterprise Linux (RHEL)
  • CentOS
  • Scientific Linux (SL)
  • Oracle Linux (OL)

Установить репозиторий epel в CentOS проще всего, так как epel-release package включен в стандартный Extras repository CentOS, который доступен по-умолчанию. На сегодняшний день это самый популярный неофициальный репозиторий для CentOS.

Установка репозитория epel в centos:

# yum -y install epel-release

установка epel centos

Теперь если проверим папку /etc/yum.repos.d, увидим там файл epel.repo, в котором будет информация о новом подключенном репозитории.

Подключение rpmforge repo в CentOS

Полное название rpmforge репозитория - RepoForge. По информации с сайта wiki.centos.org этот архив больше не поддерживается и не рекомендуется к установке. Но лично я нигде больше не нашел об этом информацию, в том числе и на официальном сайте repoforge.org. Данный репозиторий содержит следующие наборы совместимых RHEL пакетов:

  • Servers (eg. monitoring, troubleshooting, management)
  • Desktops (eg. office, leisure, multi-media)
  • Development (eg. perl, python, ruby libraries)

Установка rpmforge на centos:

  1. Устанавливаем GPG ключ:
    # rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
  2. Идем на страницу загрузки и копируем ссылку rpm пакета под нужную нам архитектуру.
  3. Устанавливаем скопированный rpm пакет:
    # yum -y install http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm

В настоящее время приведенная выше ссылка не работает по неизвестным причинам, я надеюсь, что это временные проблемы с сайтом. Пока можно использовать альтернативную:

# yum -y install http://repository.it4i.cz/mirrors/repoforge/redhat/el7/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
По последним данным, репозиторий rpmforge закрыт и больше не поддерживается :( https://github.com/repoforge/rpms/issues/375 https://wiki.centos.org/AdditionalResources/Repositories/RPMForge

установка rpmforge centos

Проверяем директорию /etc/yum.repos.d:

# ls -l | grep rpmforge

-rw-r--r--. 1 root root 739 Jun 12 2014 mirrors-rpmforge
-rw-r--r--. 1 root root 717 Jun 12 2014 mirrors-rpmforge-extras
-rw-r--r--. 1 root root 728 Jun 12 2014 mirrors-rpmforge-testing
-rw-r--r--. 1 root root 1128 Jun 12 2014 rpmforge.repo

Все в порядке rpmforge репозиторий установлен.

Установка remi repo в CentOS

Les RPM de Remi repository поддерживает последние версии MySQL и PHP (бэкпорты федоровских rpm). Пакеты этого репозитория необходимо использовать с осторожностью, так как они заменяют базовые пакеты.

Установка репозитория remi в centos:

  1. # wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm
  2. # rpm -Uvh remi-release-7*.rpm

установка remi в centos

Проверяем:

# cd /etc/yum.repos.d
# ls -l | grep remi

-rw-r--r--. 1 root root 698 Jul 23 17:54 remi-php70.repo
-rw-r--r--. 1 root root 2382 Jul 23 17:54 remi.repo
-rw-r--r--. 1 root root 449 Jul 23 17:54 remi-safe.repo

Remi's RPM repository репозиторий установлен.

Обновление репозиториев с помощью yum

После добавления новых репозиториев в систему, никаких дополнительных действий производить не требуется, в отличие от debian based систем, где после добавления репозиториев, необходимо обновить кэш доступных пакетов с помощью команды apt-get update. Если выполнить команду yum update, то начнется сразу обновление пакетов. То есть смысл команды совсем другой. В CentOS кэш пакетов обновляется каждый раз, когда производится какое-то действие с помощью yum. Например, при выводе списка доступных репозиториев, обновляется список пакетов.

Показать список активных репозиториев в centos

# yum repolist

yum repolist

repo id id репозитория
reponame имя репозитория
status количество пакетов

Удалить репозиторий в CentOS

Для того, чтобы удалить репозиторий из системы, необходимо узнать его id с помощью команды yum repolist. Об этом я писал в предыдущем разделе. Затем с помощью утилиты yum-config-manager, которая входит в пакет yum-utils выполним удаление:

# yum-config-manager --disable remi-safe
bash: yum-config-manager: command not found

Если получаете такую ошибку, то установите пакет yum-utils:

# yum -y install yum-utils

Удаление репозитория в centos:

# yum-config-manager --disable remi-safe

Теперь проверяем список активных репозиториев:

yum-config-manager --disable repo

Удаленного репозитория remi-safe нет. Значит все в порядке, отключение репозитория прошло успешно.

Для того, чтобы обновить кэш yum после изменения репозиториев, можно воспользоваться следующими командами:

Очистить кеш:

# yum clean all

Пересоздать кеш:

# yum makecache

Yandex mirror для CentOS

mirror.yandex.ru — сайт компании Яндекс, зеркало репозитариев популярных дистрибутивов Linux, FreeBSD и других проектов, в том числе CentOS. Работает по протоколам HTTP, FTP и rsync.

На зеркале CentOS можно скачать дистрибутивы всех актуальных на текущий момент версий, а это версии 5, 6 и 7. Зеркало можно использовать в качестве источников стандартных репозиториев системы - base, updates, extras, centosplus.

Можно использовать, что я неоднократно делал, yandex mirror для сетевой установки CentOS. Путь к установочному образу: http://mirror.yandex.ru/centos/7/os/x86_64/images/

На этом у меня все по теме работы с репозиториями. Дальше можно заняться настройкой CentOS. Ели есть замечания, дополнения, уточнения, ошибки, прошу писать об этом в комментариях.

Напоминаю, что данная статья является частью единого цикла статьей про сервер Centos.

Углубленный онлайн-курс по MikroTik.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

12 комментариев

  1. Аноним

    Кратко, понятно, и по делу.
    Спасибо Владимир!

  2. Извините за дурацкий вопрос, но где можно посмотреть список всех программ для CentOS?
    Поиск подобной инфы в поисковике оказался очень нелёгким процессом. С виндой в этом плане проще.

  3. Привет . скажите пожалуйста а как изменить источник зеркало для скачки и обновление пакетов. Например, скачать репозиторий из публичных серверов Россий, а не из США?

    • Вот в этой директории /etc/yum.repos.d лежат конфигурационные файлы репозиториев. Там есть параметр baseurl. По-умолчанию, он закомментирован и зеркало выбирается автоматически из списка, указанного в параметре mirrorlist. Можно закомментировать параметр mirrorlist и явно указать в параметре baseurl адрес необходимого репозитория.

  4. Спасибо, реально помогли как раз то что Я искал

  5. Подскажите, как подключить репозитории вида ***.repo?

    • В статье же написано об этом:

      Добавить репозиторий в CentOS можно тремя разными способами:

      1. Добавив секцию [repository] в файл /etc/yum.conf
      2. Создав .repo файл в директории /etc/yum.repos.d
      3. Установив rpm пакет с информацией о репозитории

      • Наверное, вопрос я задала некорректно)) Вы описываете установку скачанного rpm-пакета. Я скачала файл формата repozitory.repo. Как его установить? RPM-пакета не прилагается.

        P.S. Нашла вообще в другой теме, может кому поможет:

        wget --quiet -O /etc/yum.repos.d/****-epel-7.repo 'https://sait.org/coprs/***tool-epel-7.repo'

        yum install ***tool

        • Так вы же сделали ровно то, что я и написал :) Скачали .repo файл в папку /etc/yum.repos.d/.

  6. Аноним

    Полное название rpmforge репозитория — RepoForge. По информации с сайта wiki.centos.org этот архив больше не поддерживается и не рекомендуется к установке. Но лично я нигде больше не нашел об этом информацию, в том числе и на официальном сайте repoforge.org.

    уже есть объявление и на офф сайте.

    • Лично я им не пользуюсь. Давно не было надобности подключать что-то еще, кроме epel и специализированных репозиториев программ.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.
Используешь Telegram? Подпишись на канал автора →
This is default text for notification bar