RPM (Red Hat Package Manager) — это стандартная утилита управления пакетами с открытым исходным кодом для систем на базе Red Hat, таких как (RHEL, CentOS, Fedora и т.д.). Этот инструмент позволяет системным администраторам и пользователям устанавливать, обновлять, удалять, запрашивать, проверять и управлять пакетами системного программного обеспечения в операционных системах Unix/Linux. RPM, включает в себя скомпилированные программы и библиотеки, необходимые пакетам. Эта утилита работает только с пакетами, созданными в формате .rpm.
В этой статье представлены некоторые полезные примеры команд rpm, которые могут вам пригодиться. С помощью этой команды вы можете устанавливать, обновлять и удалять пакеты в ваших системах.
Несколько фактов об утилите rpm.
- RPM бесплатен и распространяется под лицензией GPL (General Public License).
- RPM хранит информацию обо всех установленных пакетах в базе данных /var/lib/rpm.
- RPM имеет дело с файлами .rpm, которые содержат информацию о пакетах, например: что это такое, откуда он, информация о зависимостях, информация о версии и т.д.
- RPM работает только с пакетами, которые были установлены с помощью этой утилиты. Если вы установили пакеты с использованием исходного кода, то RPM не сможет работать с ними.
Пять основных режимов управления RPM.
- Install — используется для установки пакетов.
- Remove — используется для удаления пакетов.
- Upgrade — используется для обновления пакетов.
- Verify — используется для проверки пакетов.
- Query — используется для запроса любого пакета.
Как проверить подпись пакета.
Всегда проверяйте подпись пакетов PGP перед их установкой в свою систему. Это необходимо, чтобы убедитесь, что с их целостностью и происхождением все в порядке. Используйте команду с опцией —checksig (проверить подпись). В следующем примере, проверяю пакет upscayl. Вывод говорит нам, что все Ok.
[root@fedora rpm]# rpm --checksig upscayl-2.9.5-linux.rpm upscayl-2.9.5-linux.rpm: digests ОК [root@fedora rpm]#
Установка пакетов.
Для установки пакета программного обеспечения rpm используйте следующую команду с опцией -i. Например, чтобы установить пакет rpm под названием rustdesk-1.2.3-0.x86_64.rpm.
[root@fedora rpm]# rpm -ivh rustdesk-1.2.3-0.x86_64.rpm Verifying... ################################# [100%] Подготовка... ################################# [100%] пакет rustdesk-1.2.3-0.x86_64 уже установлен [root@fedora rpm]#
В этом выводе используются следующие опции:
- -i — установить пакет
- -v — подробный вывод работы.
- -h — отображать статус в виде #.
Проверка зависимостей для пакета.
Если вы хотите выполнить проверку зависимостей перед установкой или обновлением пакета, можно использовать следующую команду. Например, чтобы проверить зависимости пакета veyon-4.8.2.0-fedora.38.x86_64.rpm:
[root@fedora rpm]# rpm -qpR veyon-4.8.2.0-fedora.38.x86_64.rpm config(veyon) = 4.8.2.0-fedora.38 ld-linux-x86-64.so.2()(64bit) ld-linux-x86-64.so.2(GLIBC_2.3)(64bit) libGLX.so.0()(64bit) libOpenGL.so.0()(64bit) ...
В этом выводе используются следующие опции:
- -q — проверка пакетов.
- -p — отобразить потребности зависимости
- -R — вывести пакеты, от которых зависит этот пакет.
Установка пакета без зависимостей.
Если вы знаете, что все необходимые пакеты уже установлены, вы можете игнорировать эти зависимости, используя опцию —nodeps (без проверки зависимостей) перед установкой пакета.
[root@fedora rpm]# rpm -ivh --nodeps veyon-4.8.2.0-fedora.38.x86_64.rpm Verifying... ################################# [100%] Подготовка... ################################# [100%] Обновление / установка... 1:veyon-4.8.2.0-fedora.38 ################################# [100%] [root@fedora rpm]#
Приведенная выше команда принудительно устанавливает пакет rpm, игнорируя ошибки зависимостей, но если эти файлы зависимостей отсутствуют, программа вообще не будет работать, пока вы их не установите.
Проверка установленного пакета.
Использование опции -q с именем пакета покажет, установлен ли пакет rpm или нет.
[root@fedora rpm]# rpm -q veyon veyon-4.8.2.0-fedora.38.x86_64
Вывести список всех файлов, установленных с пакетом.
Чтобы просмотреть все файлы установленных из пакета rpm, используйте команду -ql (список запросов).
[root@fedora rpm]# rpm -ql veyon /lib/systemd /lib/systemd/system /lib/systemd/system/veyon.service /usr/bin/veyon-auth-helper /usr/bin/veyon-cli /usr/bin/veyon-configurator /usr/bin/veyon-master /usr/bin/veyon-server /usr/bin/veyon-service ...
Вывести список недавно установленных пакетов.
Используйте следующую команду rpm с опцией —qa (запросить все) и —last, чтобы просмотреть все недавно установленные пакеты rpm.
[root@fedora ~]# rpm -qa --last veyon-4.8.2.0-fedora.38.x86_64 Пн 19 фев 2024 14:26:48 sl-5.02-19.fc38.x86_64 Вт 13 фев 2024 13:32:22 kmod-VirtualBox-6.7.3-100.fc38.x86_64-7.0.14-2.fc38.x86_64 Пт 09 фев 2024 12:17:37 xorg-x11-server-Xwayland-22.1.9-5.fc38.x86_64 Пт 09 фев 2024 12:13:26 webp-pixbuf-loader-0.2.6-1.fc38.x86_64 Пт 09 фев 2024 12:13:26 qadwaitadecorations-qt6-0.1.4-1.fc38.x86_64 Пт 09 фев 2024 12:13:26 ibus-typing-booster-2.24.12-1.fc38.noarch Пт 09 фев 2024 12:13:26 container-selinux-2.228.1-1.fc38.noarch Пт 09 фев 2024 12:13:26 qadwaitadecorations-qt5-0.1.4-1.fc38.x86_64 Пт 09 фев 2024 12:13:25 plocate-1.1.22-1.fc38.x86_64 Пт 09 фев 2024 12:13:25 libmaxminddb-1.9.1-1.fc38.x86_64 Пт 09 фев 2024 12:13:25 libjcat-0.2.1-1.fc38.x86_64 Пт 09 фев 2024 12:13:25 libertas-firmware-20240115-2.fc38.noarch Пт 09 фев 2024 12:13:25 java-11-openjdk-11.0.22.0.7-1.fc38.x86_64 Пт 09 фев 2024 12:13:25 iwlwifi-mvm-firmware-20240115-2.fc38.noarch Пт 09 фев 2024 12:13:25 iwlwifi-dvm-firmware-20240115-2.fc38.noarch Пт 09 фев 2024 12:13:25 iwlegacy-firmware-20240115-2.fc38.noarch Пт 09 фев 2024 12:13:25 ...
Вывести список всех установленных пакетов.
Для вывода всех установленных пакетов, используется опция —qa.
[root@fedora rpm]# rpm -qa python3-pyOpenSSL-21.0.0-4.fc37.noarch shim-x64-15.6-2.x86_64 shim-ia32-15.6-2.x86_64 gpg-pubkey-5323552a-6112bcdc gpg-pubkey-645f044f-626fcd87 code-1.77.3-1681292829.el7.x86_64 gpg-pubkey-a621e701-63bdbbe3 zoom-5.14.5.2430-1.x86_64 gpg-pubkey-2980aecf-5719f4e1 protonvpn-stable-release-1.0.1-2.noarch packer-1.9.4-1.x86_64 ...
Как обновить пакет.
Если мы хотим обновить какой-либо пакет RPM, то используем опцию -U (обновление). Одним из основных преимуществ использования этой опции является то, что она не только обновит последнюю версию любого пакета, но также сохранит резервную копию старого пакета, чтобы в случае, если более новый обновленный пакет не запустится, то ранее установленный пакет можно использовать снова.
[root@fedora rpm]# rpm -Uvh rustdesk-1.2.3-0.x86_64.rpm Verifying... ################################# [100%] Подготовка... ################################# [100%] пакет rustdesk-1.2.3-0.x86_64 уже установлен
Удалить пакет
Чтобы удалить пакет RPM, используется опция -e (стереть).
[root@fedora rpm]# rpm -ev veyon Подготовка пакетов... veyon-4.8.2.0-fedora.38.x86_64 [root@fedora rpm]# rpm -qa | grep veyon [root@fedora rpm]#
Удалить пакет, не затрагивая зависимости.
Опция —nodeps принудительно удаляет пакет rpm из системы. Но имейте в виду, что удаление определенного пакета может привести к поломке других работающих приложений.
[root@fedora rpm]# rpm -ev --nodeps rustdesk Подготовка пакетов... rustdesk-1.2.3-0.x86_64
Узнать какому пакету принадлежит файл.
Допустим, у вас есть список файлов и вы хотите узнать, какой пакет принадлежит этим файлам. Например, следующая команда с опцией -qf (файл запроса) покажет вам файл /usr/bin/htpasswd, принадлежащий пакету httpd-tools-2.4.58-1.fc38.x86_64.
[root@fedora rpm]# rpm -qf /usr/bin/htpasswd httpd-tools-2.4.58-1.fc38.x86_64 [root@fedora rpm]#
Запрос информации об установленном пакете.
Допустим, вы установили пакет RPM и хотите узнать информацию о пакете. Следующая опция -qi (информация о запросе) выведет доступную информацию об установленном пакете.
[root@fedora rpm]# rpm -qi httpd Name : httpd Version : 2.4.58 Release : 1.fc38 Architecture: x86_64 Install Date: Чт 09 ноя 2023 23:33:38 Group : Unspecified Size : 60965 License : Apache-2.0 AND (BSD-3-Clause AND metamail AND HPND-sell-variant AND Spencer-94) Signature : RSA/SHA256, Сб 21 окт 2023 19:43:13, Key ID 809a8d7ceb10b464 Source RPM : httpd-2.4.58-1.fc38.src.rpm Build Date : Сб 21 окт 2023 19:12:41 Build Host : buildhw-x86-16.iad2.fedoraproject.org Packager : Fedora Project Vendor : Fedora Project URL : https://httpd.apache.org/ Bug URL : https://bugz.fedoraproject.org/httpd Summary : Apache HTTP Server Description : The Apache HTTP Server is a powerful, efficient, and extensible web server. [root@fedora rpm]#
Получение информации перед установкой пакета.
Вы загрузили пакет из Интернета и хотите узнать информацию о пакете перед установкой. Например, следующая опция -qip (пакет информации о запросе) выведет информацию о пакете.
[root@fedora rpm]# rpm -qip upscayl-2.9.5-linux.rpm Name : upscayl Version : 2.9.5 Release : 1 Architecture: x86_64 Install Date: (not installed) Group : default Size : 551640884 License : AGPL-3.0 Signature : (none) Source RPM : upscayl-2.9.5-1.src.rpm Build Date : Пн 04 дек 2023 17:24:49 Build Host : fv-az771-857.rk3yhgbdfeeu5pdqztzaatlnyd.ex.internal.cloudapp.net Relocations : / Packager : Nayam Amarshe <simplelogin-newsletter.j1zez@aleeas.com> Vendor : Nayam Amarshe <simplelogin-newsletter.j1zez@aleeas.com> URL : https://github.com/TGS963/upscayl Summary : AI Image Upscaler Description : Free and Open Source AI Image Upscaler [root@fedora rpm]#
Получить документы к установленному пакету.
Чтобы получить список доступной документации установленного пакета, используйте следующую команду с опцией -qdf (файл запроса файла). Например, чтобы отобразить страницы руководства, относящиеся к пакету vmstat.
[root@fedora rpm]# 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/README.top ...
Проверить пакет.
При проверке пакета информация об установленных файлах пакета сравнивается с базой данных rpm. -Vp (проверить пакет).
[root@fedora rpm]# rpm -Vp upscayl-2.9.5-linux.rpm .M....... /opt/Upscayl/chrome-sandbox
Проверить все пакеты в системе.
Введите следующую команду, чтобы проверить все установленные пакеты rpm.
[root@fedora rpm]# rpm -Va .......T. /boot/efi/EFI/BOOT/BOOTX64.EFI .......T. /boot/efi/EFI/BOOT/fbx64.efi .......T. /boot/efi/EFI/fedora/BOOTX64.CSV .......T. /boot/efi/EFI/fedora/mmx64.efi .......T. /boot/efi/EFI/fedora/shim.efi .......T. /boot/efi/EFI/fedora/shimx64.efi .......T. /boot/efi/EFI/BOOT/BOOTIA32.EFI ...
Импортировать ключ RPM GPG.
Чтобы проверить пакеты RHEL/CentOS/Fedora, вам необходимо импортировать ключ GPG. Для этого выполните следующую команду. Он импортирует ключ CentOS 7 GPG.
[root@fedora rpm]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Посмотреть все установленные ключи в системе.
Чтобы посмотреть все импортированные ключи GPG в вашей системе, используйте следующую команду.
[root@fedora rpm]# rpm -qa gpg-pubkey* gpg-pubkey-5323552a-6112bcdc gpg-pubkey-645f044f-626fcd87 gpg-pubkey-a621e701-63bdbbe3 gpg-pubkey-2980aecf-5719f4e1 gpg-pubkey-eb10b464-6202d9c6 gpg-pubkey-19940e11-5f99778b gpg-pubkey-d651ff2e-5dadbbc1 ...
Восстановить поврежденную базу rpm.
Иногда база данных rpm повреждается и останавливает всю функциональность rpm и других приложений в системе. Итак, на данный момент нам нужно перестроить базу данных rpm и восстановить ее с помощью следующей команды.
[root@fedora rpm]# cd /var/lib
[root@fedora rpm]# rm __db*
[root@fedora rpm]# rpm --rebuilddb
[root@fedora rpm]# rpmdb_verify Packages
Заключение.
В этой статье рассмотрели некоторые примеры использования команды rpm. Если есть еще примеры использования, делитесь в комментариях.
Was this helpful?
0 / 0