Добавяне и управление на хранилища в CentOS / RHEL

В стандартните (официални) RHEL / CentOS хранилища са достъпни само малък брой основни пакети, а понякога те не предлагат най-новите версии на програми. Можете обаче да използвате публични или частни хранилища на трети страни, за да инсталирате нови версии на програми на Red Hat Enterprise Linux, CentOS, Oracle Linux и Scientific Linux. От най-често срещаните хранилища на трети страни могат да бъдат разграничени Remi и EPEL. В тази статия ще разгледаме функциите на свързване, управление и използване на допълнителни хранилища с помощта на мениджъра на пакети YUM в CentOS 7.

Съдържание:

  • Свързване на EPEL и Remi хранилища към CentOS
  • Конфигурационни файлове на хранилището (* .repo)
  • Как да деактивирате хранилище в CentOS?
  • Проверете за актуализации в правилното хранилище
  • Други популярни хранилища за пакети за CentOS

Хранилището е актуализирано хранилище на rpm софтуерни пакети за Linux. Различни мениджъри на пакети могат да използват мрежови хранилища за инсталиране и актуализиране на програми..

Свързване на EPEL и Remi хранилища към CentOS

При инсталиране на операционната система (в нашия пример това е CentOS 7) се инсталират хранилищата по подразбиране. Можете да видите списъка им със следната команда:

ням реполист

Както можете да видите на екрана, системата има инсталирани 3 хранилища - база, екстри, актуализации.

Тези основни хранилища са достатъчни, за да започнете да инсталирате основен софтуер и да инсталирате допълнителни хранилища.

Нека помислим как да добавим допълнителни хранилища в CentOS.

Може би най-популярното хранилище в момента е EPEL.

EPEL (Допълнителни пакети за Enterprise Linux) е отворен и безплатен проект за хранилище, предоставен от екипа на Fedora. Той съдържа висококачествени пакети от допълнителен софтуер за Linux дистрибуции. Това хранилище разполага с огромен брой пакети, започващи от ftp-сървъри, завършващи с php и помощни програми за мониторинг на системата. Това е най-популярното вторично хранилище. Важно е да се отбележи, че пакетите от EPEL не влизат в конфликт с родните пакети CentOS / RHEL и не ги заменят.

Репозиторият на EPEL в CentOS 7 е много лесен за инсталиране (за разлика от CentOS 6) чрез пакета RPM (това е най-лесният начин за добавяне на хранилище):

yum инсталирайте epel-release

След инсталирането това хранилище се показва в списъка, дори и без допълнителни манипулации (изчистването на yum кеша не е необходимо).

За да свържете хранилището Remi, изпълнете командата:

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

Remi - още едно популярно хранилище за CentOS. Той съдържа най-новите версии на php, както и mysql. Той е създаден от човек на име Реми Колет. За да използвате това хранилище, Epel трябва да бъде инсталиран в системата. Моля, обърнете внимание, че може да има конфликти между пакети от това хранилище и пакети от базови хранилища..

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

За да разберете от кои хранилища са инсталирани конкретни пакети във вашата система, можете да покажете пълен списък на пакетите:

yum списък е инсталиран

Както можете да видите, за всеки пакет се посочва от кой хранилище е инсталиран (има скриптове за база, актуализация, epel и анаконда на скрипта).

Можете да изброите пакетите, налични за инсталиране в конкретно хранилище:

yum repo-pkgs epel list

Конфигурационни файлове на хранилището (* .repo)

Всички файлове за конфигурация на хранилището се намират в директорията /etc/yum.repos.d/. Най- конфигурационен файл * .repo. Типичният конфигурационен файл на хранилището съдържа следните параметри:

  • име - име на хранилището;
  • baseurl - връзка към хранилището (може да бъде ftp: // адрес, http: // адрес, https: // адрес или файл: // адрес за локалното хранилище);
  • активиран - дали да използвате това хранилище: 1 - хранилището е свързано, 0 - е деактивирано;
  • асинхронен - дали да използвате паралелно зареждане на пакети (автоматично / включване / изключване);
  • gpgcheck - дали да извърши GPG проверка (1 - проверка);
  • gpgkey - връзка към ключа GPG;
  • изключвам - списък на изключените пакети;
  • includepkgs - списък на включените пакети;
  • mirrorlist - списък с огледални сървъри на хранилището.

В минимален случай репо файл може да изглежда така:

[rep_name] name = rep_name baseurl = rep_url

Например, след свързване на хранилището REMII, няколко конфигурационни файла на Remi (remi - *. Repo) ще се появят в директорията на хранилището.

Както можете да видите, Remi има отделен конфигурационен файл за всяка версия на php. Трябва да включите версията, от която се нуждаете, в конфигурационния файл, например ще имам php 7.3 на моя сървър, за това включих точно това хранилище (посочих активирано = 1 във файла remi-php73.repo):

Можете да свържете хранилището ръчно, за това трябва да създадете конфигурационен файл на хранилище в директорията /etc/yum.repos.d/. Свържете хранилището на MaruaDB.

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

Добавете към него данните, които разработчиците на пакети от MariaDB ни предоставят:

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

Как да деактивирате хранилище в CentOS?

За да изключите едно от свързаните хранилища, просто посочете в неговия конфигурационен файл разрешено = 0.

След това трябва да нулирате кеша в yum:

чисти всички

И го пресъздайте отново:

yum makecache

Сега при инсталиране или актуализиране на пакети, remi-php73 хранилище няма да се използва.

Ако искате конкретното хранилище да не се използва само при изпълнение на текущата команда за актуализиране / инсталиране на пакет, можете да деактивирате хранилището като част от yum заявката, например:

yum update -disablerepo = epel

В този пример деактивирахме EPEL хранилището и обновихме пакетите в системата..

Можете временно да деактивирате всички, освен конкретните хранилища. Например, за да инсталирате актуализации само за пакети от хранилището на MariaDB:

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

За да премахнете хранилища, използвайте помощната програма yum-config-manager, която е включена в пакета yum-utils.

Инсталиране на yum-utils:

yum - инсталирам yum-utils

Изтрийте хранилището като remi:

yum-config-manager - деактивиране на реми

За да изтриете напълно хранилището, трябва да изтриете неговите конфигурационни файлове и да актуализирате yum кеша.

Проверете за актуализации в правилното хранилище

Можем да проверим дали има някакви актуализации на пакета в необходимото хранилище, малко да извадим командата от последния параграф:

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

По този начин можете да управлявате свързаните хранилища на сървъра. Обърнете внимание, че различните хранилища могат да съдържат едни и същи пакети и при надстройката може да имате конфликт на версиите. Затова винаги оставяйте активирани само онези хранилища, с които работите..

Други популярни хранилища за пакети за CentOS

MariaDB - както подсказва името, това е хранилището, което съдържа пакетите MariaDB. Хранилището е създадено от разработчици на MariaDB, поддържа се и се актуализира постоянно..

За да инсталирате това хранилище в системата, трябва да създадете репо файл със съдържанието за него:

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

Nginx - подобно на предишното хранилище, носи пакети, свързани с nginx httpd сървъра.

И свързването на това хранилище е подобно на свързването на хранилището MariaDB. Създайте .repo файл и поставете тази информация там:

[nginx-stable] name = nginx стабилен репо базаurl = http: //nginx.org/packages/CentOS/$releasever/$basearch/ gpgcheck = 1 активиран = 1 gpgkey = https: //nginx.org/keys/nginx_signing. ключ

Този списък с хранилища е достатъчен за конфигуриране на така наречения LAMP, като nginx е инсталиран като предния сървър.

Може би този списък с хранилища е достатъчен за почти всеки потребител, ще дам още няколко примера на повече или по-малко популярни.

Webtatic - Това хранилище се поддържа от ограничен брой специалисти, главно Анди Томпсън, той съдържа пакети, свързани с 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 (например, mysql е необходим за Bitrix), можете да свържете това хранилище към себе си. Например, ако искате да свържете mysql 5.7:

Изтеглете пакета:

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

И го инсталирайте:

rpm -Uvh mysql57-общност-съобщение-el7-9.noarch.rpm

След инсталирането имах възможността да инсталирам mysql:

В тази статия показахме характеристиките на управление на хранилища в CentOS и разгледахме полезни хранилища..