Репозитории и пакеты CentOS
Для настройки репозиториев используются файлы /etc/yum.repos.d/*.repo
в формате INI следующего вида:
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=https://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=1
Где:
[base]
- секция, начинающая описание нового репозитория. Имя секции произвольное, но для наглядности желательно, чтобы оно тем или иным образом намекало на тип репозитория,name
- имя репозитория для отображения администратору,mirrorlist
- URL, по которому можно найти список зеркал этого репозитория. Если нужно указать какое-то определённое зеркало, то вместо этой опции нужно использовать опциюbaseurl
,baseurl
- URL, по которому расположен репозиторий. Желательно вместо определённого адреса указывать список зеркал с помощью опцииmirrorlist
для распределения нагрузки по зеркалам,gpgcheck
- булевая опция, принимающая два значения: 1 - нужно проверять GPG-подписи пакетов, 0 - не нужно проверять GPG-подписи пакетов,gpgkey
- при включенной проверке GPG-подписей пакетов можно указать расположение публичного GPG-ключа, при помощи которого будет проверяться GPG-подпись,enabled
- булевая опция, указывающая на то, нужно ли использовать этот репозиторий: 1 - ипользовать, 0 - не использовать.
Кроме этих опций поддерживаются также следующие:
includepkgs
- список пакетов, которые можно брать из этого репозитория. Имена пакетов перечисляются через пробел, в именах можно использовать шаблоны имён со звёздочкой в качестве символа подстановки,exclude
- списко пакетов, которые нельзя брать из этого репозитория. Аналогично, имена пакетов перечисляются через пробел, в именах можно использовать шаблоны имён со звёздочкой в качестве символа подстановки,priority
- приоритет репозитория. Чем больше число, тем ниже приоритет. При наличии в разных репозиториях пакетов с одним и тем же именем предпочтение будет отдаваться пакетам из репозиториев с более высоким приоритетом, невзирая на версию пакета.
Официальные репозитории
Базовый репозиторий /etc/yum.repos.d/CentOS-Base.repo
:
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=https://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=1
Репозиторий с обновлениями /etc/yum.repos.d/CentOS-Updates.repo
:
[updates]
name=CentOS-$releasever - Updates
enabled=0
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=https://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=1
Репозиторий с дополнительными пакетами /etc/yum.repos.d/CentOS-Extras.repo
:
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
#baseurl=https://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=0
Ещё один репозиторий с дополнительными пакетами /etc/yum.repos.d/CentOS-Plus.repo
:
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
#baseurl=https://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=0
Репозиторий /etc/yum.repos.d/CentOS-Contrib.repo
с пакетами, собранными пользователями для собственных нужд:
[contrib]
name=CentOS- - Contrib
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
#baseurl=https://mirror.centos.org/centos/$releasever/contrib/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=0
Репозиторий /etc/yum.repos.d/CentOS-Debuginfo.repo
с пакетами, содержащими отладочные данные:
[base-debuginfo]
name=CentOS-$releasever - Debuginfo
baseurl=https://debuginfo.centos.org/$releasever/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-Debug-6
enabled=0
Репозитории для неподдерживаемых релизов системы можно найти по URL http://vault.centos.org
.
Репозитории EPEL
EPEL - сокращение от Extra Packages for Enterprise Linux 6.
Для подключения основного репозитория с двоичными пакетами создаём файл /etc/yum.repo.d/EPEL.repo
:
[epel]
name=Extra Packages for Enterprise Linux $release - $basearch
baseurl=https://archives.fedoraproject.org/pub/archive/epel/$release/$basearch
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
enabled=1
Для подключения репозитория с отладочной информацией создаём файл /etc/yum.repo.d/EPEL-DebugInfo.repo
:
[epel-debuginfo]
name=Extra Packages for Enterprise Linux $release - $basearch - Debug
baseurl=https://archives.fedoraproject.org/pub/archive/epel/$release/$basearch/debug
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=1
enabled=0
Для подключения репозитория с исходными текстами для сборки пакетов создаём файл /etc/yum.repo.d/EPEL-Sources.repo
:
[epel-source]
name=Extra Packages for Enterprise Linux $release - $basearch - Source
baseurl=https://archives.fedoraproject.org/pub/archive/epel/$release/SRPMS
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=1
enabled=0
Репозитории Percona
Репозиторий /etc/yum.repos.d/percona-release.repo
с пакетами Percona:
########################################
# Percona releases and sources, stable #
########################################
[percona-release-$basearch]
name = Percona-Release YUM repository - $basearch
baseurl = http://repo.percona.com/release/$release/RPMS/$basearch
enabled = 1
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Percona
[percona-release-noarch]
name = Percona-Release YUM repository - noarch
baseurl = http://repo.percona.com/release/$release/RPMS/noarch
enabled = 1
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Percona
[percona-release-source]
name = Percona-Release YUM repository - Source packages
baseurl = http://repo.percona.com/release/$release/SRPMS
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Percona
####################################################################
# Testing & pre-release packages. You don't need it for production #
####################################################################
[percona-testing-$basearch]
name = Percona-Testing YUM repository - $basearch
baseurl = http://repo.percona.com/testing/$release/RPMS/$basearch
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Percona
[percona-testing-noarch]
name = Percona-Testing YUM repository - noarch
baseurl = http://repo.percona.com/testing/$release/RPMS/noarch
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Percona
[percona-testing-source]
name = Percona-Testing YUM repository - Source packages
baseurl = http://repo.percona.com/testing/$release/SRPMS
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Percona
############################################
# Experimental packages, use with caution! #
############################################
[percona-experimental-$basearch]
name = Percona-Experimental YUM repository - $basearch
baseurl = http://repo.percona.com/experimental/$release/RPMS/$basearch
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Percona
[percona-experimental-noarch]
name = Percona-Experimental YUM repository - noarch
baseurl = http://repo.percona.com/experimental/$release/RPMS/noarch
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Percona
[percona-experimental-source]
name = Percona-Experimental YUM repository - Source packages
baseurl = http://repo.percona.com/experimental/$release/SRPMS
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Percona
Репозитории Zabbix
Репозиторий /etc/yum.repos.d/zabbix.repo
с пакетами Zabbix:
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=http://repo.zabbix.com/zabbix/3.4/rhel/$release/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
enabled=1
[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=http://repo.zabbix.com/non-supported/rhel/$release/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1
enabled=1
Первый репозиторий содержит сами пакеты Zabbix, а во втором находятся зависимости, отсутствующие в основных репозиториях CentOS.
Настройка переменных yum
Для настройки переменных, таких как releasever
, подставляемых в настройки репозиториев, можно создавать файлы в каталоге /etc/yum/vars/
. Например, для задания переменной releasever
нужно создать файл /etc/yum/vars/releasever
с точным номером версии:
6.10
Если же в имени репозитория фигурирует только номер релиза, то я ипользую перменную release
и создаю файл /etc/yum/vars/release
с номером релиза:
6
Включенные репозитории
Для получения списка включенных репозиториев и проверки их доступности можно воспользоваться следующей командой:
# yum repolist enabled
Для получения списка отключенных репозиториев и всех репозиториев предназначены, соответственно, следующие команды:
# yum repolist disabled
# yum repolist all
Обновление локального кэша
Для очистки локального кэша и помещения в него свежих данных используются следующие команды:
# yum clean all
# yum makecache
Решение проблем
Если система устарела и не поддерживает протокол TLS1.2, то при попытке воспользоваться репозиториями может быть выведена ошибка следующего вида:
https://vault.centos.org/centos/6.10/os/x86_64/repodata/repomd.xml: [Errno 14] problem making ssl connection
Для решения проблемы можно воспользоваться другим репозиторием, доступным по протоколу HTTP:
baseurl=http://linuxsoft.cern.ch/centos-vault/$releasever/os/$basearch/
Удаление невостребованных пакетов
Для поиска пакетов с библиотеками, не требуемыми какими-либо другими пакетами, можно воспользоваться командой:
# package-cleanup --leaves
Использованные материалы:
Установка GPG-ключей репозиториев
Для установки публичных GPG-ключей репозиториев можно воспользоваться командой следующего вида:
# rpm --import http://centos.excellmedia.net/7.0.1406/os/x86_64/RPM-GPG-KEY-CentOS-7