Red Hat Enterprise Linux - это дистрибутив корпоративного уровня, который продолжает поддерживать старое программное обеспечение, которое давно уже должно было быть забыто. Они делают это не из-за нежелания обновлять систему, а потому что так нужно клиентам. Основная концепция - вы получаете систему и можете пользоваться ей без необходимости обновления версии так долго, сколько захотите.
CentOS основана на Red Hat и ведет себя точно так же. Обновления сосредоточены больше на исправлении уязвимостей в системе, чем на поставлении новых версий программ. Но это не очень подходит, если вы разрабатываете программное обеспечение, требующее более новых версий системных компонентов. Например, если вам нужно PHP 7.0, то получить его будет довольно сложно. В репозиториях, на данный момент есть только PHP 5.4, к тому же очень важно, чтобы программа была совместима с другими компонентами стека, например, веб-сервером.
Но что делать, если вам действительно нужно это программное обеспечение? Есть решение. Кроме официальных репозиториев, существуют сторонние репозитории CentOS 7, которые вы можете установить для получения новых версий программ. В этой статье мы рассмотрим самые популярные сторонние репозитории CentOS 7, а также как их устанавливать.
Содержание статьи
Репозитории CentOS 7
Настройка репозиториев CentOS может выполняться ручным редактированием конфигурационных файлов, но более популярен вариант с установкой файла репозитория. Установка репозиториев CentOS 7 выполняется путем установки rpm файла. Так принято для всех репозиториев. Чтобы посмотреть список репозиториев CentOS 7 подключенных к системе, выполните:
yum repolist
А теперь рассмотрим это более подробно, в списке репозиториев.
1. SСL
SСL или Software Collections - это репозиторий от Red Hat, содержащий новые версии пакетов и программного обеспечения. Файл его установщика есть в официальном репозитории, поэтому для установки достаточно набрать:
sudo yum install centos-release-scl
После этого вы можете выполнить поиск нужных пакетов:
sudo yum search php7
И сразу их установить:
sudo yum install rh-php70
Кроме того, вы можете устанавливать пакеты из этого репозитория так, чтобы они не заменяли уже установленные версии программ. Для этого используйте скрипт scl:
scl enable rh-php70 bash
Для работы такого метода нужно установить все необходимые компоненты, например, если нужен еще и MySQL и Python, то их тоже нужно установить. Также понадобится исправить файлы конфигурации Apache.
Пакеты, установленные с помощью scl, не будут активны после перезагрузки. Этот инструмент предназначен для установки нескольких версий пакетов в вашей систему. Вы можете настроить автоматическое включение пакетов, добавив команды enable в скрипт .bashrc. Все файлы устанавливаются в /opt/ поэтому для автоматической загрузки php добавьте такую строчку:
source /opt/rh/rh-php70/enable
Команда изменит переменные окружения таким образом, чтобы использовалась эта версия программы. Чтобы посмотреть все доступные пакеты в репозитории нужно использовать такую сложную конструкцию:
sudo yum --disablerepo "*" --enablerepo centos-sclo-rh list available | less
Это необходимо, потому что отдельной опции чтобы вывести список пакетов определенного репозитория в yum нет.
2. EPEL
EPEL или Extra Packages for Enterprise Linux - это репозиторий дополнительных пакетов для Red Hat, поддерживаемый командой проекта Fedora. Здесь есть новые версии программ, а также некоторые другие программы, которых нет в официальных репозиториях. Чтобы добавить репозиторий CentOS 7 выполните:
sudo yum install epel-release
Затем вы можете посмотреть список пакетов:
sudo yum --disablerepo "*" --enablerepo epel list available | less
3. Remi Collet
Remi Collet содержит тоже большое количество обновленных пакетов для CentOS от проекта Remi RPM. Этот репозиторий зависит от EPEL. Заметьте, что пакеты из этого репозитория имеют такие же имена, как и в официальных, поэтому это может вызвать нежелательное обновление, так что будьте осторожны.
Для установки необходимо скачать rpm пакет. Выполните:
wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
$ sudo rpm -Uvh remi-release-7*.rpm
4. IUS
Репозиторий IUS - это официальный репозиторий с новыми версиями пакетов от Red Hat. Здесь уже имена пакетов отличаются от используемых в репозитории по умолчанию от CentOS, поэтому проблем с обновлением не возникнет. Чтобы установить репозиторий CentOS 7 выполните:
wget https://centos7.iuscommunity.org/ius-release.rpm
$ sudo rpm -Uvh ius-release*.rpm
5. nux-dextop
Есть и репозитории, которые будут полезны, тем, кто хочет использовать CentOS в качестве домашней системы. Этот репозиторий содержит различное дополнительное программное обеспечение, видео кодеки, плееры и так далее. Для его установки выполните:
wget http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
$ sudo yum install -y nux-dextop*
Удаление и отключение репозиториев
Если вам больше не нужен тот или иной репозиторий, то вы можете его отключить или полностью удалить. Например, вы можете отключить репозиторий на время выполнения команды:
yum update --disablerepo=remi
Если нужно отключить репозиторий навсегда, то вам придется редактировать файл репозитория. Все файлы репозиториев находятся в папке /etc/yum.repos.d/. Например, чтобы отключить EPEL найдите его файл и замените строчку enabled=1 на enabled=0:
sudo vi /etc/yum.repos.d/epel.repo
Теперь, если вывести список репозиториев CentOS, то вы увидите что один из них отключен:
Чтобы включить обратно, вам достаточно вернуть значение на место. Также вы можете полностью удалить репозиторий. Для этого достаточно удалить его файл с помощью yum:
sudo yum remove epel-release
Важно заметить, что при удалении репозитория пакеты, которые были из него установлены не удалятся, возможно, только будет снижена их версия, до версии из официальных репозиториев.
Выводы
В этой статье мы рассмотрели репозитории CentOS 7, которые могут понадобиться вам, если вы решите использовать эту систему для сервера или домашнего компьютера. Хотя для последнего тут не очень благоприятная обстановка с доступностью новых версий программ. Если у вас остались вопросы, спрашивайте в комментариях!
Добрый день, Сергей.
Очень ценю ваш сайт- всегда на нем нахожу много полезного, поэтому очень переживаю, если нахожу ошибки русского языка, исправьте пожалуйста.
"Также понадобиться исправить файлы конфигурации Apache." - в слове _понадобитЬся_ в данном предложении - мягкий знак лишний.
"вернуть значение наместо" - _на место_ пишется раздельно.
"пакеты, которые были из него установлены не удаляться" - _не удаляТСя_ - без мягкого знака.
С уважением,
Анна
Спасибо!