У стандартних (офіційних) репозиторіях RHEL / CentOS є лише невелика кількість базових пакетів, причому в них іноді пропонуються не найновіші версії програм. Однак ви можете використовувати сторонні публічні або приватні репозиторії для установки нових версій програм в Red Hat Enterprise Linux, CentOS, Oracle Linux і Scientific Linux. З найбільш поширених сторонніх репозиторіїв можна виділити Remi і EPEL. У цій статті ми розглянемо особливості підключення, управління і використання додаткових репозиторіїв за допомогою пакетного менеджера YUM в CentOS 7.
зміст:
- Підключення репозиторіїв EPEL і Remi в CentOS
- Файли репозиторіїв (* .repo)
- Як відключити репозиторій в CentOS?
- Перевірка оновлень в потрібному репозиторії
- Інші популярні репозиторії пакетів для CentOS
Підключення репозиторіїв 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 не потрібно).
Щоб підключити репозиторій Remi, виконайте команду:
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
Якщо RPM пакета для потрібного сховища немає, ви можете додати його, вручну створивши конфігураційний .repo файл в каталозі /etc/yum.repos.d (див. Наступний розділ).
Щоб зрозуміти з яких репозиторіїв встановлені конкретні пакети у вашій систему, ви можете вивести повний список пакетів:
yum list installed
Як ви бачите, для кожного пакета вказано з якого сховища він встановлений (на скріпншоте є репозиторії base, update, epel і anaconda).
Ви можете вивести список пакетів, доступних для установки в конкретному репозиторії:
yum repo-pkgs epel list
Файли репозиторіїв (* .repo)
Всі конфігураційні файли репозиторіїв розташовані в директорії /etc/yum.repos.d/. В конфігураційних файл * .repo. Типовий конфігураційний файл сховища містить наступні параметри:
- name - ім'я сховища;
- baseurl - посилання на репозиторій (може бути ftp: // address, http: // address, https: // address або file: // address для локального сховища);
- enabled - чи потрібно використовувати даний репозиторій: 1 - репозиторій підключений, 0 - відключений;
- async - використовувати чи паралельну завантаження пакетів (auto / on / off);
- gpgcheck - чи потрібно виконувати перевірку GPG (1 - перевіряти);
- gpgkey - посилання на GPG ключ;
- exclude - список виключених пакетів;
- includepkgs - список включених пакетів;
- mirrorlist - список дзеркал сховища.
У мінімальному випадку repo файл може виглядати так:
[Rep_name] name = rep_name baseurl = rep_url
Наприклад, після підключення сховища REMII, в директорії репозиторіїв з'явиться кілька конфігураційних файлів Remi (remi - *. Repo).
Як ви бачите, Remi має окремий конфігураційний файл для кожної версії php. Вам потрібно включити потрібну вам версію в файлі конфігурації, наприклад у мене на сервері буде стояти версія php 7.3, для цього я включив саме цей репозиторій (в файлі remi-php73.repo вказав enabled = 1):
Ви можете підключить репозиторій вручну, для цього потрібно створити конфігураційний файл сховища в директорії /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
.
Після цього, потрібно скинути кеш в 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
Таким чином ви можете управляти підключеним репозиторіями на сервері. Відзначимо, що різні сховища можуть містити однакові пакети і при оновленні у вас може виникати конфлікт версій. Тому завжди залишайте ввімкненими тільки ті репозиторії, з якими ви працюєте.
Інші популярні репозиторії пакетів для 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-му.
Мабуть, цього списку репозиторіїв вистачить практично кожному користувачеві, я наведу ще пару прикладів більш-менш популярних.
Webtatic - даний репозиторій підтримується обмеженою кількістю фахівців, в основному це 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:
У цій статті ми показали особливості управління репозиторіями в CentOS і розглянули корисні репозиторії.