Для любого сервера необходимо иметь возможность оперативно получить актуальное свежее программное обеспечение. Установка репозиториев epel, rpmforge и др. repo для CentOS решает вопрос получения rpm пакетов для последующей настройки и обновления функционала сервера. Так что уделим внимание этому вопросу и разберемся в тонкостях, которые тут присутствуют, как и в любом другом вопросе.
Научиться настраивать 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 можно тремя разными способами:
- Добавив секцию [repository] в файл /etc/yum.conf
- Создав .repo файл в директории /etc/yum.repos.d
- Установив 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
Теперь если проверим папку /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:
- Устанавливаем GPG ключ:
# rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
- Идем на страницу загрузки и копируем ссылку rpm пакета под нужную нам архитектуру.
- Устанавливаем скопированный 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
Проверяем директорию /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:
-
# wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm
-
# rpm -Uvh remi-release-7*.rpm
Проверяем:
# 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
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
Теперь проверяем список активных репозиториев:
Удаленного репозитория 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 с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.
Кратко, понятно, и по делу.
Спасибо Владимир!
Извините за дурацкий вопрос, но где можно посмотреть список всех программ для CentOS?
Поиск подобной инфы в поисковике оказался очень нелёгким процессом. С виндой в этом плане проще.
Как такового списка программ не существует. Можно подключать внешние репозитории и расширять этот список. Базовый репозиторий системы тут - http://mirror.centos.org/centos/7/os/x86_64/Packages/ Можно посмотреть список пакетов для установки.
Привет . скажите пожалуйста а как изменить источник зеркало для скачки и обновление пакетов. Например, скачать репозиторий из публичных серверов Россий, а не из США?
Вот в этой директории /etc/yum.repos.d лежат конфигурационные файлы репозиториев. Там есть параметр baseurl. По-умолчанию, он закомментирован и зеркало выбирается автоматически из списка, указанного в параметре mirrorlist. Можно закомментировать параметр mirrorlist и явно указать в параметре baseurl адрес необходимого репозитория.
Спасибо, реально помогли как раз то что Я искал
Подскажите, как подключить репозитории вида ***.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/.
Полное название rpmforge репозитория — RepoForge. По информации с сайта wiki.centos.org этот архив больше не поддерживается и не рекомендуется к установке. Но лично я нигде больше не нашел об этом информацию, в том числе и на официальном сайте repoforge.org.
уже есть объявление и на офф сайте.
Лично я им не пользуюсь. Давно не было надобности подключать что-то еще, кроме epel и специализированных репозиториев программ.