Как установить приложение в centos
Программное обеспечение в Linux распространяется, как правило, в виде пакетов, которые хранятся в репозиториях. Для управления пакетами используются специальные утилиты - менеджеры пакетов.
В системах Debian и Ubuntu это инструменты apt-get и apt-cache . Основные операции - установка, обновление, удаление - выполняются apt-get (и для большинства действий он требует прав суперпользователя); apt-cache работает с локальным кэшем и используется для поиска пакетов и получения информации о них. В последних версиях ОС также доступен инструмент apt,о бъединяющий в себе функции этих двух утилит. Синтаксис команд при этом не изменяется, и во всех приведенных ниже примерах вы можете использовать apt вместо apt-get/apt-cache.
В Centos и Bitrix для управления пакетами используется yum .
Обновление базы пакетов
Перед выполнением каких-либо операций с apt-get или yum имеет смысл актуализировать локальный кэш пакетов до текущего состояния репозитория:
Debian / Ubuntu
Centos / Bitrix
Поиск пакетов
Если вы не уверены в названии конкретного пакета, вы можете выполнить его поиск по репозиторию. Поиск осуществляются по названию и описанию пакетов.
Debian / Ubuntu
Centos / Bitrix
Получение информации о пакете
Если перед установкой вы хотите уточнить дополнительные детали (версию программы, размер пакета, сведения о необходимых зависимостях и пр.), можно вывести информацию о пакете:
Debian / Ubuntu
Centos / Bitrix
Установка пакетов
Установить пакет можно одной простой командой:
Debian / Ubuntu
Centos / Bitrix
Так же можно установить сразу несколько пакетов, просто перечислив их друг за другом:
Debian / Ubuntu
Centos / Bitrix
Если вам необходимо установить определенную версию, укажите ее после имени пакета:
Debian / Ubuntu
Centos / Bitrix
Для того, чтобы в процессе установки автоматически отвечать "Yes" на все запросы системы, можно добавить ключ -y:
Debian / Ubuntu
Centos / Bitrix
Обновление установленных пакетов
Обновить уже установленные пакеты до актуальных версий можно следующим образом:
Debian / Ubuntu
Centos / Bitrix
Удаление пакетов
Для удаления приложений используйте:
Debian / Ubuntu
Centos / Bitrix
В Debian / Ubuntu можно также запустить автоматическое удаление ненужных пакетов для очистки системы. "Ненужным" система посчитает пакет, установленный не самостоятельно, а как зависимость для другого пакета, который на данный момент уже удален.
Статья представляет из себя небольшую шпаргалку по работе с пакетным менеджером dnf (CentOS 8) и yum (CentOS 7 и ниже). В данном руководстве мы будем использовать только команду yum, так как она работает и в CentOS 7 и в 8.
Репозитории
Команда yum/dnf использует репозитории для своей работы. Очень важно понять, как с ними работать в системе. Конфиги репозиториев CentOS описывают пути, по которым система может брать установочные файлы для пакетов, а также правила работы с самими репозиториями.
Примеры команд для управления репозиториями
1. Просмотр репозиториев.
Список включенных репозиториев:
Список включенных и отключенных репозиториев:
yum repolist all
Также мы можем получить подробное описание для каждого включенного репозитория:
Список отключенных репозиториев можно посмотреть отдельно командой:
yum repolist disabled
2. Добавление репозитория командой.
Для добавления репозитория мы можем воспользоваться командой yum-config-manager, для этого сначала нужно установить yum-utils:
yum install yum-utils
yum-config-manager --add-repo <репозиторий>
3. Добавление репозитория через файл.
Также мы можем создать конфигурационный файл с описанием репозитория. Все файлы находятся в каталоге /etc/yum.repos.d. Например, создадим файл с добавлением репозитория mariadb:
- name — произвольное имя репозитория.
- baseurl — путь, по которому система может забирать пакеты из репозитория.
- gpgkey — путь до открытого gpg-ключа. Нужен для проверки цифровой подписи пакетов.
- gpgcheck — нужно ли проверять цифровую подпись пакетов.
- enabled — опция включает или выключает репозиторий.
4. Временное включение и отключение репозиториев во время операций (на примере репозитория EPEL).
Отключить во время обновления:
yum update --disablerepo=epel
Включить во время обновления:
yum update --enablerepo=epel
Отключить во время установки:
yum install --disablerepo=epel
Включить во время установки:
yum install --enablerepo=epel
5. Постоянное отключение/включение репозиториев.
Мы можем отключить наш репозиторий командой:
yum-config-manager --disable <имя репозитория>
* для выполнения данной команды мы должны установить в систему пакет yum-utils.
Разрешить репозиторий можно той же командой с опцией --enable:
Также мы можем выполнить настройку в конфигурационном файле, например:
* в данном примере 1 разрешает репозиторий, а 0 запрещает.
6. Настройка опций.
Наши репозитории настраиваются с помощью опций, которые перечислены в конфигурационном файле. Мы можем также их задавать командой:
yum-config-manager --save --setopt=<имя репозитория>.<имя опции>=<значение>
yum-config-manager --save --setopt=mariadb.module_hotfixes=1
Обслуживание
1. Удалить кэш для списков пакетов в репозиториях, а также загруженные исходники для пакетов:
yum clean --enablerepo=* all
Также мы можем удалить кэш только для определенных репозиториев, например:
yum clean all --disablerepo="*" --enablerepo="epel,nginx-thirdparty"
* обязательно, сначала должен следовать disablerepo, после enablerepo.
2. Сформировать кэш списков пакетов в репозиториях:
Установка, обновление и получение информации о пакетах
1. Установка пакета:
yum install <имя пакета>
2. Обновление всех установленных пакетов:
3. Обнолвение конкретного пакета
yum update <имя пакета>
4. Установить пакет из определенного репозитория:
yum --disablerepo="*" --enablerepo=thirdparty install nginx
* как говорилось выше, мы можем оперировать опциями disablerepo и enablerepo для включения и отключения репозитория во время установки. В данном примере мы запретили все и разрешили установить нужный нам пакет из репозитория thirdparty.
5. Только скачать пакет, не устанавливая его:
yum install --downloadonly --downloaddir=<куда скачать> <имя пакета>
yum install --downloadonly --downloaddir=/tmp nodejs
* скачиваем пакет nodejs в каталог /tmp.
6. Распаковать содержимое пакета RPM:
rpm2cpio <путь до файла rpm> | cpio -idmv
Просмотр информации о пакетах
1. Список установленных пакетов:
yum list --installed
2. Получение зависимостей для пакета:
yum deplist <имя пакета>
yum deplist nginx
* покажет, какие пакеты или библиотеки необходимы для установки nginx. Дополнительно, могут быть указаны пакеты, которые нужны для удовлетворения зависимостей.
3. Посмотреть список файлов внутри установочного пакета.
Мы можем посмотреть данный список для уже установленного пакета:
rpm -ql <имя установленного пакета>
Или из установочного файла:
rpm -qlp <путь до RPM-пакета>
rpm -qlp nginx.rpm
4. Посмотреть, какой пакет предоставляет определенный файл:
yum provides audit-libs-python
В данном примере мы получим ответ:
audit-libs-python-2.8.5-4.el7.x86_64 : Python bindings for libaudit
Repo : base
Это значит, что audit-libs-python содержится в пакете audit-libs-python-2.8.5-4.el7.x86_64, который в свою очередь, находится в репозитории base.
Можно также выполнять поиск по маске:
yum provides audit-libs-*
Управление потоками (модулями)
Модульные репозитории позволяют установить пакеты разных версий. По сути, это группы RPM-пакетов, которые должны быть установлены вместе и представляют из себя логическую единицу для установки программного продукта нужной версии. Включить можно только одну версию модуля для репозитория.
1. Вывести список доступных модулей:
dnf module list
- [d] — значения по умолчанию.
- [e] — включенные модули.
- [x] — отключены.
- [i] — установленные.
В нашей системе может не быть включенных модулей. В этом случае пакеты будут устанавливаться из стандартных репозиторией.
Мы также можем посмотреть отдельные по состоянию группы модулей:
dnf module list --enabled
dnf module list --disabled
dnf module list --installed
2. Вывести список возможных модулей для конкретного пакета:
dnf module list nodejs
* в данном примере для nodejs.
3. Разрешить или запретить конкретный модуль:
dnf module enable nodejs:12
dnf module disable nodejs:14
* первая команда разрешит модуль nodejs версии 12, вторая, соответственно, запрещает использование модуля nodejs версии 14.
4. Переключение модуля.
Если мы хотим изменить активный модуль, необходимо сначала отключить текущий командой dnf module reset, например:
dnf module reset php:7.3
После включаем новый поток:
dnf module enable php:7.4
Заблокировать установку и обновление пакетов
В некоторых случаях, может возникнуть необходимость запретить установку и обновление определенных пакетов. Есть несколько способов это сделать.
1. Во время обновления (разово)
Данный метод можно использовать при обновлении пакетов. Мы с помощью ключа -x просто указываем через запятую те, которые не должны быть обновлены, например:
yum -x postgresql*,asterisk update
* данной командой мы обновим все пакеты, кроме asterisk и тех, название которых начинается на postgresql.
2. Постоянный запрет в yum.conf
Аналогично, можно запретить как установку, так и обновление в конфигурационном файле yum.conf. Открываем его командой:
* в данном примере мы также запретим установку и обновление asterisk, а также пакетов, название которых начинается на postgresql.
3. Настройка репозитория
Ну и также мы можем заблокировать установку и обновление через конфигурационный файл репозитория. Например:
* в данном примере мы блокируем пакет postgresql12.
Возможные ошибки
Рассмотрим примеры ошибок, с которыми мы можем столкнуться и способы их решения.
1. Curl error (60): SSL peer certificate or SSH remote key was not OK
Ошибка появляется при попытке выполнить операцию обновления или установки пакетов.
Причина: сертификат подключенного репозитория не проходит проверку. Возможно, он просрочен или выдан не доверенным центром сертификации.
yum-config-manager --save --setopt=<имя репозитория>.sslverify=0
Или в конфигурационном файле репозитория добавить или изменить строку с sslverify:
* данная опция задает необходимость проверки SSL для репозитория.
2. Error: GPG validation FAILED
Ошибка появляется при попытке установить пакет.
Причина: система не может загрузить и импортировать gpg-ключ. Это возможно в разных сценариях, например, в настройках репозитория не указан путь до него, но при этом указано, что проверка подписи необходима или ключ не удалось загрузить и импортировать.
Решение: для некоторых пакетов идет отдельная инструкция по настройке репозитория, в частности, установки ключа GPG. Или мы можем отключить проверку gpg командой:
В данной статье мы рассмотрим менеджер пакетов Yum, который позволяет управлять установкой, удалением и обновлением пакетов, автоматически разрешать зависимости, управлять дополнительными репозиториями.
Yum (Yellowdog Updater Modified) – консольный менеджер пакетов для дистрибутивов Linux, основанных на пакетах формата RPM (RedHat Package Manager). Сюда входят такие популярные ОС как RedHat, CentOS, Fedora, Oracle Linux, Scientific Linux.
Yum: установка, обновление и удаление пакетов
Полная справка по менеджеру пакетов yum :
Очистить кеш всех пакетов (обчычно используется при возникновении проблем при работе yum):
Пересоздать кеш пакетов заново:
Отобразить список подключенных репозиториев:
Вывести список всех доступных пакетов для установки:
Список всех пакетов, которые установлены в системе:
Вывести список пакетов, которые относятся к ядру Linux:
Проверить установлен ли в системе определенный пакет, например, apache:
Можно получить более подробную информацию о пакете:
Чтобы установить пакет используется команда yum install . Для установки веб-сервера apache выполните:
Перед установкой пакета можно проверить его на зависимости и необходимые пакеты с помощью команды:
Если вы хотите установить какой-либо пакет, но забыли его полное название, можно воспользоваться подстановочным символом * . Например:
Можно установить сразу несколько пакетов:
Удалить установленный пакет:
!Но перед удалением любого пакета, рекомендуется сначала проверить его на зависимости (бывают пакеты, удаление которых влечет за собой удаление множества других пакетов, что в следствии приводит к неработоспособности системы):
Найти пакет по имени или описанию:
С помощью опции provides вы можете найти пакеты, содержавшие определенный файл, например:
Выполнить обновление всех установленных пакетов:
Вы можете обновить только определенный пакет, указав его имя:
Проверить если доступные обновления для системы можно командой:
Получить информацию о доступных обновлениях безопасности:
Бывают случаи, когда после обновления какого-либо пакета или сервиса, возникают проблемы. Например, после обновления php, перестало работать ваше приложение или сайт. Вы можете вернуть предыдущую версию пакета, откатив установленный пакет:
Имеется возможность группой установки пакетов командой grouplist . В репозитории существуют предопределенные группы пакетов с различными наборами программ. Вы можете вывести список имеющихся групп:
Рассмотрим на примере группового листа «Basic Web Server». Получить информацию о группе и пакетах в ней:
При проверке мы видим, что будут установлены набор пакетов и сервисов для веб-сервера.
Ещё один полезный групповой лист «System Administration Tools»:
Как видим, в данном листе содержатся пакеты, которые будут полезны для мониторинга и отладки.
Установить групповой лист можно командой:
Yum: история и логи установки/удаления пакетов
Вы можете вывести информацию об истории установки пакетов yum (списка транзакций) с помощью команды:
Вывод состоит из 5 столбцов, в первом выводится ID транзакции по которому можно посмотреть всю информацию (установленные пакеты, зависимости):
Более того, можно отменить данную транзакцию командой:
В моем случае удалилось бы 4 пакета:
Так же всю информацию об истории установки/удаления пакетов менеджером yum можно посмотреть в логе /var/log/yum.log :
Дополнительные полезные параметры yum
Утилита yum имеет несколько полезных опций, которые часто приходитя использовать при управлении пакетами. Чтобы при установке или удалении пакетов, после ввода команды не подтверждать своих действий, можно воспользоваться опцией -y , например,:
Чтобы ответить no при запросе, нужно указать опцию:
Использовать yum без плагинов или отключить конкретный плагин:
Включить отключенный плагин:
Задействовать отключенный репозиторий:
Отключить определенный репозиторий:
Конфигурационный файл /etc/yum.conf
Конфигурационный файл yum — /etc/yum.conf .
Основные параметры конфигурационного файла:
cachedir – локальный кэш пакетов (по умоланию /var/cache/yum )
logfile — путь до файла с логами yum
obsoletes — обновлять или нет, устаревшие пакеты(1-да, 0-нет)
gpgcheck — проверка подписи пакета перед установкой (1-да, 0-нет)
keepcache — хранение кеша (1-да, 0-нет)
cachedir — директория для хранения кеша(по умолчанию /var/cache/yum )
debuglevel – уровень отладки от 1 до 10
plugins — включение yum плагинов (1-да, 0-нет)
installonly_limit – максимальное количество версий, которые могут быть установлены для одного пакета.
Полезные плагины yum
Некоторые популярные плагины и их описание:
yum-plugin-fastestmirror – плагин служащий для измерения скорости зеркал и предоставления самого быстрого для установки пакетов.
yum-plugin-security — плагин которые предоставляет список обновлений относящихся только к безопасности системы.
yum-plugin-keys — позволяет работать с ключами keys, keys-info, keys-data, keys-remove
Директория где хранятся все плагины /etc/yum/
yum-plugin-versionlock – позволяет блокировать обновление указанных пакетов
Вывести список доступных плагинов yum:
Вы можете установить выбранный плагин командой yum install , как и любой другой пакет:
Чтобы заблокировать обновление пакета через плагин, выполните:
Вывести список заблокировнных пакетов:
Убрать пакет из заблокированных:
Если вам в какой-то момент времени не нужно использовать определенный плагин, вы его можете отключить, добавив префикс при вызове yum:
Или же отключить вообще все плагины, установленные в системе:
Использование yum через прокси
Если прокси-сервер требует авторизацию, добавьте строки:
Для проверки работы yum через прокси сервер воспользуйтесь командой:
Для проверки я указал публичный прокси сервер с Германии и при установке, сработал плагин fastestmirror , нашел зеркала с которых скорость будет выше:
Официальные репозитории CentOS содержат тысячи пакетов RPM, которые можно установить с помощью утилиты командной строки yum . Пакеты, которых нет в стандартных репозиториях CentOS, можно легко установить, включив соответствующий репозиторий.
Но не все поставщики программного обеспечения предоставляют репозиторий yum для своих приложений. Чаще всего в таких ситуациях у них будет страница загрузки, откуда вы можете загрузить и установить пакет RPM или загрузить и скомпилировать программное обеспечение из источников.
В этом руководстве мы покажем вам два метода установки пакетов RPM на CentOS.
Подготовка
При установке пакетов RPM убедитесь, что они созданы для вашей системной архитектуры и вашей версии CentOS .
Вам следует избегать использования этого метода для замены или обновления важных системных пакетов, таких как glibc, systemd или других служб и библиотек, которые необходимы для правильного функционирования вашей системы. Это может привести к ошибкам и нестабильности системы.
Чтобы установить пакеты RPM, вам необходимо войти в систему как пользователь root или пользователь с привилегиями sudo .
Обычно вы используете веб-браузер для поиска и загрузки файла RPM. Найдя файл, вы можете загрузить его с помощью браузера или инструмента командной строки, такого как curl или wget .
Установка пакетов RPM с помощью yum
Первым шагом является загрузка файла RPM, который вы хотите установить:
Чтобы установить пакет, используйте команду yum localinstall пути к имени пакета:
yum запросит подтверждение. Ответьте y и пакет RPM будет установлен при условии, что он совместим с вашей системой и соблюдены все зависимости.
Если пакет RPM зависит от других пакетов, которые в данный момент не установлены, и если эти пакеты доступны в репозиториях, включенных в вашей системе, yum установит все зависимости. В противном случае yum напечатает список всех недостающих зависимостей, которые вам нужно будет загрузить и установить вручную.
Вместо загрузки и последующей установки пакета RPM вы можете просто передать URL-адрес пакета RPM команде yum localinstall :
Чтобы обновить пакет RPM, который уже установлен с помощью yum, используйте ту же процедуру, что и при установке пакета.
Если по какой-то причине вы хотите удалить установленный пакет, используйте стандартную команду yum remove за которой следует имя пакета:
Установка пакетов RPM с помощью rpm
Чтобы установить пакет RPM, используйте команду rpm -i за которой следует имя пакета RPM:
Если пакет зависит от других пакетов, которые не установлены в системе, rpm отобразит список всех недостающих зависимостей. Вам придется скачать и установить все зависимости вручную.
Вместо загрузки и установки пакета RPM вы можете использовать URL-адрес пакета RPM в качестве аргумента:
Чтобы обновить пакет, используйте параметр -U :
Если пакет, который вы пытаетесь обновить, не установлен, команда rpm -U установит его.
Чтобы установить пакет RPM без установки всех необходимых зависимостей в системе, используйте параметр --nodeps :
Чтобы удалить (стереть) пакет, используйте команду rpm -e , за которой следует имя пакета:
Выводы
В этом руководстве мы показали вам, как устанавливать пакеты RPM в CentOS.
Вы должны предпочесть использовать yum rpm поскольку он автоматически разрешает все зависимости за вас.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Читайте также: