Гид по технологиям

Как пользоваться RPM на CentOS и RHEL

• 4 min read • Системное администрирование • Обновлено 22 Nov 2025
Как пользоваться RPM на CentOS и RHEL
Как пользоваться RPM на CentOS и RHEL

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

Иллюстрация RPM — менеджер пакетов для RHEL/CentOS

Что такое RPM

RPM (Red Hat Package Manager) — это инструмент командной строки для управления пакетами в формате .rpm. Краткое определение: RPM управляет одиночными пакетами .rpm (устанавливает, удаляет, обновляет, запрашивает сведения и проверяет целостность).

Важно: RPM не устанавливает отсутствующие зависимости по умолчанию. Если пакет требует других библиотек или пакетов, сначала нужно установить их вручную или использовать менеджер зависимостей (DNF/YUM).

Требования

  • Сервер с CentOS, RHEL или Fedora.
  • Доступ root или sudo для операций установки/удаления.

Базовый синтаксис

rpm [ОПЦИЯ] [ИМЯ_ПАКЕТА]

Посмотреть все опции:

rpm --help

Вы должны увидеть экран помощи примерно такого вида:

Справка RPM с перечислением опций

Установка, обновление и удаление пакетов с помощью 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.

Плейбук: быстрая инструкция для администратора

  1. Скачайте .rpm в /tmp или в домашнюю директорию.
  2. Посмотрите зависимости: rpm -qpR package.rpm
  3. Просмотрите метаданные: rpm -qip package.rpm
  4. Пригодность подписи: rpm –checksig package.rpm
  5. Установите пакет: rpm -ivh package.rpm (или rpm -Uvh для обновления)
  6. Проверка установки: rpm -q package_name
  7. Проверка файлов: rpm -ql package_name
  8. При проблемах удалите: 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 только в исключительных случаях.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро