Репозитории CentOS 7
Настройка репозиториев CentOS может выполняться ручным редактированием конфигурационных файлов, но более популярен вариант с установкой файла репозитория. Установка репозиториев CentOS 7 выполняется путем установки rpm файла. Так принято для всех репозиториев. Чтобы посмотреть список репозиториев CentOS 7 подключенных к системе, выполните:
А теперь рассмотрим это более подробно, в списке репозиториев.
1. SСL
SСL или Software Collections — это репозиторий от Red Hat, содержащий новые версии пакетов и программного обеспечения. Файл его установщика есть в официальном репозитории, поэтому для установки достаточно набрать:
После этого вы можете выполнить поиск нужных пакетов:
И сразу их установить:
Кроме того, вы можете устанавливать пакеты из этого репозитория так, чтобы они не заменяли уже установленные версии программ. Для этого используйте скрипт scl:
Для работы такого метода нужно установить все необходимые компоненты, например, если нужен еще и MySQL и Python, то их тоже нужно установить. Также понадобится исправить файлы конфигурации Apache.
Пакеты, установленные с помощью scl, не будут активны после перезагрузки. Этот инструмент предназначен для установки нескольких версий пакетов в вашей систему. Вы можете настроить автоматическое включение пакетов, добавив команды enable в скрипт .bashrc. Все файлы устанавливаются в /opt/ поэтому для автоматической загрузки php добавьте такую строчку:
Команда изменит переменные окружения таким образом, чтобы использовалась эта версия программы. Чтобы посмотреть все доступные пакеты в репозитории нужно использовать такую сложную конструкцию:
Это необходимо, потому что отдельной опции чтобы вывести список пакетов определенного репозитория в yum нет.
2. EPEL
EPEL или Extra Packages for Enterprise Linux — это репозиторий дополнительных пакетов для Red Hat, поддерживаемый командой проекта Fedora. Здесь есть новые версии программ, а также некоторые другие программы, которых нет в официальных репозиториях. Чтобы добавить репозиторий CentOS 7 выполните:
Затем вы можете посмотреть список пакетов:
3. Remi Collet
Remi Collet содержит тоже большое количество обновленных пакетов для CentOS от проекта Remi RPM. Этот репозиторий зависит от EPEL. Заметьте, что пакеты из этого репозитория имеют такие же имена, как и в официальных, поэтому это может вызвать нежелательное обновление, так что будьте осторожны.
Для установки необходимо скачать rpm пакет. Выполните:
4. IUS
Репозиторий IUS — это официальный репозиторий с новыми версиями пакетов от Red Hat. Здесь уже имена пакетов отличаются от используемых в репозитории по умолчанию от CentOS, поэтому проблем с обновлением не возникнет. Чтобы установить репозиторий CentOS 7 выполните:
5. nux-dextop
Есть и репозитории, которые будут полезны, тем, кто хочет использовать CentOS в качестве домашней системы. Этот репозиторий содержит различное дополнительное программное обеспечение, видео кодеки, плееры и так далее. Для его установки выполните:
Разные релизы CentOS
В одном репозитории мы можем легко хранить пакеты для различных релизов операционной системы CentOS (и не только CentOS, но и PPA). Для этого создаем каталог под новый релиз, синхронизируем его с источником и создаем из него репозиторий, например:
mkdir -p /usr/share/nginx/html/repos/6/{os,updates}/x86_64
* в данном примере предполагается использование репозитория для релиза 6.
Синхронизируем пакеты:
rsync -iavrt —delete —exclude=’repo*’ rsync://mirror.yandex.ru/centos/6/os/x86_64/ /usr/share/nginx/html/repos/6/os/x86_64/
rsync -iavrt —delete —exclude=’repo*’ rsync://mirror.yandex.ru/centos/6/updates/x86_64/ /usr/share/nginx/html/repos/6/updates/x86_64/
Создаем репозитории:
createrepo -v /usr/share/nginx/html/repos/6/os/x86_64
createrepo -v /usr/share/nginx/html/repos/6/updates/x86_64
Подключение репозитория от Remi
для CentOS 7
Для установки репозитория Remi в CentOS 7 достаточно выполнить команду:
# rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
Посмотреть активные репозитории можно следующей командой:
yum repolist = вывод части команды = Загружены модули: fastestmirror Loading mirror speeds from cached hostfile * base: mirror.corbina.net * epel: mirror.logol.ru * extras: mirror.reconn.ru * remi-safe: mirror.reconn.ru * updates: mirror.corbina.net remi-safe Safe Remi's RPM repository for Enterprise Linux 7 - x86_64 3 144
По умолчанию установлен репозиторий remi-safe который имеет только дополнительные пакеты для базового хранилища и коллекций программного обеспечения. Например, при попытке установить phpMyAdmin будет установлена старая версии. Для установки последних версий надо активировать репозиторий remi.
Посмотрим репозитории что у нас есть в системе выполнив команду:
ls /etc/yum.repos.d/ -l итого 92 -rw-r--r-- 1 root root 1664 ноя 23 16:16 CentOS-Base.repo -rw-r--r-- 1 root root 1309 ноя 23 16:16 CentOS-CR.repo -rw-r--r-- 1 root root 649 ноя 23 16:16 CentOS-Debuginfo.repo -rw-r--r-- 1 root root 314 ноя 23 16:16 CentOS-fasttrack.repo -rw-r--r-- 1 root root 630 ноя 23 16:16 CentOS-Media.repo -rw-r--r-- 1 root root 1331 ноя 23 16:16 CentOS-Sources.repo -rw-r--r-- 1 root root 5701 ноя 23 16:16 CentOS-Vault.repo -rw-r--r-- 1 root root 951 окт 2 2017 epel.repo -rw-r--r-- 1 root root 1050 окт 2 2017 epel-testing.repo -rw-r--r-- 1 root root 261 фев 8 15:23 mariadb.repo -rw-r--r-- 1 root root 113 июл 15 2014 nginx.repo -rw-r--r-- 1 root root 446 дек 21 20:50 remi-glpi91.repo -rw-r--r-- 1 root root 446 дек 21 20:50 remi-glpi92.repo -rw-r--r-- 1 root root 446 дек 21 20:50 remi-glpi93.repo -rw-r--r-- 1 root root 446 дек 21 20:50 remi-glpi94.repo -rw-r--r-- 1 root root 456 дек 21 20:50 remi-php54.repo -rw-r--r-- 1 root root 1314 дек 21 20:50 remi-php70.repo -rw-r--r-- 1 root root 1314 дек 21 20:50 remi-php71.repo -rw-r--r-- 1 root root 1314 дек 21 20:50 remi-php72.repo -rw-r--r-- 1 root root 1314 дек 21 20:50 remi-php73.repo -rw-r--r-- 1 root root 2605 дек 21 20:50 remi.repo -rw-r--r-- 1 root root 750 дек 21 20:50 remi-safe.repo
Надеюсь, вы заметили что есть репозитории glpi.
GLPI — это программный инструмент ITSM, который помогает вам легко планировать и управлять изменениями в ИТ структуре предприятия, эффективно решать возникающие проблемы используя систему заявок, так же позволяет вам получить контроль над ИТ-бюджетом и расходами вашей компании. В будущем я расскажу как работать с этим замечательным проектом. Кроме того, то что Remi Collet поддерживает репозиторий меня очень радует.
Перед работой с репозиториями Remi необходимо установите пакет yum-utils, что бы не получать ошибку «bash: yum-config-manager: command not found». Установим yum-utils выполнив необходимую команду:
yum install yum-utils
Сейчас у нас активирован remi-safe. Для активации remi надо вначале отключить remi-safe а потом активировать remi выполнив команды:
yum-config-manager --disable remi-safe yum-config-manager --enable remi
Перед тем как определится какую версию PHP использовать я всегда смотрю на сайте Supported Versions PHP.
для CentOS 8
В 8 версии CentOS используется версия php 7.2 которая уже может удовлетворять требования множества новых сайтов, но если вам нужны версии новее подключайте Remi.
Подключаем репозиторий Remi, выполнив следующую команду:
dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
Посмотрим список всех доступных вариантов установки php:
dnf module list php = вывод команды = Последняя проверка окончания срока действия метаданных: 1:41:10 назад, Пн 28 окт 2019 08:05:09. CentOS-8 - AppStream Name Stream Profiles Summary php 7.2 common , devel, minimal PHP scripting language Remi's Modular repository for Enterprise Linux 8 - x86_64 Name Stream Profiles Summary php remi-7.2 common , devel, minimal PHP scripting language php remi-7.3 common , devel, minimal PHP scripting language php remi-7.4 common , devel, minimal PHP scripting language Hint: efault, nabled, disabled, nstalled
Из вывода выше видно что по умолчанию стоит базовая версия CentOS 7.2 и имена она будет установлена.
Удаление и отключение репозиториев
Если вам больше не нужен тот или иной репозиторий, то вы можете его отключить или полностью удалить. Например, вы можете отключить репозиторий на время выполнения команды:
Если нужно отключить репозиторий навсегда, то вам придется редактировать файл репозитория. Все файлы репозиториев находятся в папке /etc/yum.repos.d/. Например, чтобы отключить EPEL найдите его файл и замените строчку enabled=1 на enabled=0:
Теперь, если вывести список репозиториев CentOS, то вы увидите что один из них отключен:
Чтобы включить обратно, вам достаточно вернуть значение на место. Также вы можете полностью удалить репозиторий. Для этого достаточно удалить его файл с помощью yum:
Важно заметить, что при удалении репозитория пакеты, которые были из него установлены не удалятся, возможно, только будет снижена их версия, до версии из официальных репозиториев
Удаление и отключение репозиториев
Если вам больше не нужен тот или иной репозиторий, то вы можете его отключить или полностью удалить. Например, вы можете отключить репозиторий на время выполнения команды:
yum update –disablerepo=remi
Если нужно отключить репозиторий навсегда, то вам придется редактировать файл репозитория. Все файлы репозиториев находятся в папке /etc/yum.repos.d/. Например, чтобы отключить EPEL найдите его файл и замените строчку enabled=1 на enabled=0:
sudo vi /etc/yum.repos.d/epel.repo
Теперь, если вывести список репозиториев CentOS, то вы увидите что один из них отключен:
Чтобы включить обратно, вам достаточно вернуть значение на место. Также вы можете полностью удалить репозиторий. Для этого достаточно удалить его файл с помощью yum:
sudo yum remove epel-release
Важно заметить, что при удалении репозитория пакеты, которые были из него установлены не удалятся, возможно, только будет снижена их версия, до версии из официальных репозиториев
Настройка репозиториев CentOS
В Red Hat есть утилита subscribtion-manager, которая позволяет управлять подключёнными репозиториями, устанавливать их и менять конфигурации. Она проприетарная, поэтому из CentOS вырезана. Но настройка репозитория CentOS 7 необязательно должна выполняться вручную. Существует специальная утилита — yum-config-manager, правда, она не поставляется вместе с системой и её надо установить:
Утилита имеет несколько опций, но мы будем использовать только некоторые из них:
- —add-repo — добавить репозиторий;
- —enable — активировать репозиторий;
- —disable — отключить репозиторий;
- —setopt — установить значение параметра репозитория;
Опции —add-repo надо передать адрес файла .repo с описанием репозитория, поэтому она используется очень редко, а вот для включения или отключения репозиториев утилиту использовать очень удобно. Например, отключаем репозиторий nux-dextop:
Затем включаем обратно:
Если всё прошло так, как надо, то утилита выведет новую конфигурацию, если же ничего не выведено, значит такой пакет не найден. Проверьте, правильно ли вы вводите название репозитория с помощью команды:
Добавление репозитория EPEL
EPEL — самый простой в установке репозиторий. Epel-release package включен в стандартный Extras repository и доступен по умолчанию. Для его установки достаточно выполнить команду:
yum install epel-release -y
В процессе установки будет создан файл «epel.repo», который будет содержать все данные для работы с репозиторием. Выполним команду выводящую содержимое файла.
cat /etc/yum.repos.d/epel.repo name=Extra Packages for Enterprise Linux 7 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch failovermethod=priority enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 name=Extra Packages for Enterprise Linux 7 - $basearch - Debug #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch/debug mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-7&arch=$basearch failovermethod=priority enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 gpgcheck=1 name=Extra Packages for Enterprise Linux 7 - $basearch - Source #baseurl=http://download.fedoraproject.org/pub/epel/7/SRPMS mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=$basearch failovermethod=priority enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 gpgcheck=1
Настройка клиента
Чтобы гарантировать, что все пакеты будут скачиваться с локального репозитория, отключаем имеющиеся:
find /etc/yum.repos.d -type f -exec sed -i «s/enabled=1/enabled=0/g» {} \;
* в данном примере мы во всей файлах каталога /etc/yum.repos.d нашли и заменили enabled=1 на enabled=0.
* можно также поступить радикально и удалить репозитории командой \rm /etc/yum.repos.d/*
Создаем файл с настройкой репозитория:
vi /etc/yum.repos.d/local.repo
name=Local Yum Repo
baseurl=http://192.168.0.10/repos/$releasever/os/$basearch/
enabled=1
gpgcheck=0
name=Local Yum Repo for update packages
baseurl=http://192.168.0.10/repos/$releasever/updates/$basearch/
enabled=1
gpgcheck=0
* где local — название репозитория; name — описание; baseurl — базовый адрес http, по которому нужно искать пакеты; enabled — указание на включение или отключение репозитория; gpgcheck — включить или отключить проверку GPG сигнатур для пакетов.
Также можно задать приоритет для каждого из репозиториев:
priority=1
* 1 — наивысший приоритет.
Готово. Можно выполнить установку.
Если в процессе обновления или установки мы получим ошибку PYCURL ERROR 22, выполняем команду yum clean all.
Посмотреть список установленных пакетов и с какого репозитория они были скачаны можно командой:
yum list installed
Установка epel repo в CentOS
Полностью epel репозиторий называется так — Extra Packages for Enterprise Linux. Это хранилище пакетов, созданное группой специалистов операционной системы Fedora. Пакеты из epel репозитория никогда не конфликтуют и не переустанавливают базовые пакеты RHEL. Поддерживаются пакеты для следующих операционных систем:
- Red Hat Enterprise Linux (RHEL)
- CentOS
- Scientific Linux (SL)
- Oracle Linux (OL)
Установить репозиторий epel в CentOS проще всего, так как epel-release package включен в стандартный Extras repository CentOS, который доступен по-умолчанию. На сегодняшний день это самый популярный неофициальный репозиторий для CentOS.
Установка репозитория epel в centos:
# yum -y install epel-release
Теперь если проверим папку /etc/yum.repos.d, увидим там файл epel.repo, в котором будет информация о новом подключенном репозитории.
Установка PostgreSQL в CentOS/RHEL
Хотя PostgreSQL можно установить из базового репозитория CentOS, мы выполним установку репозитория от разработчиков, так как в нем всегда присутствует актуальная версия пакета.
Первым шагом устанавливаем репозиторий PosgreSQL (на данный момент он устанавливается следующим образом):
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
В данном репозитории есть как самые новые версии PostgreSQL, так и более старые версии. Информация о репозитории выглядит следующим образом:
Установим последнюю доступную версию версию (PostrgeSQL 11) c помощью yum.
yum install postgresql11-server -y
В процессе установки устаналивается сам сервере PostgreSQL и необходимые библотеки:
После установки пакетов, нужно произвести инициализацию базы данных:
Так же сразу добавим сервер БД в автозагрузку и запустим его:
systemctl enable postgresql-11
systemctl start postgresql-11
Чтобы убедиться, что сервер запустился и никаких проблем нет, проверим его статус:
]# systemctl status postgresql-11
Если вам нужен доступ к PostgreSQL снаружи, вам нужно открыть порт TCP/5432, в стандартном firewall в Centos 7:
# firewall-cmd –zone=public –add-port=5432/tcp –permanent# firewall-cmd –reload
#iptables-A INPUT -m state –state NEW -m tcp -p tcp –dport 5432 -j ACCEPT
#service iptables restart
Если включен SELinux, выполните:
setsebool -P httpd_can_network_connect_db 1
Yum: установка, обновление и удаление пакетов
Полная справка по менеджеру пакетов :
yum help
Очистить кеш всех пакетов (обчычно используется при возникновении проблем при работе yum):
yum clean all
Пересоздать кеш пакетов заново:
yum makecache
Отобразить список подключенных репозиториев:
yum repolist
Вывести список всех доступных пакетов для установки:
yum list available
Список всех пакетов, которые установлены в системе:
yum list installed
Вывести список пакетов, которые относятся к ядру Linux:
yum list kernel
Проверить установлен ли в системе определенный пакет, например, apache:
yum list installed httpd
Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirror.awanti.com * epel: mirror.datacenter.by * extras: mirrors.powernet.com.ru * updates: mirror.axelname.ru Installed Packages httpd.x86_64 2.4.6-93.el7.centos @base
Можно получить более подробную информацию о пакете:
yum info httpd
Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirror.awanti.com * epel: mirrors.glesys.net * extras: mirrors.powernet.com.ru * updates: mirror.axelname.ru Installed Packages Name : httpd Arch : x86_64 Version : 2.4.6 Release : 93.el7.centos Size : 9.4 M Repo : installed From repo : base Summary : Apache HTTP Server URL : http://httpd.apache.org/ License : ASL 2.0 Description : The Apache HTTP Server is a powerful, efficient, and extensible : web server.
Чтобы установить пакет используется команда . Для установки веб-сервера apache выполните:
yum install httpd
Перед установкой пакета можно проверить его на зависимости и необходимые пакеты с помощью команды:
yum deplist httpd
Если вы хотите установить какой-либо пакет, но забыли его полное название, можно воспользоваться подстановочным символом . Например:
yum install epel-*
Можно установить сразу несколько пакетов:
yum install wget htop yum-utils
Переустановка пакета:
yum reinstall proftpd
Удалить установленный пакет:
yum remove httpd
!Но перед удалением любого пакета, рекомендуется сначала проверить его на зависимости (бывают пакеты, удаление которых влечет за собой удаление множества других пакетов, что в следствии приводит к неработоспособности системы):
yum deplist httpd
Найти пакет по имени или описанию:
yum search httpd
С помощью опции вы можете найти пакеты, содержавшие определенный файл, например:
yum provides */squid.conf
Выполнить обновление всех установленных пакетов:
yum update
Вы можете обновить только определенный пакет, указав его имя:
yum update httpd
Проверить если доступные обновления для системы можно командой:
yum check-update
Получить информацию о доступных обновлениях безопасности:
yum updateinfo list security
Бывают случаи, когда после обновления какого-либо пакета или сервиса, возникают проблемы. Например, после обновления php, перестало работать ваше приложение или сайт. Вы можете вернуть предыдущую версию пакета, откатив установленный пакет:
yum downgrade php
Имеется возможность группой установки пакетов командой . В репозитории существуют предопределенные группы пакетов с различными наборами программ. Вы можете вывести список имеющихся групп:
yum grouplist
Рассмотрим на примере группового листа «Basic Web Server». Получить информацию о группе и пакетах в ней:
yum groupinfo "Basic Web Server"
При проверке мы видим, что будут установлены набор пакетов и сервисов для веб-сервера.
Ещё один полезный групповой лист «System Administration Tools»:
yum groupinfo "System Administration Tools"
Как видим, в данном листе содержатся пакеты, которые будут полезны для мониторинга и отладки.
Установить групповой лист можно командой:
yum groupinstall "System Administration Tools"
Удалить репозиторий в CentOS
Для того, чтобы удалить репозиторий из системы, необходимо узнать его id с помощью команды yum repolist. Об этом я писал в предыдущем разделе. Затем с помощью утилиты yum-config-manager, которая входит в пакет yum-utils выполним удаление:
# yum-config-manager --disable remi-safe bash: yum-config-manager: command not found
Если получаете такую ошибку, то установите пакет yum-utils:
# yum -y install yum-utils
Удаление репозитория в centos:
# yum-config-manager --disable remi-safe
Теперь проверяем список активных репозиториев:
Удаленного репозитория remi-safe нет. Значит все в порядке, отключение репозитория прошло успешно.
Для того, чтобы обновить кэш yum после изменения репозиториев, можно воспользоваться следующими командами:
Очистить кеш:
# yum clean all
Пересоздать кеш:
# yum makecache