Репозитории CentOS - хранилища программного обеспечения в виде упакованных файлов, так называемых RPM-пакетов.
RPM-пакет - представляет из себя файл формата ".rpm", расширение указывает на принадлежность файла менеджеру пакетов Red Hat (Red Hat Package Manager), позволяющего устанавливать программное обеспечение на Red Hat/CentOS системы.
Нужные для установки пакеты загружаются из репозиториев посредством пакетного менеджера YUM, после чего происходит дальнейшая распаковка и установка.
Репозитории могут быть официальными и дополнительными. Если программное обеспечение не доступно в официальных репозиториях, можно прибегнуть к помощи дополнительных. Бывает что версии пакетов содержащихся в дополнительных репозиториях, являются более свежими чем версии в официальных.
Наиболее популярными и распространенными являются следующие репозитории:
CentOS Official Repository - официальный репозиторий.
EPEL - Extra Packages for Enterprise Linux - хранилище пакетов команды Fedora. Содержит пакеты дополнительного программного обеспечения для таких систем как: RHEL, SentOS, Scientific Linux. Пакеты этого репозитория не конфликтуют с родными пакетами RHEL и не заменяют их. Самый ходовой и популярный репозиторий.
ElRepo - пакеты для RHEL, SentOS, Scientific Linux. В хранилище представлены последние версии драйверов для: графических, звуковых, сетевых карт, веб камер и прочей периферии.
REMI - специализируется по MySQL и PHP. Пакеты этого репозитория могут заменять базовые пакеты, поэтому с ними надо поосторожнее.
RPMforge - больше не поддерживающийся репозиторий. Рекомендуют не использовать, проект закрыт.
Управление репозиториями в CentOS
Управление пакетами и репозиториями осуществляет утилита YUM (Yellowdog Updater, Modified) - менеджер RPM-пакетов, использующийся в дистрибутивах: RHEL, SentOS, Scientific Linux. В его задачи входит: поиск, установка, удаление пакетов, обновление системы.
Процесс установки пакетов происходит после выполнения команды - yum install packagename. После ввода команды менеджер пакетов проверяет наличие конфигурационных файлов "*.repo", эти файлы содержат информацию о репозиториях и хранятся в директории /etc/yum.repos.d. Во время проверки YUM получает всю необходимую информацию, указывающую откуда загружать пакет и какие зависимости имеют к нему отношение. После чего происходит установка пакета.
Конфигурационные файлы репозиториев содержат следующие параметры:
- name - имя репозитория, может быть любым.
- baseurl - ссылка указывающая на репозиторий. Может быть вида: ftp://link, http://link, https://link, если репозиторий размещен в сети интернет, или file://path, если репозиторий размещен локально.
- enabled - указывает на активацию репозитория при выполнении обновления. Может иметь следующие значения, 1 - если подключен, 0 - если отключен.
- gpgcheck - включить или выключить проверку сигнатуры GPG. Может иметь следующие значения, 1 - проверять, 0- не проверять.
- gpgkey - ссылка на ключ GPG.
- exclude - список исключаемых пакетов.
- includepkgs - список включаемых пакетов.
- mirrorlist - вместо ссылки на конкретный адрес репозитория, может использоваться ссылка на список адресов из которых будет выбран нужный адрес.
Подключение репозиториев в CentOS
Добавить репозиторий в CentOS можно несколькими способами. Можно создать файл ".repo" в директории /etc/yum.repos.d или установить rpm-пакет с информацией о репозитории. Если rpm-пакет отсутствует, то добавлять приходится ручками, создавая конф. файл репозитория.
Для просмотра списка активных репозиториев выполняют команду - yum repolist
yum repolist # Выхлоп: repo id repo name status base/7/x86_64 CentOS-7 - Base 9,007 epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 10,580 extras/7/x86_64 CentOS-7 - Extras 390 updates/7/x86_64 CentOS-7 - Updates 2,469 repolist: 22,446 # repo id - id репозитория # repo name - имя репозитория # status - количество пакетов
Удаление репозиториев в CentOS
Для удаления репозиториев в системе должен быть установлен пакет yum-utils.
yum install yum-utils -y
Допустим мы хотим удалить из системы репозитории REMI и ELRepo, для этого надо узнать "repo id" при помощи команды yum repolist.
yum repolist Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirror.yandex.ru * elrepo: elrepo.0m3n.net * epel: mirror.23media.de * extras: mirror.yandex.ru * remi-safe: mirror.23media.de * updates: mirror.yandex.ru repo id repo name status base/7/x86_64 CentOS-7 - Base 9,007 elrepo ELRepo.org Community Enterprise Linux Repository - el7 162 epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 10,580 extras/7/x86_64 CentOS-7 - Extras 390 remi-safe Safe Remi's RPM repository for Enterprise Linux 7 - x86_64 1,144 updates/7/x86_64 CentOS-7 - Updates 2,469 repolist: 23,752
Удалим указанные репозитории.
yum-config-manager --disable remi-safe --disable elrepo
Команда скорее отключает указанные репозитории, чем удаляет их. Она выставляет значение параметра enabled равным 0. Файлы репозиториев ".repo" останутся на месте. Если выполнить команду yum repolist, то репозитории будут недоступны.
yum repolist Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirror.yandex.ru * epel: fedora-mirror01.rbc.ru * extras: mirror.yandex.ru * updates: mirror.yandex.ru repo id repo name status base/7/x86_64 CentOS-7 - Base 9,007 epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 10,580 extras/7/x86_64 CentOS-7 - Extras 390 updates/7/x86_64 CentOS-7 - Updates 2,469 repolist: 22,446
Теперь нужно обновить кэш YUM.
yum clean all yum makecache
Для полного удаления репозиториев следует удалить их конфигурационные файлы.
# Переходим в каталог /etc/yum.repos.d cd /etc/yum.repos.d # Удаляем файлы rm -f elrepo.repo remi-php70.repo remi-php71.repo remi-safe.repo remi.repo
Добавление репозитория EPEL
EPEL - самый простой в установке репозиторий. Epel-release package включен в стандартный Extras repository и доступен по умолчанию. Для его установки достаточно выполнить команду:
yum install epel-release -y
В процессе установки будет создан файл "epel.repo", который будет содержать все данные для работы с репозиторием. Выполним команду выводящую содержимое файла.
cat /etc/yum.repos.d/epel.repo [epel] name=Extra Packages for Enterprise Linux 7 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch failovermethod=priority enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 [epel-debuginfo] name=Extra Packages for Enterprise Linux 7 - $basearch - Debug #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch/debug mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-7&arch=$basearch failovermethod=priority enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 gpgcheck=1 [epel-source] name=Extra Packages for Enterprise Linux 7 - $basearch - Source #baseurl=http://download.fedoraproject.org/pub/epel/7/SRPMS mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=$basearch failovermethod=priority enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 gpgcheck=1
Добавление репозитория ELRepo
Сначала устанавливаем GPG ключ.
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
Устанавливаем rpm-файл репозитория.
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm Retrieving http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm Preparing... ################################# [100%] Updating / installing... 1:elrepo-release-7.0-2.el7.elrepo ################################# [100%]
Добавление репозитория REMI
Установка репозитория REMI происходит в несколько этапов. Для выполнения команды, у вас должна быть установлена утилита wget.
yum install wget -y
# Скачиваем rpm-пакет, при помощи утилиты wget wget http://remi.mirror.ate.info/enterprise/remi-release-7.rpm 2016-09-22 04:48:28 (5.43 MB/s) - ‘remi-release-7.rpm’ saved [8147/8147] # файл пакета, ‘remi-release-7.rpm’ будет сохранен в ту директорию # в которой вы находитесь в данный момент, если вы root, то /root/remi-release-7.rpm # Устанавливаем репозиторий: rpm -Uvh remi-release-7.rpm
Существуют и другие репозитории, процесс их установки будет таким же. Все нужные ссылки, как правило, указываются на страничке проектов, так же как и инструкции по установке.