В стандартните (официални) 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) се инсталират хранилищата по подразбиране. Можете да видите списъка им със следната команда:
ням реполист
Както можете да видите на екрана, системата има инсталирани 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
Ако няма 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 и разгледахме полезни хранилища..