У стандартних (офіційних) репозиторіях RHEL / CentOS є лише невелика кількість базових пакетів, причому в них іноді пропонуються не найновіші версії програм. Однак ви можете використовувати сторонні публічні або приватні репозиторії для установки нових версій програм в Red Hat Enterprise Linux, CentOS, Oracle Linux і Scientific Linux. З найбільш поширених сторонніх репозиторіїв можна виділити Remi і EPEL. У цій статті ми розглянемо особливості підключення, управління і використання додаткових репозиторіїв за допомогою пакетного менеджера YUM в CentOS 7.

Репозиторій є оновлюється сховище rpm-пакетів програм для Linux. Різні менеджери пакетів можуть використовувати мережеві репозиторії для встановлення та оновлення програм.

Підключення репозиторіїв EPEL і Remi в CentOS

При установці операційної системи (в нашому прикладі це CentOS 7), за замовчуванням встановлюються базові репозиторії. Подивитися їх список можна за допомогою такої команди:

yum repolist

ням реполіст

Як можна побачити на скріншоті в системі встановлено 3 сховища – base, extras, updates.

Цих основних репозиторіїв вистачить, щоб почати вашу роботу по установці базового ПО та встановлення додаткових репозиторіїв.

Розглянемо, як додати додаткові репозиторії в CentOS.

Мабуть, найпопулярніший на даний момент репозиторій – це EPEL.

EPEL (Extra Packages for Enterprise Linux) – це відкритий і безкоштовний проект сховища, що надається командою Fedora. Він містить в собі високоякісні пакети додаткового ПЗ для Linux. В даному репозиторії розміщується величезна кількість пакетів починаючи з ftp-серверів, закінчуючи php і утилітами моніторингу системи. Це найпопулярніший додатковий репозиторій. Важливо відзначити, що пакети з EPEL не конфліктують з рідними пакетами CentOS / RHEL і не замінюють їх.

Репозиторій EPEL в CentOS 7 встановлюється дуже просто (на відміну від CentOS 6) через RPM пакет (це найпростіший спосіб додавання репозиторію):

yum install epel-release

yum встановити epel-release

Після установки даний репозиторій відображається в списку, навіть без додаткових маніпуляцій (очищення кеша yum не потрібно).

Щоб підключити репозиторій Remi, виконайте команду:

rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

Ремі – ще один популярний репозиторій для CentOS. Містить в собі найновітніші версії php, а так само mysql. Був створений людиною на ім’я Remi Collet. Щоб використовувати цей репозиторій, в системі повинен бути встановлений Epel. Зверніть увагу, що можуть бути конфлікти пакетів з цього сховища з пакетами з базових репозиторіїв.

Якщо RPM пакета для потрібного сховища немає, ви можете додати його, вручну створивши конфігураційний .repo файл в каталозі /etc/yum.repos.d (див. Наступний розділ).

Щоб зрозуміти з яких репозиторіїв встановлені конкретні пакети у вашій систему, ви можете вивести повний список пакетів:

yum list installed

Як ви бачите, для кожного пакета вказано з якого сховища він встановлений (на скріпншоте є репозиторії base, update, epel і anaconda).

список yum встановлений

Ви можете вивести список пакетів, доступних для установки в конкретному репозиторії:

yum repo-pkgs epel list

Файли репозиторіїв (* .repo)

Всі конфігураційні файли репозиторіїв розташовані в директорії /etc/yum.repos.d/. В конфігураційних файл * .repo. Типовий конфігураційний файл сховища містить наступні параметри:

  • ім’я – ім’я сховища;
  • негідник – посилання на репозиторій (може бути ftp: // address, http: // address, https: // address або file: // address для локального сховища);
  • увімкнено – чи потрібно використовувати даний репозиторій: 1 – репозиторій підключений, 0 – відключений;
  • асинхронний – використовувати чи паралельну завантаження пакетів (auto / on / off);
  • gpgcheck – чи потрібно виконувати перевірку GPG (1 – перевіряти);
  • gpgkey – посилання на GPG ключ;
  • виключити – список виключених пакетів;
  • включити pkgs – список включених пакетів;
  • дзеркальний список – список дзеркал сховища.

У мінімальному випадку repo файл може виглядати так:

[rep_name]
name=rep_name
baseurl=rep_url

Наприклад, після підключення сховища REMII, в директорії репозиторіїв з’явиться кілька конфігураційних файлів Remi (remi – *. Repo).

/etc/yum.repos.d

Як ви бачите, Remi має окремий конфігураційний файл для кожної версії php. Вам потрібно включити потрібну вам версію в файлі конфігурації, наприклад у мене на сервері буде стояти версія php 7.3, для цього я включив саме цей репозиторій (в файлі remi-php73.repo вказав enabled = 1):

enabled = 1 включити repository в centos

Ви можете підключить репозиторій вручну, для цього потрібно створити конфігураційний файл сховища в директорії /etc/yum.repos.d/. Підключимо репозиторій MaruaDB.

nano /etc/yum.repos.d/mariadb.repo

Додамо в нього дані, яке нам надає розробник пакета MariaDB:

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.4/centos73-amd64/
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Як відключити репозиторій в CentOS?

Щоб відключити один з підключених репозиторіїв, досить в його файлі конфігурації вказати enabled=0.

remi репозиторій увімкнено = 0

Після цього, потрібно скинути кеш в yum:

yum clean all

І перебудувати його заново:

yum makecache

Тепер при установці або оновленні пакетів, репозиторій remi-php73 використовуватися не буде.

Якщо ви хочете, щоб певний репозиторій не використовувалася тільки при виконанні поточної команди поновлення / установки пакета, можна відключити репозиторій в рамках виконання запиту yum, наприклад:

yum update —disablerepo=epel

У цьому прикладі ми відключили репозиторій EPEL і виконали оновлення пакетів в системі.

Ви можете тимчасово відключити всіх репозиторії, крім певних. Наприклад, щоб встановити оновлення тільки для пакетів з репозиторію MariaDB:

yum update --disablerepo "*" --enablerepo=mariadb

Для видалення репозиторіїв використовується утиліта yum-config-manager, яка входить в набір yum-utils.

Встановіть yum-utils:

yum -y install yum-utils

Видаліть репозиторій, наприклад remi:

yum-config-manager --disable remi

Для повного видалення репозиторій потрібно видалити його конфігураційні файли і оновити кеш yum.

Перевірка оновлень в потрібному репозиторії

Ми можемо перевірити, чи є оновлення пакетів в потрібному репозиторії, трохи ізмегім команду з минулого пункту:

yum check-update --disablerepo "*" --enablerepo=mariadb

yum check-update --disablerepo -enablerepo

Таким чином ви можете управляти підключеним репозиторіями на сервері. Відзначимо, що різні сховища можуть містити однакові пакети і при оновленні у вас може виникати конфлікт версій. Тому завжди залишайте ввімкненими тільки ті репозиторії, з якими ви працюєте.

Інші популярні репозиторії пакетів для CentOS

MariaDB – як можна здогадатися з назви, це репозиторій в якому містяться пакети MariaDB. Репозиторій Створено розробниками MariaDB, підтримується і оновлюється постійно.

Щоб встановити даний репозиторій в систему, потрібно створити для нього repo файл з вмістом:

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.4/centos73-amd64/
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Nginx – аналогічно попередньому сховища, несе в собі пакети пов’язані з httpd-сервером nginx.

І підключення даного сховища, схоже на підключення сховища MariaDB. Створюємо створюємо .repo файл і поміщаємо туди дану інформацію:

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/CentOS/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key

Даного списку репозиторіїв вистачить для настройки так званого LAMP, з встановленим в якості front-end сервера nginx-му.

Мабуть, цього списку репозиторіїв вистачить практично кожному користувачеві, я наведу ще пару прикладів більш-менш популярних.

Вебтатика – даний репозиторій підтримується обмеженою кількістю фахівців, в основному це Andy Thompson, в ньому міститися пакети відносяться до php, але менш популярний, ніж Remi, і я здогадуюся чому. На момент написання статті, остання версія php в цьому репозиторії була 7.2.

yum repo-pkgs webtatic list | grep php7

mod_php71w.x86_64 7.1.31-1.w7 webtatic
mod_php72w.x86_64 7.2.21-1.w7 webtatic
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
php72w-tidy.x86_64 7.2.21-1.w7 webtatic
php72w-xml.x86_64 7.2.21-1.w7 webtatic
php72w-xmlrpc.x86_64 7.2.21-1.w7 webtatic

Щоб підключити даний репозиторій, потрібно встановити rpm пакет:

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

MySQL – ну і мабуть я нагадаю про mysql. Даний репозиторій не поставив разом з популярними, так як на мій погляд mysql як сервер БД відійшов на другий план і в основному на сервера встановлюється MariaDB. АЛЕ якщо хтось бажає встановити саме mysql (наприклад, для Bitrix потрібен саме mysql), ви можеже підключити цей репозиторій собі. Наприклад якщо хочете підключити mysql 5.7:

Викачуємо пакет:

wget http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

І встановлюємо його:

rpm -Uvh mysql57-community-release-el7-9.noarch.rpm

Після установки, у мене з’явилася можливість встановити mysql:

додати репозиторій mysql centos

У цій статті ми показали особливості управління репозиторіями в CentOS і розглянули корисні репозиторії.

Leave a Reply

Your email address will not be published. Required fields are marked *