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/