20 практических примеров команд RPM в Linux

RPM (Red Hat Package Manager) – это стандартный утилитарный пакет управления с открытым исходным кодом, широко используемый для систем на основе Red Hat, таких как CentOS, Fedora, Rocky и Alma Linux.

Инструмент управления пакетами rpm позволяет системным администраторам и пользователям устанавливать, обновлять, удалять, запрашивать, проверять и управлять программными пакетами в операционных системах Unix/Linux, которые ранее известны как файлы .rpm, содержащие скомпилированные программы и библиотеки, необходимые для пакетов.

В этой статье приведено 20 полезных примеров команд RPM, которые могут быть полезны вам. С помощью этих команд RPM вы можете управлять установкой, обновлением и удалением пакетов на ваших системах Linux.

Факты о RPM

Вот некоторые факты о RPM (Red Hat Package Manager):

  • RPM бесплатно доступен и выпущен под общедоступной лицензией GPL.
  • RPM поддерживает базу данных всех установленных пакетов, храня эту информацию в каталоге /var/lib/rpm.
  • RPM служит основным методом установки пакетов в системах Linux. Если пакеты были установлены с использованием исходного кода, RPM не управляет ими.
  • RPM работает с файлами .rpm, содержащими важную информацию о пакете, такую как его идентификатор, источник, зависимости, детали версии и многое другое.

Основные режимы для команды RPM

Вот основные режимы для команды RPM:

  • Установить – Команда rpm -i устанавливает новый пакет в систему.
  • Обновить – Команда rpm -U обновляет существующий пакет до новой версии.
  • Удалить – Команда rpm -e удаляет пакет из системы.
  • Запрос – Команда rpm -q запрашивает базу данных RPM для информации о установленных пакетах.
  • Проверить – Команда rpm -V проверяет целостность установленных файлов пакета.
  • Обновить с заменой – Команда rpm -F обновляет или устанавливает пакет только в случае, если он уже установлен.
  • Перестроить базу данных – Команда rpm --rebuilddb перестраивает базу данных RPM, исправляя проблемы с её повреждением.
  • Импортировать GPG-ключ – Команда rpm --import импортирует GPG-ключ, используемый для проверки подписи пакета.
  • Запрос всех – Команда rpm -qa выводит список всех установленных пакетов в системе.
  • Запрос файлов – Команда rpm -ql выводит список всех файлов, установленных определённым пакетом.
  • Запрос документации – Команда rpm -qd выводит список файлов документации, предоставленных пакетом.
  • Запрос зависимостей – Команда rpm -qR выводит список зависимостей времени выполнения для пакета.
  • Запрос Предоставляет– Команда rpm -q --provides выводит список возможностей, предоставляемых пакетом.
  • Запрос Требует– Команда rpm -q --requires выводит список зависимостей, требуемых пакетом.

Где найти RPM пакеты

Вы можете найти RPM пакеты в нескольких местах, в зависимости от вашего дистрибутива Linux. Вот распространенные места, где вы можете найти и скачать все RPM пакеты.

Помните, что вы должны быть root пользователем при установке пакетов в Linux, с правами root вы можете управлять командами rpm с соответствующими опциями.

1. Как проверить подпись пакета RPM

Всегда проверяйте PGP-подпись пакетов перед их установкой на ваших системах Linux и убедитесь, что их целостность и происхождение OK.

Используйте следующую команду с опцией --checksig (проверка подписи) для проверки подписи пакета под названием hardinfo.

rpm --checksig hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm

hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm: digests OK

2. Как установить пакет RPM

Для установки пакета программного обеспечения RPM используйте следующую команду с опцией -ivh, которая установит пакет rpm под названием hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm на системе Linux.

rpm -ivh hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm

Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:hardinfo-2.0.11-1                ################################# [100%]

Давайте разберем компоненты вышеуказанной команды:

  • -i : установить пакет
  • -v : подробный вывод для более приятного отображения
  • <код>-h: распечатать символы решетки (#) для отображения прогресса установки.

3. Как проверить зависимости пакета RPM перед установкой

Предположим, вы хотите проверить зависимости перед установкой или обновлением пакета. Например, используйте следующую команду, чтобы проверить зависимости пакета hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm.

Команда запрашивает и отображает зависимости времени выполнения, необходимые для пакета “hardinfo”, что помогает определить и убедиться, что все необходимые зависимости выполнены перед установкой пакета.

rpm -qpR hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm
 
libX11.so.6()(64bit)
libatk-1.0.so.0()(64bit)
libc.so.6()(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.33)(64bit)
libc.so.6(GLIBC_2.34)(64bit)
libc.so.6(GLIBC_2.38)(64bit)
libc.so.6(GLIBC_2.7)(64bit)
libcairo-gobject.so.2()(64bit)
libcairo.so.2()(64bit)
...

Давайте разберем компоненты вышеуказанной команды:

  • <код>-q : Запросить пакет.
  • <код>-p : Вывести возможности, которые предоставляет этот пакет.
  • <код>-R : Вывести возможности, от которых зависит этот пакет.

4. Как установить пакет RPM без зависимостей

Чтобы установить пакет rpm без зависимостей, вы можете использовать опцию <код>–nodeps, которая принудительно установит пакет RPM, не проверяя и не решая зависимости.

rpm -ivh --nodeps hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm

Вышеуказанная команда принудительно устанавливает пакет rpm, игнорируя ошибки зависимостей, но если эти файлы зависимостей отсутствуют, то программа не будет работать вообще, пока вы их не установите.

5. Как проверить установленный пакет RPM

Чтобы проверить установленный пакет rpm, вы можете использовать опцию <код>-q, которая запросит и отобразит информацию о установленной версии пакета.

rpm -q hardinfo

hardinfo-2.0.11-1.x86_64

6. Как найти, где установлены файлы RPM

Для просмотра всех файлов установленного пакета rpm используйте команду -ql (запрос списка) с командой rpm.

rpm -ql hardinfo

/usr/bin/hardinfo2
/usr/lib/.build-id
/usr/lib/.build-id/3a
/usr/lib/.build-id/53
/usr/lib/.build-id/7c
/usr/lib/.build-id/ba
/usr/lib/.build-id/e0
/usr/lib64/hardinfo2
/usr/lib64/hardinfo2/modules
/usr/lib64/hardinfo2/modules/benchmark.so
/usr/lib64/hardinfo2/modules/computer.so
/usr/lib64/hardinfo2/modules/devices.so
/usr/lib64/hardinfo2/modules/network.so
...

7. Как вывести список недавно установленных пакетов RPM

Используйте следующую команду rpm с опцией -qa (запрос все), чтобы вывести список всех недавно установленных пакетов rpm.

rpm -qa --last


hardinfo-2.0.11-1.x86_64                      Mon 04 Mar 2024 01:32:14 PM IST
pipewire-pulseaudio-1.0.3-1.fc39.x86_64       Mon 04 Mar 2024 01:32:02 PM IST
pipewire-jack-audio-connection-kit-1.0.3-1.fc39.x86_64 Mon 04 Mar 2024 01:32:02 PM IST
pipewire-alsa-1.0.3-1.fc39.x86_64             Mon 04 Mar 2024 01:32:02 PM IST
libsoup-devel-2.74.3-3.fc39.x86_64            Mon 04 Mar 2024 01:32:02 PM IST
json-glib-devel-1.8.0-1.fc39.x86_64           Mon 04 Mar 2024 01:32:02 PM IST
gtk3-devel-3.24.41-1.fc39.x86_64              Mon 04 Mar 2024 01:32:02 PM IST
xdg-desktop-portal-gtk-1.15.1-1.fc39.x86_64   Mon 04 Mar 2024 01:32:01 PM IST
xdg-desktop-portal-1.18.2-1.fc39.x86_64       Mon 04 Mar 2024 01:32:01 PM IST
libcanberra-gtk3-0.30-32.fc39.x86_64          Mon 04 Mar 2024 01:32:01 PM IST
gtk3-3.24.41-1.fc39.x86_64                    Mon 04 Mar 2024 01:32:01 PM IST
...

8. Как вывести список всех установленных пакетов RPM

Введите следующую команду, чтобы распечатать все имена установленных пакетов на вашей системе Linux.

rpm -qa

fonts-filesystem-2.0.5-12.fc39.noarch
libreport-filesystem-2.17.11-3.fc39.noarch
hunspell-filesystem-1.7.2-5.fc39.x86_64
abattis-cantarell-vf-fonts-0.301-10.fc39.noarch
fedora-gpg-keys-39-1.noarch
fedora-repos-39-1.noarch
setup-2.14.4-1.fc39.noarch
filesystem-3.18-6.fc39.x86_64
basesystem-11-18.fc39.noarch
default-fonts-core-sans-4.0-9.fc39.noarch
langpacks-fonts-en-4.0-9.fc39.noarch
...

9. Как обновить пакет RPM

Если мы хотим обновить любой пакет RPM, используется опция –U (upgrade). Одно из основных преимуществ использования этой опции заключается в том, что она не только обновит последнюю версию любого пакета, но и сохранит резервную копию более старого пакета, чтобы в случае, если обновленный пакет не запустится, можно будет использовать ранее установленный пакет.

rpm -Uvh hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm

10. Как удалить пакет RPM

Чтобы удалить пакет RPM, например, мы используем имя пакета hardinfo, а не исходное имя пакета hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm. Опция -e (erase) используется для удаления пакета.

rpm -evv hardinfo

11. Как удалить пакет RPM без учета зависимостей

Опция --nodeps (не проверять зависимости) принудительно удаляет пакет rpm из системы. Но имейте в виду, что удаление определенного пакета может сломать другие работающие приложения.

rpm -ev --nodeps hardinfo

12. Как найти пакет RPM для конкретного файла

Предположим, у вас есть список файлов, и вы хотите узнать, к какому пакету они принадлежат. Например, следующая команда с опцией -qf (запрос файла) покажет вам файл /usr/bin/htpasswd, который принадлежит пакету httpd-tools-2.4.58-1.fc39.x86_64.

rpm -qf /usr/bin/htpasswd

httpd-tools-2.4.58-1.fc39.x86_64

13. Как запросить информацию о установленном пакете

Предположим, вы установили пакет rpm и хотите узнать информацию о пакете. Следующая опция -qi (запрос информации) выведет доступную информацию об установленном пакете.

rpm -qi hardinfo

Name        : hardinfo
Version     : 2.0.11
Release     : 1
Architecture: x86_64
Install Date: Mon 04 Mar 2024 01:32:14 PM IST
Group       : unknown
Size        : 5174404
License     : GPL2+
Signature   : (none)
Source RPM  : hardinfo-2.0.11-1.src.rpm
Build Date  : Sat 02 Mar 2024 06:37:42 AM IST
Build Host  : fedora.bigbear.dk
Relocations : /usr 
Vendor      : Humanity
URL         : https://www.hardinfo2.org
Summary     : hardinfo2 built using CMake
Description :
Hardinfo2 is a small application that displays information about your hardware and operating system.  It has online benchmarking to check your machine performance against other machines.

14. Получение информации о пакете RPM перед установкой

Вы загрузили пакет из интернета и хотите узнать информацию о пакете перед установкой. Например, следующая опция -qip (запрос информации о пакете) выведет информацию о пакете sqlbuddy.

rpm -qip sqlbuddy

Name        : sqlbuddy                     Relocations: (not relocatable)
Version     : 1.3.3                        Vendor: (none)
Release     : 1                            Build Date: Wed 02 Nov 2011 11:01:21 PM BDT
Install Date: (not installed)              Build Host: rpm.bar.baz
Group       : Applications/Internet        Source RPM: sqlbuddy-1.3.3-1.src.rpm
Size        : 1155804                      License: MIT
Signature   : (none)
Packager    : Erik M Jacobs
URL         : http://www.sqlbuddy.com/
Summary     : SQL Buddy â Web based MySQL administration
Description : SQLBuddy is a PHP script that allows for web-based MySQL administration.

15. Как запросить документацию установленного пакета RPM

Чтобы получить список доступной документации установленного пакета, используйте следующую команду с опцией -qdf (запрос файла документации), чтобы отобразить страницы руководства, относящиеся к пакету vmstat.

rpm -qdf /usr/bin/vmstat

/usr/share/doc/procps-ng/AUTHORS
/usr/share/doc/procps-ng/FAQ
/usr/share/doc/procps-ng/NEWS
/usr/share/doc/procps-ng/README.md
/usr/share/doc/procps-ng/bugs.md
/usr/share/man/man1/free.1.gz
/usr/share/man/man1/pgrep.1.gz
...

16. Как проверить пакет RPM

Проверка пакета сравнивает информацию о установленных файлах пакета с базой данных RPM. -Vp (проверить пакет) используется для проверки пакета.

rpm -Vp sqlbuddy-1.3.3-1.noarch.rpm

S.5....T.  c /etc/httpd/conf.d/sqlbuddy.conf

17. Как проверить все RPM-пакеты

Введите следующую команду, чтобы проверить все установленные пакеты rpm.

rpm -Va

S.5....T.  c /etc/rc.d/rc.local
.......T.  c /etc/dnsmasq.conf
.......T.    /etc/ld.so.conf.d/kernel-2.6.32-279.5.2.el6.i686.conf
S.5....T.  c /etc/yum.conf
S.5....T.  c /etc/yum.repos.d/epel.repo

18. Как импортировать ключ GPG RPM

Чтобы проверить пакеты RHEL/CentOS/Fedora, вы должны импортировать ключ GPG. Для этого выполните следующую команду. Она импортирует ключ GPG CentOS 8.

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-8

19. Как вывести список всех импортированных ключей GPG RPM

Чтобы вывести все импортированные ключи GPG на вашей системе, используйте следующую команду.

rpm -qa gpg-pubkey*

gpg-pubkey-0608b895-4bd22942
gpg-pubkey-7fac5991-4615767f
gpg-pubkey-0f2672c8-4cd950ee
gpg-pubkey-c105b9de-4e0fd3a3
gpg-pubkey-00f97f56-467e318a
gpg-pubkey-6b8d79e6-3f49313d
gpg-pubkey-849c449f-4cb9df30

20. Как восстановить поврежденную базу данных RPM

Иногда база данных rpm становится поврежденной и прекращает все функции rpm и других приложений в системе. Поэтому в этот момент нам нужно восстановить базу данных rpm с помощью следующей команды.

cd /var/lib
rm __db*
rpm --rebuilddb
rpmdb_verify Packages

В заключение, представленные команды rpm предоставляют полное руководство по эффективному управлению программными пакетами в дистрибутивах Linux на основе RHEL.

Source:
https://www.tecmint.com/20-practical-examples-of-rpm-commands-in-linux/