Как пользоваться RPM на CentOS и RHEL
RPM — это базовый менеджер пакетов для систем на базе RHEL/CentOS/Fedora. Он устанавливает, удаляет, обновляет, исследует и проверяет отдельные файлы .rpm, но не решает зависимости автоматически; для этого чаще используют DNF/YUM. В статье — команды, примеры вывода, рекомендации по безопасности и краткий плейбук для админа.

Что такое RPM
RPM (Red Hat Package Manager) — это инструмент командной строки для управления пакетами в формате .rpm. Краткое определение: RPM управляет одиночными пакетами .rpm (устанавливает, удаляет, обновляет, запрашивает сведения и проверяет целостность).
Важно: RPM не устанавливает отсутствующие зависимости по умолчанию. Если пакет требует других библиотек или пакетов, сначала нужно установить их вручную или использовать менеджер зависимостей (DNF/YUM).
Требования
- Сервер с CentOS, RHEL или Fedora.
- Доступ root или sudo для операций установки/удаления.
Базовый синтаксис
rpm [ОПЦИЯ] [ИМЯ_ПАКЕТА]Посмотреть все опции:
rpm --helpВы должны увидеть экран помощи примерно такого вида:

Установка, обновление и удаление пакетов с помощью RPM
Перед установкой можно посмотреть, от каких зависимостей зависит пакет:
rpm -qpR epel-release-latest-8.noarch.rpmПример вывода:
warning: epel-release-latest-8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 2f86d6a1: NOKEY
config(epel-release) = 8-7.el8
redhat-release >= 8
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsXz) <= 5.2-1
Получить информацию о пакете:
rpm -qip epel-release-latest-8.noarch.rpmПример вывода с метаданными пакета:
warning: epel-release-latest-8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 2f86d6a1: NOKEY
Name : epel-release
Version : 8
Release : 7.el8
Architecture: noarch
Install Date: (not installed)
Group : System Environment/Base
Size : 30269
License : GPLv2
Signature : RSA/SHA256, Thursday 10 October 2019 12:19:30 PM EDT, Key ID 21ea45ab2f86d6a1
Source RPM : epel-release-8-7.el8.src.rpm
Build Date : Thursday 10 October 2019 12:16:18 PM EDT
Build Host : buildvm-04.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager : Fedora Project
Vendor : Fedora Project
URL : http://download.fedoraproject.org/pub/epel
Bug URL : https://bugz.fedoraproject.org/epel-release
Summary : Extra Packages for Enterprise Linux repository configuration
Description :
This package contains the Extra Packages for Enterprise Linux (EPEL) repository
GPG key as well as configuration for yum.
Установить пакет:
rpm -ivh epel-release-latest-8.noarch.rpmВывод установки:
warning: epel-release-latest-8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 2f86d6a1: NOKEY
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...
1:epel-release-8-7.el8 ################################# [100%]
Установка без проверки зависимостей (рискованно):
rpm -ivh --nodeps epel-release-latest-8.noarch.rpmОбновление пакета:
rpm -Uvh epel-release-latest-8.noarch.rpmВывод при попытке обновления уже установленного пакета:
warning: epel-release-latest-8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 2f86d6a1: NOKEY
Verifying... ################################# [100%]
Preparing... ################################# [100%]
package epel-release-8-7.el8.noarch is already installed
Удаление установленного пакета:
rpm -ev epel-releaseВывод удаления:
Preparing packages...
epel-release-8-7.el8.noarch
Важно: использование –nodeps позволяет установить пакет без зависимостей, но может привести к неработоспособности программ. Используйте только в исключительных случаях.
Просмотр информации о файлах и конфигурации пакета
Показать список файлов, входящих в пакет:
rpm -ql epel-releaseПример вывода:
/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8
/etc/yum.repos.d/epel-playground.repo
/etc/yum.repos.d/epel-testing.repo
/etc/yum.repos.d/epel.repo
/usr/lib/systemd/system-preset/90-epel.preset
/usr/share/doc/epel-release
/usr/share/doc/epel-release/GPL
/usr/share/doc/epel-release/README-epel-8-packaging.md
Найти конфигурационные файлы пакета:
rpm -qc httpdПример:
/etc/httpd/conf.d/autoindex.conf
/etc/httpd/conf.d/userdir.conf
/etc/httpd/conf.d/welcome.conf
/etc/httpd/conf.modules.d/00-base.conf
/etc/httpd/conf.modules.d/00-dav.conf
/etc/httpd/conf.modules.d/00-lua.conf
/etc/httpd/conf.modules.d/00-mpm.conf
/etc/httpd/conf.modules.d/00-optional.conf
/etc/httpd/conf.modules.d/00-proxy.conf
/etc/httpd/conf.modules.d/00-systemd.conf
/etc/httpd/conf.modules.d/01-cgi.conf
/etc/httpd/conf/httpd.conf
/etc/httpd/conf/magic
/etc/logrotate.d/httpd
/etc/sysconfig/htcacheclean
Подробная информация о пакете:
rpm -qi httpdПример вывода с метаданными httpd:
Name : httpd
Version : 2.4.37
Release : 16.module_el8.1.0+256+ae790463
Architecture: x86_64
Install Date: Thursday 23 January 2020 11:48:36 PM EST
Group : System Environment/Daemons
Size : 5611291
License : ASL 2.0
Signature : RSA/SHA256, Monday 23 December 2019 05:22:02 PM EST, Key ID 05b555b38483c65d
Source RPM : httpd-2.4.37-16.module_el8.1.0+256+ae790463.src.rpm
Build Date : Monday 23 December 2019 03:46:30 PM EST
Build Host : x86-02.mbox.centos.org
Relocations : (not relocatable)
Packager : CentOS Buildsys <[email protected]>
Vendor : CentOS
URL : https://httpd.apache.org/
Summary : Apache HTTP Server
Description :
The Apache HTTP Server is a powerful, efficient, and extensible
web server.
Определить, какому пакету принадлежит файл или каталог:
rpm -qf /etc/NetworkManager/Пример вывода:
NetworkManager-1.14.0-14.el8.x86_64
dhcp-client-4.3.6-30.el8.x86_64
Проверка пакетов и целостности
Проверить пакет перед установкой:
rpm -Vp epel-release-latest-8.noarch.rpmПроверить все установленные пакеты на целостность и изменения:
rpm -VaПример вывода (пометки по совпадениям):
.......T. c /etc/kdump.conf
.M....... g /var/lib/plymouth/boot-duration
.M....... g /var/cache/dnf/packages.db
.....UG.. g /var/lib/sss/mc/group
.....UG.. g /var/lib/sss/mc/initgroups
.....UG.. g /var/lib/sss/mc/passwd
.M....... c /etc/rc.d/rc.local
.M....... c /etc/machine-id
Краткая подсказка: символы в выводе указывают, какие атрибуты файла изменены — подробнее можно смотреть в man rpm.
Проверка наличия и список установленных пакетов
Проверить, установлен ли пакет:
rpm -q epel-releaseЕсли установлен, вывод:
epel-release-8-7.el8.noarch
Если пакет не установлен:
rpm -q mysql-serverВывод:
package mysql-server is not installed
Список всех установленных пакетов:
rpm -qaПример вывода (частичный):
dos2unix-7.4.0-3.el8.x86_64
platform-python-pip-9.0.3-13.el8.noarch
geolite2-country-20180605-1.el8.noarch
symlinks-1.4-19.el8.x86_64
python3-six-1.11.0-8.el8.noarch
fontpackages-filesystem-1.44-22.el8.noarch
rootfiles-8.1-22.el8.noarch
polkit-0.115-6.el8.x86_64
xkeyboard-config-2.24-3.el8.noarch
Показать имя и размер:
rpm -qa --queryformat '%{name} %{size}\n'Пример вывода:
dos2unix 682042
platform-python-pip 7746190
geolite2-country 3424334
symlinks 19682
python3-six 100282
fontpackages-filesystem 0
rootfiles 599
Поиск документации и man-страниц пакета
Показать список документации, связанной с файлом или каталогом:
rpm -qdf /etc/NetworkManager/Пример вывода с путями к документации и man-страницам:
/usr/share/doc/NetworkManager/AUTHORS
/usr/share/doc/NetworkManager/CONTRIBUTING
/usr/share/doc/NetworkManager/NEWS
/usr/share/doc/NetworkManager/README
/usr/share/doc/NetworkManager/TODO
/usr/share/doc/NetworkManager/examples/server.conf
/usr/share/man/man1/nm-online.1.gz
/usr/share/man/man1/nmcli.1.gz
/usr/share/man/man5/NetworkManager.conf.5.gz
/usr/share/man/man5/nm-settings-ifcfg-rh.5.gz
/usr/share/man/man5/nm-settings-keyfile.5.gz
/usr/share/man/man5/nm-settings.5.gz
/usr/share/man/man5/nm-system-settings.conf.5.gz
/usr/share/man/man7/nmcli-examples.7.gz
/usr/share/man/man8/NetworkManager.8.gz
/usr/share/doc/dhcp-client/README.dhclient.d
/usr/share/doc/dhcp-client/dhclient-enter-hooks
/usr/share/doc/dhcp-client/dhclient.conf.example
/usr/share/doc/dhcp-client/dhclient6.conf.example
/usr/share/man/man5/dhclient.conf.5.gz
/usr/share/man/man5/dhclient.leases.5.gz
/usr/share/man/man8/dhclient-script.8.gz
/usr/share/man/man8/dhclient.8.gz
Когда RPM не сработает
- Если у пакета много зависимостей, RPM установит только сам пакет. В таких случаях используйте DNF/YUM для автоматического разрешения зависимостей.
- Если GPG-подпись пакета отсутствует или ключ не импортирован, при проверке вы увидите предупреждение типа NOKEY.
- Установка с –nodeps может привести к неработоспособности ПО.
Альтернативные инструменты
- DNF — современный менеджер пакетов для RHEL/CentOS 8+, автоматически решает зависимости и управляет репозиториями.
- YUM — устаревающий, но всё ещё используется в некоторых системах (на базе Python 2/3).
Практические правила и эвристики
- Всегда проверяйте GPG-подпись пакета или источник перед установкой.
- Используйте rpm -qip для просмотра метаданных перед инсталляцией.
- Для массовых установок и разрешения зависимостей применяйте dnf install вместо rpm.
Плейбук: быстрая инструкция для администратора
- Скачайте .rpm в /tmp или в домашнюю директорию.
- Посмотрите зависимости: rpm -qpR package.rpm
- Просмотрите метаданные: rpm -qip package.rpm
- Пригодность подписи: rpm –checksig package.rpm
- Установите пакет: rpm -ivh package.rpm (или rpm -Uvh для обновления)
- Проверка установки: rpm -q package_name
- Проверка файлов: rpm -ql package_name
- При проблемах удалите: rpm -ev package_name
Контроль качества и критерии приёмки
- Пакет установлен и запускается без ошибок.
- Конфигурационные файлы присутствуют и имеют ожидаемые права.
- Все необходимые зависимости установлены (если использовался dnf/yum).
- Службы запущены при необходимости и проходят базовую проверку статуса.
Чек-лист ролей
Администратор:
- Проверить подпись и источник.
- Установить пакет и протестировать сервис.
DevOps:
- Автоматизировать установку через конфигурационный менеджер (Ansible, Puppet).
- Добавить проверку версий в CI.
Разработчик:
- Проверить, что пакет содержит все бинарные артефакты и документацию.
Безопасность и конфиденциальность
- Импортируйте только доверенные GPG-ключи. Предупреждение NOKEY означает, что ключ не найден у вас в системе.
- Не используйте –nodeps на продакшн-серверах без воспроизведения полной проверки.
- Убедитесь, что репозитории и пакеты получены по защищённым каналам (HTTPS).
Словарь в одну строку
- RPM — менеджер пакетов для .rpm-файлов.
- DNF — менеджер пакетов с разрешением зависимостей.
- GPG-подпись — способ проверки подлинности пакета.
Итог
RPM — базовый инструмент для работы с .rpm-пакетами: удобен для одиночных инсталляций и диагностики, но не заменяет менеджер зависимостей при установке сложных стеков. Для повседневной работы в RHEL/CentOS 8+ чаще применяют DNF, а RPM используют для ручной диагностики и проверки пакетов.
Ключевые действия: проверяйте подписи, смотрите зависимости перед установкой и применяйте –nodeps только в исключительных случаях.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента