Об утилите RPM
RPM — утилита управления одноименными пакетами, Package Manager RPM (менеджер пакетов RPM), ранее назывался Red Hat Package Manager (менеджер пакетов Red Hat). Используется для управления пакетами в дистрибутивах Linux основанных на Red Hat Enterprise Linux. Изначально утилита разрабатывалась компанией Red Hat, но потом стала использоваться во других дистрибутивах. Также RPM был портирован на Novell NetWare (с версии 6.5 SP3), IBM AIX (с версии 5) и другие. Как правило база данных находится в /var/lib/rpm. RPM — мощный менеджер управления пакетами. Используется для сборки и установки пакетов, запроса информации о пакете, проверки, обновления и удаления отдельных пакетов.
- С помощью этой утилиты также возможно установить нужные пакеты по FTP.
- Информация о пакете: что делает, кто сделал, где взять, содержимые файлы, и т.д.
- Проверка системы на наличие необходимых зависимостей для устанавливаемого пакета.
- Обновление пакетов, с контролем версии.
- Простое удаление пакета из системы с проверкой наличия пакетов, которые зависят от удаляемого.
Синтаксис
Синтаксис RPM является стандартным для большинства утилит.
# rpm -флаг -опции пакет
Используется для проверки и установке пакетов, а также для запроса информации о пакете. При запросе информации об установленном пакете выводится версия пакета, дата сборки, дата установки, архитектура для которой собран пакет, разработчик, лицензия, хост сборки и другое. Флаги при работе с RPM прописываются с одним -, а опции установки с --
. Опции флагов можно прописывать как перед именем пакета, так и после него. Также следует обратить внимание на регистр написания флагов.
Флаги rpm
- -i — установка пакета
- -U — обновление, пакет будет обновлен, даже если совпадают версии и другие данные, можно использовать вместо -i
- -e — удаление пакета
- -q — запрос информации о пакете, используется с дополнительными опциями
- -v — подробный вывод информации
- -h — показывает ход выполнения
- -V — проверка пакетов
Опции rpm
--
excludedocs — опция исключает установку документации к пакету--
force — при использовании опции будут проигнорированы предупреждения и пакет будет установлен несмотря на ошибки--
noscripts — пропустит выполнение инсталляционных скриптов--
nodeps — проигнорирует зависимости пакета--
replacepgks — опция заменяет пакет, если он уже установлен--
oldpackage — позволяет сделать downgrade (установка старой версии) пакета--
root path — устанавливает path в качестве корневого каталога--
test — показывает ход выполнения, но при этом задания выполняться не будут (будет полезно, например чтобы узнать при удалении, какие зависимости будут удалены вместе с пакетом)
Опции флагов -q -V
- i — выводит всю информацию о пакете (не работает с -V)
- a — выводит все пакеты установленные в системе
- l — покажет список файлов которые принадлежат пакету (не работает с -V)
- f — покажет пакет, к которому принадлежит файл (не работает с -V)
Примеры RPM
В пакетном менеджере доступны основные флаги, разберем каждый отдельно.
Информация о пакете
Запрос информации о пакете, для примера используем информацию о менеджере пакетов dnf в ОС Fedora
# rpm -q dnf
[root@localhost ~]# rpm -q dnf
dnf-4.2.21-1.fc32.noarch
Добавим флаг -i, так мы посмотрим подробную информацию о пакете
# rpm -qi dnf
[root@localhost ~]# rpm -qi dnf
Name : dnf
Version : 4.2.21
Release : 1.fc32
Architecture: noarch
Install Date: Сб 02 мая 2020 11:53:20
Group : Unspecified
Size : 1827966
License : GPLv2+ and GPLv2 and GPL
Signature : RSA/SHA256, Чт 09 апр 2020 13:57:51, Key ID 6c13026d12c944d0
Source RPM : dnf-4.2.21-1.fc32.src.rpm
Build Date : Ср 08 апр 2020 16:04:04
Build Host : buildvm-07.phx2.fedoraproject.org
Packager : Fedora Project
Vendor : Fedora Project
URL : https://github.com/rpm-software-management/dnf
Bug URL : https://bugz.fedoraproject.org/dnf
Summary : Package manager
Description :
Utility that allows users to manage packages on their systems.
It supports RPMs, modules and comps groups & environments.
Посмотрим список файлов принадлежащих пакету, укажем опцию -l.
# rpm -ql dnf
Если же наоборот, необходимо узнать к какому пакету принадлежит тот или иной файл
# rpm -qf dnf
Посмотрим список всех установленных в системе пакетов
# rpm -qa dnf
Установка, обновление
Установка пакета укажем флаг -i — установка, v — подробный вывод и -h -ход выполнения. Если у пакета есть зависимости, то RPM предложит сначала скачать и установить их, а только после этого будет разрешено установить нужный пакет.
# rpm -ivh pack.rpm
Установим тот же пакет, но при этом скачаем его с сайта
# rpm -ivh https://pkgs.org/pack.rpm
Обновим пакет, если пакета не было, то он будет установлен. Также если у пакета есть зависимости, то RPM предложит сначала скачать и установить их, а только после этого будет разрешено установить нужный пакет.
# rpm -Uvh pack.rpm
Если вам необходимо установить несколько пакетов, то их можно загрузить в папку и воспользоваться командой выше, но использовать не название пакета, а маску
# rpm -Uvh *.rpm
Чтобы удалить пакет со всеми его зависимостями, воспользуемся флагом -e.
# rpm -evh pack.rpm
Если вам нужно удалить только пакет, без зависимостей воспользуемся опцией --
nodeps, этой опцией можно воспользоваться и при установке.
# rpm -evh --nodeps pack.rpm
Посмотрим, что будет удалено вместе с пакетом, воспользуемся опцией --
test, опция позволяет посмотреть ход действий, но сами действия выполнены не будут
# rpm -evh --test pack.rpm
Проверка пакетов
Если необходима проверка пакета, то воспользуемся флагом -V
# rpm -V dnf-4.2.21-1.fc32
Если пакет успешно прошел проверку, то никаких действий вы не увидите. Если же будут ошибки, то RPM укажет на них, например: нарушены зависимости (Unsatisfied dependencies for dnf-4.2.21-1.fc32: pack>= 1.59, здесь указано, что для dnf нужна версия пакета pack выше 1.59), модифицирован файл (…….T. c /etc/dnf/dnf.conf, здесь указывается на модификацию файла dnf.conf).
Чтобы проверить все установленные в системе пакеты воспользуемся опцией -a
# rpm -Va