This example shows how to locate a module in the AppStream repository and how to find out more about its contents.
Procedure
-
List available modules:
$
yum module list
Name Stream Profiles Summary (...) postgresql 10 [d] client, PostgreSQL server and client module server [d] postgresql 9.6 client, PostgreSQL server and client module server [d] (...) Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled -
Examine details of the postgresql module:
$
yum module info postgresql
Name : postgresql Stream : 10 [d][a] Version : 820190104140132 Context : 9edba152 Profiles : client, server [d] Default profiles : server Repo : appstream-internal-nightly Summary : PostgreSQL server and client module Description : (...) (...) Name : postgresql Stream : 9.6 Version : 820190104140337 Context : 9edba152 Profiles : client, server [d] Default profiles : server Repo : appstream-internal-nightly Summary : PostgreSQL server and client module Description : (...) (...) Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled, [a]ctive]Because no stream is specified, all streams are used for the listing.
-
Examine profiles available in stream 10 of the postgresql module:
$
yum module info --profile postgresql:10
(...) Name : postgresql:10:820190104140132:9edba152:x86_64 client : postgresql server : postgresql-serverEach of the profiles installs a different set of packages, including their dependencies.
-
Install the postgresql module using the default stream 10 and profile server:
#
yum install @postgresql
Dependencies resolved. ==================================================================== Package Version Repository Size ==================================================================== Installing group/module packages: postgresql-server 10.6-1.module+el8+2469+5ecd5aae appstream 5.1 M Installing dependencies: libpq 10.5-1.el8 appstream 188 k postgresql 10.6-1.module+el8+2469+5ecd5aae appstream 1.5 M Installing module profiles: postgresql/server Enabling module streams: postgresql 10 Transaction Summary ==================================================================== Install 3 Packages Total download size: 6.7 M Installed size: 27 M Is this ok [y/N]: y (...)The stream 10 is enabled and packages in its profile server installed.
-
Inspect the current status of the postgresql module:
$
yum module list postgresql
Name Stream Profiles Summary postgresql 10 [d][e] client, server [d] [i] (...) postgresql 9.6 client, server [d] (...) Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalledThe output shows that the default stream 10 is enabled and its profile server is installed.
Одни из самых частых задач, которые приходится выполнять системному администратору, — это установка, удаление и управление программным обеспечением. Иногда необходимо получить полный список установленных пакетов CentOS 7. Это нужно для создания резервной копии системы или для поиска определённого пакета.
В этой небольшой статье мы разберём несколько способов посмотреть установленные программы в CentOS через терминал.
1. Пакетный менеджер RPM
RPM или Red Hat Package Manager — это низкоуровневый пакетный менеджер, который используется во всех дистрибутивах семейства Red Hat. Его можно сравнить с аналогичным инструментом в Ubuntu — dpkg. Уже существуют более высокоуровневые утилиты, например тот же YUM или DNF, но при необходимости можно использовать и rpm.
Чтобы посмотреть список всех установленных пакетов, необходимо использовать опцию -q, которая указывает, что надо выполнить запрос, вместе с опцией -a, она отображает все установленные пакеты:
sudo rpm -qa
Если вы хотите найти определённую группу пакетов, можно отфильтровать вывод с помощью grep:
sudo rpm -qa | grep google
Для сохранения вывода в файл используйте такую команду:
sudo rpm -qa > packages.txt
Позже этот список можно использовать для автоматической установки всех этих пакетов в другой системе. Для установки нужно использовать YUM:
sudo yum install $(cat packages.txt)
С помощью опции —last можно вывести время установки каждого пакета:
sudo rpm -qa --last
Посмотреть более подобную информацию об определённом пакете можно с помощью опции -i:
sudo rpm -qi wget
С помощью опции -l можно вывести список файлов пакета centos:
rpm -ql wget
2. Пакетный менеджер YUM
Это основной пакетный менеджер, который используется в CentOS 7. Чтобы получить список установленных пакетов с помощью YUM, необходимо использовать команду list:
sudo yum list installed
Также вы можете получить список всех доступных пакетов:
sudo yum list available
С помощью параметра update можно найти все пакеты, для которых есть обновления:
sudo yum list update
Вывести все пакеты можно с помощью параметра all:
sudo yum list all
Если вы хотите получить только список пакетов для установки, используйте awk:
sudo yum list installed | awk '{print $1}'
3. Дополнительные утилиты YUM-Utils
Пакет YUM-Utils — это набор утилит, реализующих дополнительные возможности для управления репозиториями, установки и отладки пакетов, поиска пакетов и много другого. Для установки набора программ используйте:
sudo yum install yum-utils
Чтобы посмотреть установленные пакеты CentOS, используйте команду repoquery:
sudo repoquery -a --installed
С помощью команды yumdb вы можете вывести все пакеты, установленные из определённого репозитория:
sudo yumdb search from_repo base
Выводы
В этой небольшой статье мы рассмотрели, как посмотреть установленные пакеты СentOS 7 с помощью пакетного менеджера RPM, YUM и дополнительных утилит. Как видите, это очень просто.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .
Об авторе
Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.
Время на прочтение
4 мин
Количество просмотров 688K
Шпаргалка по работе с пакетным менеджером Yum (Yellowdog Updater, Modified), который используется в популярных Linux дистрибутивах: RedHat, CentOS, Scientific Linux (и других). В целях экономии места вывод команд не представлен.
Оглавление
Команды
Опции Yum
Пакет Yum-Utils
Конфигурационные файлы
Плагины
Работа через прокси
отображение команд и опций
#yum help
список названий пакетов из репозиторий
#yum list
список всех доступных пакетов
#yum list available
список всех установленных пакетов
#yum list installed
установлен ли указанный пакет
#yum list installed httpd
список установленных и доступных пакетов
#yum list all
список пакетов, относящихся к ядру
#yum list kernel
отображение информации о пакете
#yum info httpd
список зависимостей и необходимых пакетов
#yum deplist httpd
найти пакет, который содержит файл
#yum provides "*bin/top"
поиск пакета по имени и описанию
#yum search httpd
#yum search yum
получить информацию о доступных обновлениях безопасности
#yum updateinfo list security
вывести список групп
#yum grouplist
вывести описание и содержимое группы
#yum groupinfo "Basic Web Server"
установка группы пакетов «Basic Web Server»
#yum groupinstall "Basic Web Server"
удаление группы
#yum groupremove "Basic Web Server"
Проверка на доступные обновления
#yum check-update
список подключенных репозиториев
#yum repolist
информация об определенном репозитории
#yum repoinfo epel
информация о пакетах в указанном репозитории
#yum repo-pkgs epel list
установить все пакеты из репозитория
#yum repo-pkgs reponame install
удалить пакеты установленные из репозитория
#yum repo-pkgs reponame remove
создать кэш
#yum makecache
проверить локальную базу rpm (поддерживаются параметры dependencies, duplicates, obsoletes, provides)
#yum check
#yum check dependencies
просмотр yum истории (вывод списка транзакций)
#yum history list
просмотр информации определенной транзакции (установленные пакеты, установленные зависимости)
#yum history info 9
отмена транзакции
#yum history undo 9
повторить
#yum history redo 9
дополнительно можно просмотреть лог
#cat /var/log/yum.log
удалить пакеты сохраненные в кэше
#yum clean packages
удалить все пакеты и метаданные
#yum clean all
установить пакет
#yum install httpd
удаление пакета
#yum remove httpd
обновить пакет
#yum update httpd
обновить все пакеты
#yum update
обновить до определенной версии
#yum update-to
установить из локальной директории (поиск/установка зависимостей будут произведены из подключенных репозиториев)
#yum localinstall httpd.rpm
или
#yum install httpd.rpm
установить с http
#yum localinstall http://server/repo/httpd.rpm
откатиться к предыдущей версии пакета
#yum downgrade
переустановка пакета (восстановление удаленных файлов)
#yum reinstall httpd
удаление ненужных более пакетов
#yum autoremove
создание локальных репозиториев (createrepo ставится отдельно)
#createrepo
установка обновлений по расписанию (yum-cron устанавливается отдельно)
#yum-cron
Опции Yum
ответить «yes» при запросе,
-y
#yum update -y
ответить «no» при запросе
--assumeno
использовать Yum без плагинов
--noplugins
или отключить определенный плагин
--disableplugin=fastestmirror
включить плагины, которые установлены, но отключены
#yum --enableplugin=ps
включить отключенный репозиторий
#yum update -y --enablerepo=epel
отключить репозиторий
#yum update -y --disablerepo=epel
скачать пакеты, но не устанавливать
(на Centos 7 x86_64 будут скачаны в ‘/var/cache/yum/x86_64/7/base/packages/’)
#yum install httpd --downloadonly
Cледующие команды доступны после установки пакета yum-utils
найти из какого репозитория установлен пакет
#find-repos-of-install httpd
найти процессы, пакеты которых обновлены и требуют рестарта
#needs-restarting
запрос к репозиторию, узнать зависимости пакета, не устанавливая его
#repoquery --requires --resolve httpd
синхронизировать yum репозиторий updates в локальную директорию repo1
#reposync -p repo1 --repoid=updates
проверить локальный репозиторий на целостность
#verifytree URL
завершить транзакции
#yum-complete-transaction
установить необходимые зависимости для сборки RPM пакета
#yum-builddep
управление конфигурационными опциями и репозиториями yum
#yum-config-manager
запрос к локальной базе yum, отображение информации о пакете
(использованная команда, контрольная сумма, URL с которого был установлен и другое)
#yumdb info httpd
скачать rpm пакеты из репозитория
#yumdownloader
скачать src.rpm пакет из репозитория
(должен быть подключен соответствующий репозиторий, например в ‘/etc/yum.repos.d/CentOS-Sources.repo’ в CentOS)
yumdownloader --source php
Конфигурационные файлы Yum и их расположение
Основной конфигурационный файл
/etc/yum.conf
директория, с конфигурациями (например, yum плагины)
/etc/yum/
директория, содержащая информацию о репозиториях
/etc/yum.repos.d/
Некоторые опции yum.conf:
Директория, где yum хранит кэш и файлы базы (по умолчанию ‘/var/cache/yum’)
cachedir=/var/cache/yum/$basearch/$releasever
Определяет должен или нет Yum хранить кэш заголовков и пакетов после успешной установки. Значения: 0 или 1. (по умолчанию 1)
keepcache=1
уровень вывода отладочных сообщений. Значения: 1-10 (по умолчанию 2)
debuglevel=2
лог файл (по умолчанию ‘/var/log/yum.log’)
logfile=/var/log/yum.log
обновлять устаревшие пакеты
obsoletes=1
проверка подписи пакетов. Значения: 0 или 1 (по умолчанию 1)
gpgcheck=1
включение плагинов. Значения: 0 или 1 (по умолчанию 1)
plugins=1
Некоторые полезные плагины
Добавляет опцию командной строки для просмотра ченжлога перед/после обновлениями
yum-plugin-changelog
выбирает более быстрые репозитории из списка зеркал
yum-plugin-fastestmirror
добавляет команды keys, keys-info, keys-data, keys-remove, которые позволяют работать с ключами.
yum-plugin-keys
блокировать указанные пакеты от обновления, команда yum versionlock
yum-plugin-versionlock
добавление команд yum verify-all, verify-multilib, verify-rpm для проверки контрольных сумм пакетов
yum-plugin-verify
Работа Yum через прокси сервер
Для всех пользователей:
добавить в секцию [main] в /etc/yum.conf
proxy="http://server:3128"
при необходимости указать пароль, добавить
proxy_proxy_username=user
proxy_password=pass
указать прокси для отдельного пользователя
#export http_proxy="http://server:3128"
Буду рад любым дополнениям и замечаниям.
Дополнительно читайте:
#man yum
#man rpm
В этом руководстве мы покажем вам, как составить список и отфильтровать установленные пакеты в CentOS. Знание того, как составить список установленных пакетов в вашей системе CentOS, может быть полезно в ситуациях, когда вам нужно установить те же пакеты на другой компьютер или если вы хотите переустановить свою систему.
Мы также покажем вам, как проверить, установлен ли конкретный пакет, подсчитать количество установленных пакетов и узнать версию установленного пакета.
Список установленных пакетов с помощью Yum
YUM (Yellow dog Updater) — менеджер пакетов CentOS по умолчанию. Его можно использовать для загрузки, установки, удаления, запроса и управления программными пакетами CentOS RPM из официальных и сторонних репозиториев CentOS.
Чтобы вывести список установленных пакетов в вашей системе CentOS с помощью yum
, используйте следующую команду:
sudo yum list installed
Он напечатает список всех установленных пакетов, включая информацию о версиях и репозитории пакетов RPM.
Обычно список пакетов длинный, для лучшей читаемости рекомендуется направить вывод в less
:
sudo yum list installed | less
Чтобы узнать, установлен ли конкретный пакет, отфильтруйте вывод с помощью команды grep
.
Например, чтобы узнать, установлен ли в системе распакованный пакет, вы должны запустить:
sudo yum list installed | grep unzip
unzip.x86_64 6.0-19.el7 @anaconda
Приведенный выше вывод показывает, что на машине установлена распакованная версия 6.0-19.
Список установленных пакетов с оборотами в минуту
Команда rpm
с параметром -q
позволяет запрашивать пакеты.
Следующая команда выведет список всех установленных пакетов:
sudo rpm -qa
Для запроса (поиска), установлен ли определенный пакет, передайте имя пакета команде rpm -q
. Следующая команда покажет вам, установлен ли пакет tmux в системе:
sudo rpm -q tmux
Если пакет установлен, вы увидите что-то вроде этого:
tmux-1.8-4.el7.x86_64
В противном случае команда напечатает:
package tmux2is not installed
Чтобы получить дополнительную информацию о запрошенном пакете, передайте -i
:
sudo rpm -qi tmux
Создайте список всех установленных пакетов
Чтобы создать список имен всех установленных пакетов в вашей системе CentOS и сохранить его в файле с именем packages_list.txt
, перенаправьте вывод команды в файл:
sudo rpm -qa > packages_list.txt
Чтобы установить те же пакеты на другой сервер, вы можете использовать команду cat
для передачи всех пакетов в yum
:
sudo yum -y install $(cat packages_list.txt)
Подсчитайте количество установленных пакетов
Чтобы узнать, сколько пакетов установлено в вашей системе, используйте ту же команду, что и раньше, но вместо перенаправления вывода в файл направьте его в утилиту wc
для подсчета строк:
sudo rpm -qa | wc -l
603
Приведенный выше вывод показывает, что установлено 603 пакета.
Выводы
В системах CentOS вы можете перечислить установленные пакеты с помощью команд yum list installed
и rpm -qa
.
Не стесняйтесь оставлять комментарии, если у вас есть вопросы.
Обновлено: 15.05.2023
Опубликовано: 01.07.2021
Статья представляет из себя небольшую шпаргалку по работе с пакетным менеджером dnf (Rocky Linux, CentOS Stream и yum (CentOS 7 и ниже). В данном руководстве мы будем использовать только команду yum, так как она работает и в CentOS 7, и в более поздних версиях RPM-дистрибутивах.
Работа с репозиторием
Управление
Обслуживание
Примеры настроек
Установка пакетов и работа с ними
Получение информации о пакетах
Управление модулями
Блокировка пакетов для установки и обновления
Возможные ошибки
Репозитории
Команда yum/dnf использует репозитории для своей работы. Очень важно понять, как с ними работать в системе. Конфиги репозиториев CentOS описывают пути, по которым система может брать установочные файлы для пакетов, а также правила работы с самими репозиториями.
Примеры команд для управления репозиториями
1. Просмотр репозиториев.
Список включенных репозиториев:
yum repolist
Список включенных и отключенных репозиториев:
yum repolist all
Также мы можем получить подробное описание для каждого включенного репозитория:
yum repolist -v
Список отключенных репозиториев можно посмотреть отдельно командой:
yum repolist disabled
2. Добавление репозитория командой.
Для добавления репозитория мы можем воспользоваться командой yum-config-manager, для этого сначала нужно установить yum-utils:
yum install yum-utils
Теперь вводим:
yum-config-manager —add-repo <репозиторий>
Например:
yum-config-manager —add-repo https://yum.mariadb.org/10.5/centos8-amd64
* на основе ссылки https://yum.mariadb.org/10.5/centos8-amd64 будет добавлен репозиторий.
Важно отметить, что утилита yum-config-manager не умеет задавать красивые имена для репозитория. Это приводит к эстетической и технической проблемам. Если эстетика никак не помешает работать, то вторая проблема серьезнее — рассмотрим ее подробнее.
При подключении репозитория с длинным URL адресом мы получим ошибку:
Bad id for repo: <имя репозитория>, byte = $ 42
Она означает, что название идентификатора превышает допустимую длину. В итоге, репозиторий не будет использоваться системой.
Проблему можно решить обходным способом. Сначала мы добавим репозиторий с неправильным адресом, но коротким и красивым, например:
yum-config-manager —add-repo http://repo-name
Потом уже зададим правильный URL с помощью setopt (о нем рассказано ниже):
yum-config-manager —save —setopt=repo-name.baseurl=https://yum.mariadb.org/10.5/centos8-amd64/yum/redhat/$releasever/mariadb/1.7/x86_64
3. Добавление репозитория через файл.
Также мы можем создать конфигурационный файл с описанием репозитория. Все файлы находятся в каталоге /etc/yum.repos.d. Например, создадим файл с добавлением репозитория mariadb:
vi /etc/yum.repos.d/mariadb.repo
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.5/centos8-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
enabled=1
* где:
- 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.
Например:
yum-config-manager —disable yum.mariadb.org_10.5_centos8-amd64
Разрешить репозиторий можно той же командой с опцией —enable:
yum-config-manager —enable yum.mariadb.org_10.5_centos8-amd64
Также мы можем выполнить настройку в конфигурационном файле, например:
vi /etc/yum.repos.d/mariadb.repo
Находим:
enabled=1
… и меняем на:
enabled=0
* в данном примере 1 разрешает репозиторий, а 0 запрещает.
6. Настройка опций.
Наши репозитории настраиваются с помощью опций, которые перечислены в конфигурационном файле. Мы можем также их задавать командой:
yum-config-manager —save —setopt=<имя репозитория>.<имя опции>=<значение>
Например:
yum-config-manager —save —setopt=mariadb.module_hotfixes=1
Довольно часто нам нужно работать с опцией проверки ключей. Тогда вводим команды:
yum-config-manager —save —setopt=mirror-yandex.gpgcheck=1
yum-config-manager —save —setopt=mirror-yandex.gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
* в данном примере мы указываем на необходимость проверки gpg-ключа (gpgcheck) и путь до него (gpgkey). Само собой, по данному пути (/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7) у нас должен быть загружен сам ключ.
Обслуживание
1. Удалить кэш для списков пакетов в репозиториях, а также загруженные исходники для пакетов:
yum clean —enablerepo=* all
Также мы можем удалить кэш только для определенных репозиториев, например:
yum clean all —disablerepo=»*» —enablerepo=»epel,nginx-thirdparty»
* обязательно, сначала должен следовать disablerepo, после enablerepo.
2. Сформировать кэш списков пакетов в репозиториях:
yum makecache
Настройка репозитория
В данном разделе приведем некоторые опции, с помощью которых можно настроить репозитории. Как было сказано выше, каждый репозиторий описывается в своем файле. В нем же мы можем задавать различные опции.
Предположим, что мы будем настраивать базовый репозиторий системы РЕД ОС. Тогда открываем:
vi /etc/yum.repos.d/RedOS-Base.repo
1. baseurl
Один из основных параметров. Определяет пути расположения метаданных репозитория. Именно по нему система будет искать служебный файл со списком пакетов.
baseurl=https://repo1.red-soft.ru/redos/7.3/$basearch/os,https://mirror.yandex.ru/redos/7.3/$basearch/os,http://repo.red-soft.ru/redos/7.3/$basearch/os
* обратите внимание, что в данном примере прописано использование нескольких адресов, разделенных запятой. Также в адресе можно указывать переменные.
2. gpgcheck
Указывает, нужно ли проверять подписи пакетов.
gpgcheck=0
* в данном примере мы отключаем проверку.
3. priority
Определяет приоритет репозитория. Например, один и тот же пакет будет находиться в нескольких репозиториях. Будет установлен тот, версия которого выше. Но если нам нужно установить пакеты из определенного репозитория, даже, если их версия ниже. Для этого и нужен приоритет.
priority=1
Чем ниже число, тем выше приоритет. Если опция priority не указана, такой репозиторий будет иметь меньших приоритет, по сравнению с тем, где он указан.
Установка, обновление, удаление и другое
В данном разделе рассмотрим команды, при помощи которых мы можем манипулировать установкой, обновлением, удалением и понижением версии пакетов.
1. Установка пакета:
yum install <имя пакета>
Команда выведет на экран все действия, которые будут предприняты — установка зависимостей, обновление других пакетов, и даже (в редких случаях), удаление конфликтов. Нам необходимо согласиться с данными действиями и начнется загрузка и установка.
2. Обновление всех установленных пакетов:
yum update
3. Обновление конкретного пакета
yum update <имя пакета>
4. Установить пакет из определенного репозитория:
yum —disablerepo=»*» —enablerepo=thirdparty install nginx
* как говорилось выше, мы можем оперировать опциями disablerepo и enablerepo для включения и отключения репозитория во время установки. В данном примере мы запретили все и разрешили установить нужный нам пакет из репозитория thirdparty.
5. Понизить версию пакета можно с помощью команды downgrade:
yum downgrade <имя пакета и версию, которые нужно установить>
Например, если в нашей системе установлен пакет nginx-1.15.3, мы сможем понизить его версию так:
yum downgrade nginx-1.13.1
* в данном примере будет удален пакет nginx-1.15.3 и установлен nginx-1.13.1.
6. Удаление пакета.
Если нам нужно удалить пакет из системы, выполняем:
yum remove <имя пакета>
7. Только скачать пакет, не устанавливая его:
yum install —downloadonly —downloaddir=<куда скачать> <имя пакета>
Например:
yum install —downloadonly —downloaddir=/tmp nodejs
* скачиваем пакет nodejs в каталог /tmp.
8. Распаковать содержимое пакета RPM:
rpm2cpio <путь до файла rpm> | cpio -idmv
Просмотр информации о пакетах
1. Список установленных пакетов.
а) для Rocky Linux:
yum list —installed
б) для CentOS 7:
rpm -qa
Если нам нужно найти пакет по части его имени, можно добавить фильтр с помощью grep:
yum list —installed | grep nginx
rpm -qa | grep nginx
* в данном примере команда вернет результат, если в нашей системе установлен пакет, в названии которого есть nginx.
2. Получение зависимостей.
а) для установленного пакета:
yum deplist <имя пакета>
Или с помощью rpm:
rpm -q httpd —requires
Например:
yum deplist nginx
* покажет, какие пакеты или библиотеки необходимы для установки nginx. Дополнительно, могут быть указаны пакеты, которые нужны для удовлетворения зависимостей.
б) из установочного файла.
Выполняется с помощью утилиты rpm с добавлением опции -p:
rpm -qp <путь до пакета> —requires
Например:
rpm -qp nginx-1.23.1-1.el7.ngx.x86_64.rpm —requires
3. Посмотреть список файлов внутри установочного пакета.
Мы можем посмотреть данный список для уже установленного пакета:
rpm -ql <имя установленного пакета>
Например:
rpm -ql nginx
Или из установочного файла:
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-*
5. Показать постинсталляционный скрипт.
После установки некоторых пакетов может запускаться набор команд, которые выполняют дополнительную настройку системы или установленного софта. Чтобы посмотреть, что именно будет выполняться, вводим команду:
rpm -qp —scripts <путь до RPM-файла>
6. Показать общую информацию о пакете.
а) для установочного файла:
rpm -qip <путь до RPM-файла>
б) для установленного пакета:
rpm -qi <имя пакета>
Например:
rpm -qi libcurl-devel
Name : libcurl-devel
Version : 7.29.0
Release : 59.el7_9.1
Architecture: x86_64
Install Date: Mon 01 Aug 2022 02:02:29 PM MSK
Group : Development/Libraries
Size : 638991
License : MIT
Signature : RSA/SHA256, Wed 18 Nov 2020 05:18:23 PM MSK, Key ID 24c6a8a7f4a80eb5
Source RPM : curl-7.29.0-59.el7_9.1.src.rpm
Build Date : Mon 16 Nov 2020 07:36:11 PM MSK
Build Host : x86-02.bsys.centos.org
Relocations : (not relocatable)
Packager : CentOS BuildSystem <http://bugs.centos.org>
Vendor : CentOS
URL : http://curl.haxx.se/
Summary : Files needed for building applications with libcurl
Description :
The libcurl-devel package includes header files and libraries necessary for
developing programs which use the libcurl library. It contains the API
documentation of the library, too.
Управление потоками (модулями)
Модульные репозитории позволяют установить пакеты разных версий. По сути, это группы 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
* если попробовать включить модуль без отключения активного мы увидим ошибку:
Error: It is not possible to switch enabled streams of a module.
It is recommended to remove all installed content from the module, and reset the module using ‘dnf module reset <module_name>’ command. After you reset the module, you can install the other stream.
После включаем новый поток:
dnf module enable php:7.4
Заблокировать установку и обновление пакетов
В некоторых случаях, может возникнуть необходимость запретить установку и обновление определенных пакетов. Есть несколько способов это сделать.
1. Во время обновления (разово)
Данный метод можно использовать при обновлении пакетов. Мы с помощью ключа -x просто указываем через запятую те, которые не должны быть обновлены, например:
yum -x postgresql*,asterisk update
* данной командой мы обновим все пакеты, кроме asterisk и тех, название которых начинается на postgresql.
2. Постоянный запрет в yum.conf
Аналогично, можно запретить как установку, так и обновление в конфигурационном файле yum.conf. Открываем его командой:
vi /etc/yum.conf
Добавляем:
exclude=postgresql* asterisk
* в данном примере мы также запретим установку и обновление asterisk, а также пакетов, название которых начинается на postgresql.
3. Настройка репозитория
Ну и также мы можем заблокировать установку и обновление через конфигурационный файл репозитория. Например:
vi /etc/yum.repos.d/pgdg-redhat-all.repo
И добавим:
[pgdg12]
…
exclude=postgresql12*
* в данном примере мы блокируем пакет postgresql12.
Возможные ошибки
Рассмотрим примеры ошибок, с которыми мы можем столкнуться и способы их решения.
1. Curl error (60): SSL peer certificate or SSH remote key was not OK
Ошибка появляется при попытке выполнить операцию обновления или установки пакетов.
Причина: сертификат подключенного репозитория не проходит проверку. Возможно, он просрочен или выдан не доверенным центром сертификации.
Решение: проблему можно решить на стороне сервера (если мы являемся его администратором), например, получив правильный сертификат у Let’s Encrypt. На стороне клиента можно отключить проверку SSL для репозитория командой:
yum-config-manager —save —setopt=<имя репозитория>.sslverify=0
Или в конфигурационном файле репозитория добавить или изменить строку с sslverify:
sslverify=0
* данная опция задает необходимость проверки SSL для репозитория.
2. Error: GPG validation FAILED
Ошибка появляется при попытке установить пакет.
Причина: система не может загрузить и импортировать gpg-ключ. Это возможно в разных сценариях, например, в настройках репозитория не указан путь до него, но при этом указано, что проверка подписи необходима или ключ не удалось загрузить и импортировать.
Решение: для некоторых пакетов идет отдельная инструкция по настройке репозитория, в частности, установки ключа GPG. Или мы можем отключить проверку gpg командой:
yum-config-manager —save —setopt=<имя репозитория>.gpgcheck=0
Или через конфигурационный файл:
gpgcheck=0