Как найти rpm пакет

НАЗВАНИЕ

rpm –
Менеджер
пакетов RPM

ОБЗОР

ЗАПРОС И
ПРОВЕРКА
ПАКЕТОВ:

rpm {-q|–query}
[опции-выбора]
[опции-запроса]

rpm {-V|–verify}
[опции-выбора]
[опции-проверки]

rpm –import PUBKEY …

rpm {-K|–checksig} [–nosignature]
[–nodigest] PACKAGE_FILE …

УСТАНОВКА,
ОБНОВЛЕНИЕ
И УДАЛЕНИЕ
ПАКЕТОВ:

rpm {-i|–install}
[опции-установки]
PACKAGE_FILE …

rpm {-U|–upgrade}
[опции-установки]
PACKAGE_FILE …

rpm {-F|–freshen}
[опции-установки]
PACKAGE_FILE …

rpm {-e|–erase} [–allmatches]
[–nodeps] [–noscripts] [–notriggers] [–test]
PACKAGE_NAME …

РАЗНОЕ:

rpm {–initdb|–rebuilddb}

rpm {–addsign|–resign} PACKAGE_FILE …

rpm {–querytags|–showrc}

rpm {–setperms|–setugids} PACKAGE_NAME

опции-выбора

[PACKAGE_NAME] [-a,–all] [-f,–file
FILE] [-g,–group GROUP] {-p,–package
PACKAGE_FILE] [–hdrid SHA1] [–pkgid
MD5] [–tid TID] [–querybynumber
HDRNUM] [–triggeredby PACKAGE_NAME]
[–whatprovides CAPABILITY] [–whatrequires
CAPABILITY]

опции-запроса

[–changelog] [-c,–configfiles]
[-d,–docfiles] [–dump] [–filesbypkg]
[-i,–info] [–last] [-l,–list] [–provides]
[–qf,–queryformat QUERYFMT] [-R,–requires]
[–scripts] [-s,–state]
[–triggers,–triggerscripts]

опции-проверки

[–nodeps] [–nofiles] [–noscripts]
[–nodigest] [–nosignature] [–nolinkto]
[–nomd5] [–nosize] [–nouser] [–nogroup]
[–nomtime] [–nomode] [–nordev]

опции-установки

[–aid] [–allfiles] [–badreloc]
[–excludepath OLDPATH] [–excludedocs]
[–force] [-h,–hash] [–ignoresize]
[–ignorearch] [–ignoreos] [–includedocs]
[–justdb] [–nodeps] [–nodigest]
[–nosignature] [–nosuggest] [–noorder]
[–noscripts] [–notriggers] [–oldpackage]
[–percent] [–prefix NEWPATH]
[–relocate OLDPATH=NEWPATH]
[–replacefiles] [–replacepkgs] [–test]

ОПИСАНИЕ

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

Необходимо
указать
один из
следующих
основных
режимов
работы:
Запрос,
Проверка,
Проверка
подписи,
Установка/Обновление/Освежение,
Удаление,
Инициализация
Базы
данных,
Перестройка
Базы
данных,
Повторная
подпись,
Добавление
подписи,
Задание
Владельцев/Групп,
Отображение
тегов
запроса и
Отображение
конфигурации.

ОБЩИЕ
ОПЦИИ

Эти опции
могут быть
использованы
во всех
режимах.

-?, –help
Вывести
более
детальную,
чем обычно,
справку об
использовании.
–version
Вывести
одну
строку,
содержащую
номер
версии rpm.
–quiet
Выводить
как можно
меньше
сообщений –
как
правило,
отображаются
только
сообщения
об
ошибках.
-v
Выводить
подробную
информацию
– как
правило,
отображаются
сообщения
о
выполнении
всех
шагов.
-vv
Выводить
много
отладочной
информации.
–rcfile
FILELIST
Каждый из
файлов
разделенного
двоеточиями
списка
файлов FILELIST
последовательно
прочитывается
rpm на
предмет
конфигурационной
информации.
В этом
списке
обязан
существовать
только
первый
файл; все
знаки
тильда
будут
заменены
значением
$HOME. По
умолчанию
список
файлов FILELIST
выглядит
как
/usr/lib/rpm/rpmrc:/usr/lib/rpm/<vendor>/rpmrc:/etc/rpmrc:~/.rpmrc.
–pipe
CMD
Перенаправляет
вывод rpm на
вход
команды CMD.
–dbpath
DIRECTORY
Использовать
базу
данных RPM в
каталоге
DIRECTORY вместо
пути по
умолчанию
/var/lib/rpm
–root
DIRECTORY
Использовать
для всех
операций
файловую
систему с
корнем в
DIRECTORY.
Обратите
внимание,
что это
значит, что
база
данных
внутри DIRECTORY
будет
использоваться
для
проверки
зависимостей,
и все
сценарии
%post и %prep
будут
исполняться
после chroot(2) в
DIRECTORY.

ОПЦИИ
УСТАНОВКИ
И
ОБНОВЛЕНИЯ

Общая
форма
команды
установки rpm
приведена
ниже

rpm {-i|–install}
[опции-установки]
PACKAGE_FILE …

Так
выполняется
установка
нового
пакета.

Общая
форма
команды
обновления
rpm приведена
ниже

rpm {-U|–upgrade}
[опции-установки]
PACKAGE_FILE …

Так
выполняется
установка
или
обновление
уже
установленного
пакета до
новой
версии. Эта
операция
аналогична
установке,
при этом
все другие
версии
удаляются
после
установки
нового
пакета.

rpm {-F|–freshen}
[опции-установки]
PACKAGE_FILE …

Так
выполняется
обновление
пакетов, но
только
если
предыдущая
версия уже
установлена.
Параметр
PACKAGE_FILE может
быть
указан как
адрес ftp или
http URL, в таком
случае
пакет
будет
скачан
перед
установкой.
См. ОПЦИИ FTP/HTTP
для
получения
информации
о работе rpm
с
поддержкой
ftp или http.

–aid
Добавляет
при
необходимости
предложенные
пакеты в
набор
транзакции.
–allfiles
Устанавливает
или
обновляет
все файлы с
флагом missingok в
пакете,
независимо
от их
существования.
–badreloc
Используется
вместе с
–relocate,
разрешает
перемещение
всех путей
файлов, не
только тех,
для
которых
старые
пути OLDPATH
включены в
заметки по
перемещению
(relocation hint) в
бинарном
пакете.
–excludepath
OLDPATH
Не
устанавливать
файлы
названия,
которых
начинаются
с OLDPATH.
–excludedocs
Не
устанавливать
файлы
помеченные
как
документация
(включающие
man страницы
и
документы
texinfo).
–force
Эквивалентно
использованию
–replacepkgs, –replacefiles и
–oldpackage.
-h, –hash
Выводит 50
отметок
при
распаковке
архива.
Используется
с -v|–verbose для
удобства
отображения.
–ignoresize
Не
проверять
подключенные
файловые
системы на
наличие
необходимого
места на
диске
перед
установкой
данного
пакета.
–ignorearch
Разрешить
установку
или
обновление,
даже если
архитектуры
бинарного
пакета и
узла не
совпадают.
–ignoreos
Разрешить
установку
или
обновление,
даже если
операционные
системы
бинарного
пакета и
узла не
совпадают.
–includedocs
Устанавливать
файлы с
документацией.
Это
поведение
задано по
умолчанию.
–justdb
Обновить
только
информацию
в базе, но
не
файловые
системы.
–nodigest
Не
проверять
при чтении
дайджест
пакета или
заголовка.
–nosignature
Не
проверять
при чтении
подпись
пакета или
заголовка.
–nodeps
Не
выполнять
проверку
зависимостей
перед
установкой
или
обновлением
пакета.
–nosuggest
Не
предлагать
пакет(ы)
для
разрешения
отсутствующих
зависимостей.
–noorder
Не
выполнять
переупорядочивание
пакетов
для
установки.
Список
пакетов
обычно
переупорядочивается
для
удовлетворения
зависимостей.
–noscripts
–nopre
–nopost
–nopreun
–nopostun
Не
выполнять
скриптлеты
с
указанным
именем.
Опция –noscripts
эквивалентна

–nopre –nopost –nopreun
–nopostun

и
выключает
исполнение
соответствующих
%pre, %post, %preun и %postun
скриптлетов.

–notriggers
–notriggerin
–notriggerun
–notriggerpostun

Не
выполнять
ни какие
триггерные
скриптлеты
с
указанным
именем.
Опция –notriggers
эквивалентна

–notriggerin –notriggerun
–notriggerpostun

и
выключает
исполнение
соответствующих
%triggerin, %triggerun и %triggerpostun
скриптлетов.

–oldpackage
Разрешает
обновить
или
заменить
новый
пакет
более
старой
версией.
–percent
Вывести
информацию
в
процентах
по мере
распаковки
файлов из
архива
пакета. Она
предназначена
для
упрощения
вызова rpm
из других
утилит.
–prefix
NEWPATH
Для
перемещаемых
бинарных
пакетов,
преобразовать
все пути
файлов,
которые
начинаются
с
инсталляционного
префикса в
заметках
по
перемещению
(relocation hint) на NEWPATH.
–relocate
OLDPATH=NEWPATH
Для
перемещаемых
бинарных
пакетов,
преобразовать
все пути
файлов,
которые
начинаются
с OLDPATH в
заметках
по
перемещению
(relocation hint) на NEWPATH.
Данная
опция
может быть
использована
несколько
раз, если
требуется
переместить
несколько
путей OLDPATH в
пакете.
–replacefiles
Установить
пакеты,
даже если
они
заменяют
файлы от
других
установленных
пакетов.
–replacepkgs
Установить
пакеты,
даже если
они уже
установлены
в системе.
–test
Не
устанавливать
пакеты,
просто
выполнить
проверку и
сообщить о
потенциальных
конфликтах.

ОПЦИИ
УДАЛЕНИЯ

Общая
форма
команды
удаления rpm
приведена
ниже

rpm {-e|–erase} [–allmatches]
[–nodeps] [–noscripts] [–notriggers] [–test]
PACKAGE_NAME …

Следующие
опции
могут быть
также
использованы:

–allmatches
Удалить
все версии
пакета
совпадающие
с PACKAGE_NAME.
Обычно при
наличии
нескольких
пакетов
совпадающих
с PACKAGE_NAME
возникает
ошибка.
–nodeps
Не
проверять
зависимости
перед
удалением
пакетов.
–noscripts
–nopreun
–nopostun
Не
выполнять
скриптлеты
с
указанными
именами.
Наличие
параметра
–noscripts при
удалении
пакетов
эквивалентно

–nopreun –nopostun

и
выключает
исполнение
соответствующих
скриптлетов
%preun и %postun.

–notriggers
–notriggerun
–notriggerpostun
Не
выполнять
ни какие
триггерные
скриптлеты
с
указанным
именем.
Опция –notriggers
эквивалентна

–notriggerun –notriggerpostun

и
выключает
исполнение
соответствующих
%triggerun и %triggerpostun
скриптлетов.

–test
Не удалять
пакеты,
просто
выполнить
проверку.
Удобно
использовать
этот
параметр
при
отладке
совместно
с опцией -vv.

ОПЦИИ
ЗАПРОСА

Общая
форма
команды
запроса rpm
приведена
ниже

rpm {-q|–query} [select-options]
[query-options]

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

–qf|–queryformat QUERYFMT

вслед за
которым
указывается
строка
формата QUERYFMT.
Форматирование
запроса –
это
измененная
версия
стандартного
механизма
printf(3).
Форматирование
формируется
из
статических
строк
(которые
могут
включать
стандартные
для языка C
escape-последовательности
для
перевода
строки,
табуляции
и других
спец.
символов) и
меток
форматирования
printf(3). Т.к. rpm
заранее
знает тип
выводимой
информации,
указатель
формата
может быть
опущен и
заменен на
имя
выводимого
тега
заголовка,
заключенного
в фигурные
скобки {}.
Имена
тегов не
чувствительны
к регистру
и префикс
RPMTAG_ в имени
тега можно
опускать.

Альтернативные
форматы
вывода
могут быть
заданы при
помощи
задания
типа
вывода :typetag
после
имени тега.
В данный
момент
поддерживаются
следующие
типы:

:armor
Упаковать
публичный
ключ в ASCII
вид.
:base64
Закодировать
двоичные
данные в
формат base64.
:date
Использовать
формат strftime(3)
“%c”.
:day
Использовать
формат strftime(3) “%a %b
%d %Y”.
:depflags
Форматировать
флаги
зависимостей.
:fflags
Форматировать
флаги
файлов.
:hex
В
шестнадцатеричном
виде.
:octal
В
восьмеричном
виде.
:perms
Форматировать
права
доступа
файлов.
:shescape
Экранировать
одиночные
кавычки
для
применения
в
сценариях.
:triggertype
Вывести
суффикс
триггера.

Например,
для вывода
только
имени
пакета при
запросе, вы
можете
использовать
строку
формата %{NAME}.
Для вывода
имени
пакетов и
информации
о
дистрибутиве
в две
колонки вы
можете
использовать
%-30{NAME}%{DISTRIBUTION}.
Команда rpm
отобразит
спиков
всех тегов,
с которыми
она может
работать
при ее
вызове с
параметром
–querytags.

Существуют
два набора
параметров
для
выполнения
запросов:
для выбора
пакетов и
для
указания
информации.

ОПЦИИ
ВЫБОРА
ПАКЕТОВ:

PACKAGE_NAME
Выполняет
запрос к
установленному
пакету с
именем PACKAGE_NAME.
-a, –all
Выполняет
запрос ко
всем
установленным
пакетам.
-f, –file
FILE
Выполняет
запрос к
пакету,
владельцу
файла FILE.
-g, –group
GROUP
Выполняет
запрос к
пакету с
группой
GROUP.
–hdrid
SHA1
Выполняет
запрос к
пакету,
содержащему
указанный
идентификатор
заголовка,
т.е. SHA1
дайджест
неизменной
части
заголовка.
-p, –package
PACKAGE_FILE
Выполняет
запрос к
(неустановленному)
пакету в
файле PACKAGE_FILE.
Параметр
PACKAGE_FILE может
быть
указан в
виде
адреса ftp
или http URL, в
результате
чего
заголовок
пакета
будет
скачан и
опрошен.
Обратитесь
к ОПЦИЯМ
FTP/HTTP за
информацией
о
поддержке
в rpm работы
с ftp и http. Если
аргумент(ы)
PACKAGE_FILE не
является
бинарным
пакетом, то
он будет
интерпретирован
как ASCII
манифест
пакета. В
нем
разрешено
применение
комментариев
начинающихся
с ‘#’, каждая
из строк
файла
манифеста
пакета
может
включать
разделенные
запятыми glob
выражения,
включая
адреса URL с
внешними glob
выражениями,
они будут
развернуты
в пути,
которые
будут
подставлены
вместо
манифеста
пакета как
дополнительный
аргумент
PACKAGE_FILE в
запросе.
–pkgid
MD5
Выполняет
запрос к
пакету,
который
содержит
указанный
идентификатор
пакета, т.е.
MD5
дайджест
объединенного
содержимого
заголовка
и тела
пакета.
–querybynumber
HDRNUM
Выполняет
запрос
напрямую
HDRNUM‘ой
записи в
базе
данных;
используется
только для
отладки.
–specfile
SPECFILE
Обработать
и
выполнить
запрос к SPECFILE
файлу, как
если бы это
был пакет.
Хотя не вся
информация
доступна
(например,
список
файлов),
этот тип
запросов
позволяет
использовать
rpm для
извлечения
информации
из spec файлов
без
написания
специализированного
анализатора
таких
файлов.
–tid TID
Выполняет
запрос к
пакету(ам),
который
содержит
указанный
идентификатор
транзакции
TID. В данный
момент
используется
временная
метка unix в
качестве
идентификатора.
Все пакеты
установленные
или
удаленные
в составе
одной
транзакции
будут
иметь один
и тот же
идентификатор.
–triggeredby
PACKAGE_NAME
Выполняет
запрос к
пакетам,
которые
вызывают
срабатывание
триггера
пакета(ов)
PACKAGE_NAME.
–whatprovides
CAPABILITY
Выполняет
запрос ко
всем
пакетам,
которые
предоставляют
функциональность
CAPABILITY.
–whatrequires
CAPABILITY
Выполняет
запрос ко
всем
пакетам,
которые
требуют CAPABILITY
для
корректной
работы.

ОПЦИИ
ЗАПРОСА
ПАКЕТОВ:

–changelog
Вывести
информацию
об
изменениях
в пакете.
-c, –configfiles
Вывести
только
конфигурационные
файлы
(подразумевает
-l).
-d, –docfiles
Вывести
только
файлы
документации
(подразумевает
-l).
–dump
Распечатать
информацию
о файле в
виде:
path size mtime md5sum mode owner group isconfig isdoc rdev symlink

Эта опция
должна
быть
использована
совместно
с одной из
-l, -c, -d.

–filesbypkg
Вывести
все файлы
во всех
выбранных
пакетах.
-i, –info
Вывести
информацию
о пакете,
включая
имя, версию
и описание.
Будет
использована
–queryformat если
указана.
–last
Упорядочивает
вывод
пакетов по
времени
установки
так, чтобы
последние
пакеты
были
выведены в
начале.
-l, –list
Вывести
список
файлов в
пакете.
–provides
Вывести
функциональность
(capabilities)
предоставляемую
пакетом.
-R, –requires
Вывести
пакеты, от
которых
зависит
этот
пакет.
–scripts
Вывести
скриптлет(ы)
пакета,
которые
используются
как часть
процесса
установки
или
удаления
пакетов.
-s, –state
Вывести
состояние
(state) файлов в
пакете
(подразумевается
-l).
Состояние
каждого
файла в
пакете
является
одним из
нормальное
(normal), не
установлен
(not installed) или
заменен
(replaced).
–triggers,
–triggerscripts
Показать
сценарии
триггеров
(если
существуют),
входящие в
состав
пакета.

ОПЦИИ
ПРОВЕРКИ

Общая
форма
команды
проверки rpm
приведена
ниже

rpm {-V|–verify}
[опции-выбора]
[опции-проверки]

Операция
проверки
пакета
сравнивает
информацию
о файлах
установленных
из пакета с
информацией
о них из
метаданных
пакета,
хранимых в
базе
данных rpm.
Среди
прочего
при
проверке
сравниваются
размер, MD5
сумма,
права
доступа
тип,
владельца
и группу
каждого
файла.
Любые
расхождения
будут
отображены.
Файлы,
которые не
были
установлены
вместе с
пакетом,
например,
файлы
документации,
исключенные
при помощи
опции “–excludedocs“,
будут
проигнорированы
без
предупреждения.

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

–nodeps
Не
выполнять
проверку
зависимостей
пакетов.
–nodigest
Не
проверять
при чтении
дайджест
пакета или
заголовка.
–nofiles
Не
проверять
атрибуты
файлов
пакетов.
–noscripts
Не
выполнять
скриптлет
%verifyscript (если
существует).
–nosignature
Не
проверять
при чтении
подпись
пакета или
заголовка
при
чтении.
–nolinkto
–nomd5
–nosize
–nouser
–nogroup
–nomtime
–nomode
–nordev
Не
проверять
соответствующие
атрибуты
файлов.

Формат
вывода
представляет
собой
строку из 9
символов и
маркера из
заголовка
пакета, за
которыми
следует
имя файла.
Возможные
маркеры
атрибутов
приведены
ниже:

c %config конфигурационный файл.
d %doc файл документации.
g %ghost файл (т.е. содержимое файла не включено в состав пакета).
l %license файл с лицензией.
r %readme файл readme.

Каждый из
9 символов
отражает
результат
проверки
атрибута(ов)
файлов с
значением
того же
атрибута,
записанного
в базе
данных.
Символ “.
(точка)
означает,
что
проверка
прошла, а
символ “?
(вопросительный
знак)
означает,
что
проверка
не может
быть
выполнена
(например,
права
доступа к
файлу не
позволяют
провести
чтение). В
противном
случае
будут
отображены
символы
(для
привлечения
внимания
выделены
жирным),
показывающие
сбой
проверки
соответствующего
–verify теста:

S размер (Size) файла отличается
M режим (Mode) доступа отличается (включая права доступа и тип файла)
5 отличается контрольная MD5 сумма
D отличается старший/младший номер файла устройства (Device)
L отличается путь ссылки при readLink(2) 
U отличается владелец (User)
G отличается групповое владение (Group)
T отличается время изменения (mTime)

ПРОВЕРКА
ЦИФРОВОЙ
ПОДПИСИ И
ДАЙДЖЕСТА

Общая
форма
команд rpm по
работе с
цифровой
подписью
приведена
ниже

rpm –import PUBKEY …

rpm {–checksig} [–nosignature]
[–nodigest] PACKAGE_FILE …

Опция –checksig
проверяет
все
дайджесты
и подписи,
содержащиеся
в PACKAGE_FILE для
проверки
целостности
и
происхождения
пакета.
Обратите
внимание,
что
подписи
теперь
проверяются
при каждом
чтении
пакета и
опция –checksig
полезна
для
проверки
всех
дайджестов
и подписей,
ассоциированных
с пакетом.

Цифровые
подписи не
могут быть
проверены
без
публичных
ключей.
Публичный
ключ в ASCII
формате
может быть
добавлен в
базу
данных rpm
при
использовании
команды –import.
Импортированный
публичный
ключ
заносится
в
заголовок
и
управление
ключами
проводится
аналогично
управлению
пакетами.
Например,
все
импортированные
ключи
можно
просмотреть
при
помощи:

rpm -qa gpg-pubkey*

Подробная
информация
о
конкретном
публичном
ключе
после
импорта
может быть
отображена
при
запросе.
Информация
о ключе Red Hat GPG/DSA:

rpm -qi gpg-pubkey-db42a60e

Наконец,
публичный
ключ может
быть
удален
после его
импорта
также как
пакет.
Удаление
ключа Red Hat GPG/DSA:

rpm -e gpg-pubkey-db42a60e

ПОДПИСЬ
ПАКЕТА

rpm –addsign|–resign PACKAGE_FILE …

Обе опции
–addsign и –resign
создают и
вставляют
новую
подпись
для
каждого
указанного
файла PACKAGE_FILE,
заменяя
существующие
подписи.
Эти две
опции
существуют
по
историческим
причинам, и
разницы в
поведении
между ними
сейчас
нет.

ИСПОЛЬЗОВАНИЕ
GPG ДЛЯ
ПОДПИСИ
ПАКЕТОВ

Для того,
чтобы
подписывать
пакеты при
помощи GPG, rpm
должен
быть
настроен
на запуск GPG
и иметь
возможность
находить
хранилище
ключей с
требуемыми
ключами. По
умолчанию
rpm
использует
те же
соглашения,
что и GPG для
обнаружения
хранилища
ключей, а
именно
переменную
среды $GNUPGHOME.
Если ваше
хранилище
ключей
располагается
не там, где
его
ожидает
найти GPG, вам
потребуется
определить
в макросе
%_gpg_path
расположение
хранилища
ключей GPG.

Для
совместимости
со старыми
версиями GPG, PGP
и rpm следует
настраивать
только
подпись
пакетов V3 OpenPGP.
Могут быть
использованы
алгоритмы
проверки DSA
и RSA, хотя
предпочитается
DSA.

Если вам
требуется
подписывать
собственные
пакеты, вам
также
потребуется
создать
собственную
пару из
публичного
и
приватного
ключа (см.
руководство
по GPG). Вам
также
потребуется
настроить
rpm макрос

%_gpg_name
Имя
пользователя,
ключом
которого
будут
подписываться
ваши
пакеты.

Например,
для
использования
GPG для
подписи
пакетов от
имени “John Doe
<jdoe@foo.com>”
из
хранилища
ключей
расположенного
в /etc/rpm/.gpg,
используя
программу
/usr/bin/gpg, вам
потребуется
включить
строки

%_gpg_path /etc/rpm/.gpg
%_gpg_name John Doe <jdoe@foo.com>
%_gpgbin /usr/bin/gpg

в файл
настройки
макросов.
Для
общесистемной
настройки
используется
/etc/rpm/macros и ~/.rpmmacros для
конкретного
пользователя.

ОПЦИИ
ПЕРЕСТРОЙКИ
БАЗЫ
ДАННЫХ

Общая
форма
команды
перестройки
базы
данных rpm
приведена
ниже

rpm {–initdb|–rebuilddb} [-v] [–dbpath
DIRECTORY] [–root DIRECTORY]

Используйте
–initdb для
создания
новой базы
данных и –rebuilddb
для
перестройки
индексов
базы
данных на
основании
заголовков
установленных
пакетов.

SHOWRC

Команда

rpm –showrc

показывает
значения,
которые rpm
будет
использовать
для всех
опций,
установленные
в
конфигурационных
файлах rpmrc и
macros.

ОПЦИИ FTP/HTTP

rpm может
выступать
в качестве
клиента FTP
и/или HTTP,
таким
образом
пакеты
могут быть
опрошены
или
установлены
из
Интернет.
Пакеты для
операций
установки,
обновления
или
запроса
могут быть
указаны в
виде
адреса ftp
или http URL:

ftp://USER:PASSWORD@HOST:PORT/path/to/package.rpm

Если
параметр
:PASSWORD будет
опущен,
пароль
будет
запрошен
(один раз
для пары
пользователь/узел).
Если
опущены
оба
параметра
(user и password), будет
выполнено
анонимное
подключение
ftp. Во всех
случаях
используется
пассивный
(PASV) режим
передачи
файлов ftp.

rpm
допускает
следующие
опции для
адресов ftp URL:

–ftpproxy
HOST
Узел HOST
будет
использован
как
прокси-сервер
для всех
операций
передачи
данных ftp,
что
позволяет
работать с
ftp через
межсетевые
экраны, на
которых
запущена
служба
прокси. Эта
опция
может быть
также
указана
при
настройке
макроса
%_ftpproxy.
–ftpport
PORT
Номер TCP
порта PORT
будет
использован
для ftp
подключения
к ftp
прокси-серверу
вместо
порта по
умолчанию.
Эта опция
может быть
также
указана
при
настройке
макроса
%_ftpport.

rpm
допускает
следующие
опции для
адресов http
URL:

–httpproxy
HOST
Узел HOST
будет
использован
как
прокси-сервер
для всех
операций
передачи
данных http.
Эта опция
может быть
также
указана
при
настройке
макроса
%_httpproxy.
–httpport
PORT
Номер TCP
порта PORT
будет
использован
для http
подключения
к http
прокси-серверу
вместо
порта по
умолчанию.
Эта опция
может быть
также
указана
при
настройке
макроса
%_httpport.

ВОПРОСЫ
СОВМЕСТИМОСТИ

Выполнение
rpmbuild

Режимы
сборки rpm
теперь
вынесены в
программу
/usr/bin/rpmbuild. Не
смотря на
это,
совместимость,
обеспечиваемая
при помощи
popt
псевдонимов,
указанных
ниже,
является
адекватной,
но не
совершенной.
Поэтому
совместимость
режимов
сборки
через
псевдонимы
popt удалена
из rpm.
Установите
пакет rpmbuild и
просмотрите
документацию
в rpmbuild(8) по
всем
режимам
сборки rpm,
ранее
приведенную
здесь в rpm(8).

Добавьте
следующие
строки в /etc/popt,
если вы
желаете
вызывать
rpmbuild из
командной
строки rpm:

rpm     exec --bp               rpmb -bp
rpm     exec --bc               rpmb -bc
rpm     exec --bi               rpmb -bi
rpm     exec --bl               rpmb -bl
rpm     exec --ba               rpmb -ba
rpm     exec --bb               rpmb -bb
rpm     exec --bs               rpmb -bs 
rpm     exec --tp               rpmb -tp 
rpm     exec --tc               rpmb -tc 
rpm     exec --ti               rpmb -ti 
rpm     exec --tl               rpmb -tl 
rpm     exec --ta               rpmb -ta
rpm     exec --tb               rpmb -tb
rpm     exec --ts               rpmb -ts 
rpm     exec --rebuild          rpmb --rebuild
rpm     exec --recompile        rpmb --recompile
rpm     exec --clean            rpmb --clean
rpm     exec --rmsource         rpmb --rmsource
rpm     exec --rmspec           rpmb --rmspec
rpm     exec --target           rpmb --target
rpm     exec --short-circuit    rpmb --short-circuit

ФАЙЛЫ

Конфигурация
rpmrc

/usr/lib/rpm/rpmrc
/usr/lib/rpm/<vendor>/rpmrc
/etc/rpmrc
~/.rpmrc

Конфигурация
макросов

/usr/lib/rpm/macros
/usr/lib/rpm/<vendor>/macros
/etc/rpm/macros
~/.rpmmacros

База
данных

/var/lib/rpm/Basenames
/var/lib/rpm/Conflictname
/var/lib/rpm/Dirnames
/var/lib/rpm/Filemd5s
/var/lib/rpm/Group
/var/lib/rpm/Installtid
/var/lib/rpm/Name
/var/lib/rpm/Packages
/var/lib/rpm/Providename
/var/lib/rpm/Provideversion
/var/lib/rpm/Pubkeys
/var/lib/rpm/Removed
/var/lib/rpm/Requirename
/var/lib/rpm/Requireversion
/var/lib/rpm/Sha1header
/var/lib/rpm/Sigmd5
/var/lib/rpm/Triggername

Временные
файлы

/var/tmp/rpm*

СМОТРИ
ТАКЖЕ

popt(3),
rpm2cpio(8),
rpmbuild(8),

http://www.rpm.org/ <URL:http://www.rpm.org/>

АВТОРЫ

Marc Ewing <marc@redhat.com>
Jeff Johnson <jbj@redhat.com>
Erik Troan <ewt@redhat.com>

ПЕРЕВОД

Андрей Мартынов <andrewm@inventa.ru>

rpm – Man Page

RPM Package Manager

Examples (TL;DR)

  • Show version of httpd package: rpm --query httpd
  • List versions of all matching packages: rpm --query --all 'mariadb*'
  • Forcibly install a package regardless of currently installed versions: rpm --upgrade package_name.rpm --force
  • Identify owner of a file and show version of the package: rpm --query --file /etc/postfix/main.cf
  • List package-owned files: rpm --query --list kernel
  • Show scriptlets from an RPM file: rpm --query --package --scripts package_name.rpm
  • Show changed, missing and/or incorrectly installed files of matching packages: rpm --verify --all 'php-*'
  • Display the changelog of a specific package: rpm --query --changelog package_name

tldr.sh

Synopsis

Querying and Verifying Packages

rpm {-q|–query} [select-options] [query-options]

rpm –querytags

rpm {-V|–verify} [select-options] [verify-options]

Installing, Upgrading, and Removing Packages

rpm {-i|–install} [install-options] PACKAGE_FILE …

rpm {-U|–upgrade} [install-options] PACKAGE_FILE …

rpm {-F|–freshen} [install-options] PACKAGE_FILE …

rpm {–reinstall} [install-options] PACKAGE_FILE …

rpm {-e|–erase} [–allmatches] [–justdb] [–nodb] [–nodeps] [–noscripts] [–notriggers] [–test] PACKAGE_NAME …

Miscellaneous

rpm –showrc

rpm –restore [select-options]

select-options

[PACKAGE_NAME] [-a,–all [SELECTOR]] [-f,–file FILE] [–path PATH] [-g,–group GROUP] [-p,–package PACKAGE_FILE] [–hdrid SHA1] [–pkgid MD5] [–tid TID] [–querybynumber HDRNUM] [–triggeredby PACKAGE_NAME] [–whatprovides CAPABILITY] [–whatrequires CAPABILITY] [–whatrecommends CAPABILITY] [–whatsuggests CAPABILITY] [–whatsupplements CAPABILITY] [–whatenhances CAPABILITY] [–whatobsoletes CAPABILITY] [–whatconflicts CAPABILITY]

query-options

General: [–changelog] [–changes] [–dupes] [-i,–info] [–last] [–qf,–queryformat QUERYFMT] [–xml]

Dependencies: [–conflicts] [–enhances] [–obsoletes] [–provides] [–recommends] [-R,–requires] [–suggests] [–supplements]

Files: [-c,–configfiles] [-d,–docfiles] [–dump] [–fileclass] [–filecolor] [–fileprovide][–filerequire] [–filecaps] [–filesbypkg] [-l,–list] [-s,–state] [–noartifact] [–noghost] [–noconfig]

Scripts and triggers: [–filetriggers] [–scripts] [–triggers,–triggerscripts]

verify-options

[–nodeps] [–nofiles] [–noscripts] [–nodigest] [–nosignature] [–nolinkto] [–nofiledigest] [–nosize] [–nouser] [–nogroup] [–nomtime] [–nomode] [–nordev] [–nocaps]

install-options

[–allfiles] [–badreloc] [–excludepath OLDPATH] [–excludedocs] [–force] [-h,–hash] [–ignoresize] [–ignorearch] [–ignoreos] [–includedocs] [–justdb] [–nodb] [–nodeps] [–nodigest] [–noplugins] [–nocaps] [–noorder] [–noverify] [–nosignature] [–noscripts] [–notriggers] [–oldpackage] [–percent] [–prefix NEWPATH] [–relocate OLDPATH=NEWPATH] [–replacefiles] [–replacepkgs] [–test]

Description

rpm is a powerful Package Manager, which can be used to build, install, query, verify, update, and erase individual software packages. A package consists of an archive of files and meta-data used to install and erase the archive files. The meta-data includes helper scripts, file attributes, and descriptive information about the package. Packages come in two varieties: binary packages, used to encapsulate software to be installed, and source packages, containing the source code and recipe necessary to produce binary packages.

One of the following basic modes must be selected: Query, Verify, Install/Upgrade/Freshen/Reinstall, Uninstall, Set Owners/Groups, Show Querytags, and Show Configuration.

General Options

These options can be used in all the different modes.

-?,  –help

Print a longer usage message than normal.

–version

Print a single line containing the version number of rpm being used.

–quiet

Print as little as possible – normally only error messages will be displayed.

-v,  –verbose

Print verbose information – normally routine progress messages will be displayed.

-vv

Print lots of ugly debugging information.

–rcfile FILELIST

Replace the list of configuration files to be read. Each of the files in the colon separated FILELIST is read sequentially by rpm for configuration information. Only the first file in the list must exist, and tildes will be expanded to the value of $HOME. The default FILELIST is /usr/lib/rpm/rpmrc:/usr/lib/rpm/redhat/rpmrc:/etc/rpmrc:~/.rpmrc.

–load FILE

Load an individual macro file.

–macros FILELIST

Replace the list of macro files to be loaded. Each of the files in the colon separated FILELIST is read sequentially by rpm for macro definitions. Only the first file in the list must exist, and tildes will be expanded to the value of $HOME. The default FILELIST is /usr/lib/rpm/macros:/usr/lib/rpm/macros.d/macros.*:/usr/lib/rpm/platform/%{_target}/macros:/usr/lib/rpm/fileattrs/*.attr:/usr/lib/rpm/redhat/macros:/etc/rpm/macros.*:/etc/rpm/macros:/etc/rpm/%{_target}/macros:~/.rpmmacros

–pipe CMD

Pipes the output of rpm to the command CMD.

–dbpath DIRECTORY

Use the database in DIRECTORY rather than the default path /var/lib/rpm

–root DIRECTORY

Use the file system tree rooted at DIRECTORY for all operations. Note that this means the database within DIRECTORY will be used for dependency checks and any scriptlet(s) (e.g. %post if installing, or %prep if building, a package) will be run after a chroot(2) to DIRECTORY.

Note that rpm assumes the environment inside the root is set up by the caller, such as any mounts needed for the operation inside the root directory.

-D,  –define=’MACRO EXPR

Defines MACRO with value EXPR.

–undefine=’MACRO

Undefines MACRO.

-E,  –eval=’EXPR

Prints macro expansion of EXPR.

More – less often needed – options can be found on the rpm-misc(8) man page.

Install and Upgrade Options

In these options, PACKAGE_FILE can be either rpm binary file or ASCII package manifest (see Package Selection Options), and may be specified as an ftp or http URL, in which case the package will be downloaded before being installed. See FTP/HTTP Options for information on rpm‘s ftp and http client support.

The general form of an rpm install command is

rpm {-i|–install} [install-options] PACKAGE_FILE …

This installs a new package.

The general form of an rpm upgrade command is

rpm {-U|–upgrade} [install-options] PACKAGE_FILE …

This upgrades or installs the package currently installed to a newer version. This is the same as install, except all other version(s) of the package are removed after the new package is installed.

rpm {-F|–freshen} [install-options] PACKAGE_FILE …

This will upgrade packages, but only ones for which an earlier version is installed.

The general form of an rpm reinstall command is

rpm {–reinstall} [install-options] PACKAGE_FILE …

This reinstalls a previously installed package.

–allfiles

Installs or upgrades all the missingok files in the package, regardless if they exist.

–badreloc

Used with –relocate, permit relocations on all file paths, not just those OLDPATH‘s included in the binary package relocation hint(s).

–excludepath OLDPATH

Don’t install files whose name begins with OLDPATH.

–excludeartifacts

Don’t install any files which are marked as artifacts, such as build-id links.

–excludedocs

Don’t install any files which are marked as documentation (which includes man pages and texinfo documents).

–force

Same as using –replacepkgs, –replacefiles, and –oldpackage.

-h,  –hash

Print 50 hash marks as the package archive is unpacked. Use with -v|–verbose for a nicer display.

–ignoresize

Don’t check mount file systems for sufficient disk space before installing this package.

–ignorearch

Allow installation or upgrading even if the architectures of the binary package and host don’t match.

–ignoreos

Allow installation or upgrading even if the operating systems of the binary package and host don’t match.

–includedocs

Install documentation files. This is the default behavior.

–justdb

Update only the database, not the filesystem.

–nodb

Update only the filesystem, not the database.

–nodigest

Don’t verify package or header digests when reading.

–nomanifest

Don’t process non-package files as manifests.

–nosignature

Don’t verify package or header signatures when reading.

–nodeps

Don’t do a dependency check before installing or upgrading a package.

–nocaps

Don’t set file capabilities.

–noorder

Don’t reorder the packages for an install. The list of packages would normally be reordered to satisfy dependencies.

–noverify

Don’t perform verify package files prior to installation.

–noplugins

Do not load and execute plugins.

–noscripts,  –nopre,  –nopost,  –nopreun,  –nopostun,  –nopretrans,  –noposttrans

Don’t execute the scriptlet of the same name. The –noscripts option is equivalent to

–nopre –nopost –nopreun –nopostun –nopretrans –noposttrans

and turns off the execution of the corresponding %pre, %post, %preun, %postun %pretrans, and %posttrans scriptlet(s).

–notriggers,  –notriggerin,  –notriggerun,  –notriggerprein,  –notriggerpostun

Don’t execute any trigger scriptlet of the named type. The –notriggers option is equivalent to

–notriggerprein –notriggerin –notriggerun –notriggerpostun

and turns off execution of the corresponding %triggerprein, %triggerin, %triggerun, and %triggerpostun scriptlet(s).

–oldpackage

Allow an upgrade to replace a newer package with an older one.

–percent

Print percentages as files are unpacked from the package archive. This is intended to make rpm easy to run from other tools.

–prefix NEWPATH

For relocatable binary packages, translate all file paths that start with the installation prefix in the package relocation hint(s) to NEWPATH.

–relocate OLDPATH=NEWPATH

For relocatable binary packages, translate all file paths that start with OLDPATH in the package relocation hint(s) to NEWPATH. This option can be used repeatedly if several OLDPATH‘s in the package are to be relocated.

–replacefiles

Install the packages even if they replace files from other, already installed, packages.

–replacepkgs

Install the packages even if some of them are already installed on this system.

–test

Do not install the package, simply check for and report potential conflicts.

Erase Options

The general form of an rpm erase command is

rpm {-e|–erase} [–allmatches] [–justdb] [–nodeps] [–noscripts] [–notriggers] [–test] PACKAGE_NAME …

The following options may also be used:

–allmatches

Remove all versions of the package which match PACKAGE_NAME. Normally an error is issued if PACKAGE_NAME matches multiple packages.

–justdb

Update only the database, not the filesystem.

–nodeps

Don’t check dependencies before uninstalling the packages.

–noscripts, –nopreun, –nopostun

Don’t execute the scriptlet of the same name. The –noscripts option during package erase is equivalent to

–nopreun –nopostun

and turns off the execution of the corresponding %preun, and %postun scriptlet(s).

–notriggers, –notriggerun, –notriggerpostun

Don’t execute any trigger scriptlet of the named type. The –notriggers option is equivalent to

–notriggerun –notriggerpostun

and turns off execution of the corresponding %triggerun, and %triggerpostun scriptlet(s).

–test

Don’t really uninstall anything, just go through the motions. Useful in conjunction with the -vv option for debugging.

Query Options

The general form of an rpm query command is

rpm {-q|–query} [select-options] [query-options]

You may specify the format that package information should be printed in. To do this, you use the

–qf|–queryformat QUERYFMT

option, followed by the QUERYFMT format string. Query formats are modified versions of the standard printf(3) formatting. The format is made up of static strings (which may include standard C character escapes for newlines, tabs, and other special characters (not including )) and printf(3) type formatters. As rpm already knows the type to print, the type specifier must be omitted however, and replaced by the name of the header tag to be printed, enclosed by {} characters. Tag names are case insensitive, and the leading RPMTAG_ portion of the tag name may be omitted as well.

Alternate output formats may be requested by following the tag with :typetag. Currently, the following types are supported:

:armor

Wrap a public key in ASCII armor.

:arraysize

Display number of elements in array tags.

:base64

Encode binary data using base64.

:date

Use strftime(3) “%c” format.

:day

Use strftime(3) “%a %b %d %Y” format.

:depflags

Format dependency comparison operator.

:deptype

Format dependency type.

:expand

Perform macro expansion.

:fflags

Format file flags.

:fstate

Format file state.

:fstatus

Format file verify status.

:hex

Format in hexadecimal.

:octal

Format in octal.

:humaniec

Human readable number (in IEC 80000). The suffix K = 1024, M = 1048576, …

:humansi

Human readable number (in SI). The suffix K = 1000, M = 1000000, …

:perms

Format file permissions.

:pgpsig

Display signature fingerprint and time.

:shescape

Escape single quotes for use in a script.

:string

Display string format. (default)

:tagname

Display tag name.

:tagnum

Display tag number.

:triggertype

Display trigger suffix.

:vflags

File verification flags.

:xml

Wrap data in simple xml markup.

For example, to print only the names of the packages queried, you could use %{NAME} as the format string. To print the packages name and distribution information in two columns, you could use %-30{NAME}%{DISTRIBUTION}. rpm will print a list of all of the tags it knows about when it is invoked with the –querytags argument.

There are three subsets of options for querying: package selection, file selection and information selection.

Package Selection Options

PACKAGE_NAME

Query installed package named PACKAGE_NAME. To specify the package more precisely the package name may be followed by the version or version and release both separated by a dash or an architecture name separated by a dot. See the output of rpm -qa or rpm -qp PACKAGE_FILE as an example.

-a, –all [SELECTOR]

Query all installed packages.

An optional SELECTOR in the form of tag=pattern can be provided to narrow the selection, for example name=”b*” to query packages whose name starts with “b”.

–dupes

List duplicated packages.

-f,  –file FILE

Query package owning installed FILE.

–filecaps

List file names with POSIX1.e capabilities.

–fileclass

List file names with their classes (libmagic classification).

–filecolor

List file names with their colors (0 for noarch, 1 for 32bit, 2 for 64 bit).

–fileprovide

List file names with their provides.

–filerequire

List file names with their requires.

-g,  –group GROUP

Query packages with the group of GROUP.

–hdrid SHA1

Query package that contains a given header identifier, i.e. the SHA1 digest of the immutable header region.

-p,  –package PACKAGE_FILE

Query an (uninstalled) package PACKAGE_FILE. The PACKAGE_FILE may be specified as an ftp or http style URL, in which case the package header will be downloaded and queried. See FTP/HTTP Options for information on rpm‘s ftp and http client support. The PACKAGE_FILE argument(s), if not a binary package, will be interpreted as an ASCII package manifest unless –nomanifest option is used. In manifests, comments are permitted, starting with a ‘#’, and each line of a package manifest file may include white space separated glob expressions, including URL’s, that will be expanded to paths that are substituted in place of the package manifest as additional PACKAGE_FILE arguments to the query.

–path PATH

Query package(s) owning PATH, whether the file is installed or not. Multiple packages may own a PATH, but the file is only owned by the package installed last.

–pkgid MD5

Query package that contains a given package identifier, i.e. the MD5 digest of the combined header and payload contents.

–querybynumber HDRNUM

Query the HDRNUMth database entry directly; this is useful only for debugging.

–specfile SPECFILE

Parse and query SPECFILE as if it were a package. Although not all the information (e.g. file lists) is available, this type of query permits rpm to be used to extract information from spec files without having to write a specfile parser.

–tid TID

Query package(s) that have a given TID transaction identifier. A unix time stamp is currently used as a transaction identifier. All package(s) installed or erased within a single transaction have a common identifier.

–triggeredby PACKAGE_NAME

Query packages that are triggered by package(s) PACKAGE_NAME.

–whatobsoletes CAPABILITY

Query all packages that obsolete CAPABILITY for proper functioning.

–whatprovides CAPABILITY

Query all packages that provide the CAPABILITY capability.

–whatrequires CAPABILITY

Query all packages that require CAPABILITY for proper functioning.

–whatconflicts CAPABILITY

Query all packages that conflict with CAPABILITY.

–whatrecommends CAPABILITY

Query all packages that recommend CAPABILITY.

–whatsuggests CAPABILITY

Query all packages that suggest CAPABILITY.

–whatsupplements CAPABILITY

Query all packages that supplement CAPABILITY.

–whatenhances CAPABILITY

Query all packages that enhance CAPABILITY.

Package Query Options

–changelog

Display change information for the package.

–changes

Display change information for the package with full time stamps.

–conflicts

List capabilities this package conflicts with.

–dump

Dump file information as follows (implies -l):

path size mtime digest mode owner group isconfig isdoc rdev symlink
–enhances

List capabilities enhanced by package(s)

–filesbypkg

List all the files in each selected package.

–filetriggers

List filetrigger scriptlets from package(s).

-i,  –info

Display package information, including name, version, and description. This uses the –queryformat if one was specified.

–last

Orders the package listing by install time such that the latest packages are at the top.

-l,  –list

List files in package.

–obsoletes

List packages this package obsoletes.

–provides

List capabilities this package provides.

–recommends

List capabilities recommended by package(s)

-R,  –requires

List capabilities on which this package depends.

–suggests

List capabilities suggested by package(s)

–supplements

List capabilities supplemented by package(s)

–scripts

List the package specific scriptlet(s) that are used as part of the installation and uninstallation processes.

-s,  –state

Display the states of files in the package (implies -l). The state of each file is one of normal, not installed, or replaced.

–triggers,  –triggerscripts

Display the trigger scripts, if any, which are contained in the package. –xml Format package headers as XML.

File Selection Options

-A,  –artifactfiles

Only include artifact files (implies -l).

-c,  –configfiles

Only include configuration files (implies -l).

-d,  –docfiles

Only include documentation files (implies -l).

-L,  –licensefiles

Only include license files (implies -l).

–noartifact

Exclude artifact files.

–noconfig

Exclude config files.

–noghost

Exclude ghost files.

Verify Options

The general form of an rpm verify command is

rpm {-V|–verify} [select-options] [verify-options]

Verifying a package compares information about the installed files in the package with information about the files taken from the package metadata stored in the rpm database. Among other things, verifying compares the size, digest, permissions, type, owner and group of each file. Any discrepancies are displayed. Files that were not installed from the package, for example, documentation files excluded on installation using the “–excludedocs” option, will be silently ignored.

The package and file selection options are the same as for package querying (including package manifest files as arguments). Other options unique to verify mode are:

–nodeps

Don’t verify dependencies of packages.

–nodigest

Don’t verify package or header digests when reading.

–nofiles

Don’t verify any attributes of package files.

–noscripts

Don’t execute the %verifyscript scriptlet (if any).

–nosignature

Don’t verify package or header signatures when reading.

–nolinkto
–nofiledigest (formerly –nomd5)
–nosize
–nouser
–nogroup
–nomtime
–nomode
–nordev

Don’t verify the corresponding file attribute.

–nocaps

Don’t verify file capabilities.

The format of the output is a string of 9 characters, a possible attribute marker:

c %config configuration file.
d %doc documentation file.
g %ghost file (i.e. the file contents are not included in the package payload).
l %license license file.
r %readme readme file.

from the package header, followed by the file name. Each of the 9 characters denotes the result of a comparison of attribute(s) of the file to the value of those attribute(s) recorded in the database. A single “.” (period) means the test passed, while a single “?” (question mark) indicates the test could not be performed (e.g. file permissions prevent reading). Otherwise, the (mnemonically emBoldened) character denotes failure of the corresponding –verify test:

S file Size differs
M Mode differs (includes permissions and file type)
5 digest (formerly MD5 sum) differs
D Device major/minor number mismatch
L readLink(2) path mismatch
U User ownership differs
G Group ownership differs
T mTime differs
P caPabilities differ

Miscellaneous Commands

rpm –showrc

shows the values rpm will use for all of the options are currently set in rpmrc and macros configuration file(s).

rpm –setperms | –setugids | –setcaps PACKAGE_NAME

obsolete aliases for –restore

rpm –restore [select-options]

The option restores file metadata such as timestamp, owner, group, permissions and capabilities of files in packages.

FTP/HTTP Options

rpm can act as an FTP and/or HTTP client so that packages can be queried or installed from the internet. Package files for install, upgrade, and query operations may be specified as an ftp or http style URL:

http://HOST[:PORT]/path/to/package.rpm

ftp://[USER:PASSWORD]@HOST[:PORT]/path/to/package.rpm

If both the user and password are omitted, anonymous ftp is used.

rpm allows the following options to be used with ftp URLs:

rpm allows the following options to be used with

http and ftp URLs:

–httpproxy HOST

The host HOST will be used as a proxy server for all http and ftp transfers. This option may also be specified by configuring the macro %_httpproxy.

–httpport PORT

The TCP PORT number to use for the http connection on the proxy http server instead of the default port. This option may also be specified by configuring the macro %_httpport.

Legacy Issues

Executing rpmbuild

The build modes of rpm are now resident in the /usr/bin/rpmbuild executable. Install the package containing rpmbuild (usually rpm-build) and see rpmbuild(8) for documentation of all the rpm build modes.

Files

rpmrc Configuration

/usr/lib/rpm/rpmrc
/usr/lib/rpm/<vendor>/rpmrc
/etc/rpmrc
~/.rpmrc

Macro Configuration

/usr/lib/rpm/macros
/usr/lib/rpm/<vendor>/macros
/etc/rpm/macros
~/.rpmmacros

Database

/var/lib/rpm/Basenames
/var/lib/rpm/Conflictname
/var/lib/rpm/Dirnames
/var/lib/rpm/Group
/var/lib/rpm/Installtid
/var/lib/rpm/Name
/var/lib/rpm/Obsoletename
/var/lib/rpm/Packages
/var/lib/rpm/Providename
/var/lib/rpm/Requirename
/var/lib/rpm/Sha1header
/var/lib/rpm/Sigmd5
/var/lib/rpm/Triggername

Temporary

/var/tmp/rpm*

See Also

rpm-misc(8),
popt(3),
rpm2cpio(8),
rpmbuild(8),
rpmdb(8),
rpmkeys(8),
rpmsign(8),
rpmspec(8),

rpm –help – as rpm supports customizing the options via popt aliases it’s impossible to guarantee that what’s described in the manual matches what’s available.

http://www.rpm.org/ <URL:http://www.rpm.org/>

Referenced By

applydeltarpm(8), build(1), compat_digest.plug.1rrp(1), cpack-generators(7), daemon(7), debbuild(8), demofiles.plug.1rrp(1), demo.plug.1rrp(1), exclude_file.plug.1rrp(1), fedora-remove-old-gpg-keys(8), file2pacDep.plug.1rrp(1), mold(1), nodoc.plug.1rrp(1), rpm2archive(8), rpm2cpio(8), rpmbuild(8), rpmconf(8), rpmdb(8), rpmdeps(8), rpmfile(1), rpminspect(1), rpmkeys(8), rpmlua(8), rpm-ostree(1), rpmpeek(1), rpm-plugin-ima(8), rpm-plugin-prioreset(8), rpm-plugins(8), rpm-plugin-selinux(8), rpm-plugin-syslog(8), rpm-plugin-systemd-inhibit(8), rpmreaper(1), rpmrebuild(1), rpmrebuild_plugins(1), rpm_selinux(8), rpmsign(8), rpmspec(8), set_tag.plug.1rrp(1), uniq.plug.1rrp(1), un_prelink.plug.1rrp(1), unset_tag.plug.1rrp(1).

09 June 2002

Менеджер пакетов RPM (RPM) — это мощная система управления пакетами, используемая Red Hat Linux и ее производными, такими как CentOS и Fedora. RPM также относится к команде rpm и формату файла .rpm . Пакет RPM состоит из архива файлов и метаданных, включая такую информацию, как зависимости и место установки.

В этом руководстве мы поговорим о том, как использовать команду rpm для установки, обновления, удаления, проверки, запроса и иного управления пакетами RPM.

Установка, обновление и удаление пакетов RPM

Обычно для установки нового пакета в дистрибутивах на основе Red Hat вы используете команды yum или dnf , которые могут разрешить и установить все зависимости пакетов.

Вы всегда должны предпочитать использовать yum или dnf rpm при установке, обновлении и удалении пакетов.

Перед установкой пакета RPM вы должны сначала загрузить пакет в свою систему с помощью браузера или инструментов командной строки, таких как curl или wget .

При установке пакетов RPM убедитесь, что они созданы для вашей системной архитектуры и вашей версии CentOS . Будьте особенно осторожны при замене или обновлении важных системных пакетов, таких как glibc, systemd или других служб и библиотек, которые необходимы для правильного функционирования вашей системы.

Только root или пользователи с привилегиями sudo могут устанавливать или удалять пакеты RPM.

Чтобы установить пакет RPM с rpm , используйте параметр -i , за которым следует имя пакета:

sudo rpm -ivh package.rpm

Параметр -v указывает rpm показывать подробный вывод, а параметр -h показывает индикатор выполнения, отмеченный хешем.

Вы можете пропустить загрузку и указать URL-адрес RPM-пакета команде rpm :

sudo rpm -ivh https://example.com/package.rpm

Чтобы обновить пакет RPM, используйте параметр -U . Если пакет не установлен, он будет установлен:

sudo rpm -Uvh package.rpm

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

Чтобы установить пакет RPM без установки всех необходимых зависимостей в системе, используйте параметр --nodeps :

sudo rpm -Uvh --nodeps package.rpm

Чтобы удалить (стереть) пакет RPM, используйте параметр -e :

sudo rpm -e package.rpm

Параметр --nodeps также полезен, когда вы хотите удалить пакет, не удаляя его зависимости:

sudo rpm -evh --nodeps package.rpm

Параметр --test указывает rpm запускать команду установки или удаления, фактически ничего не делая. Он только показывает, будет ли команда работать или нет:

sudo rpm -Uvh --test package.rpm

Запрос пакетов RPM

Параметр -q указывает команде rpm выполнить запрос.

Чтобы запросить (найти), установлен ли определенный пакет, передайте имя пакета команде rpm -q . Следующая команда покажет вам, установлен ли в системе пакет OpenJDK 11 :

sudo rpm -q java-11-openjdk-devel

Если пакет установлен, вы увидите что-то вроде этого:

java-11-openjdk-devel-11.0.4.11-0.el8_0.x86_64

Передайте -i чтобы получить больше информации о запрошенном пакете:

sudo rpm -qi java-11-openjdk-devel

Чтобы получить список всех файлов в установленном пакете RPM:

sudo rpm -ql package

Если вы хотите узнать, к какому установленному пакету принадлежит конкретный файл, введите:

sudo rpm -qf /path/to/file

Чтобы получить список всех установленных пакетов в вашей системе, используйте параметр -a :

sudo rpm -qa

Проверка пакетов RPM

При проверке пакета команда rpm проверяет, существует ли каждый файл, установленный пакетом, в системе, дайджест файла, право собственности, разрешения и т. Д.

Чтобы проверить установленный пакет, используйте параметр -V . Например, чтобы проверить пакет openldap, вы должны запустить:

sudo rpm -V openldap-2.4.46-9.el8.x86_64

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

Например, следующий результат показывает, что mTime файла был изменен («T»):

.......T.  c /etc/openldap/ldap.conf

Обратитесь к странице руководства RMP о том, что означает каждый символ.

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

sudo rpm -Va

Выводы

rpm — это низкоуровневый инструмент командной строки для установки, запроса, проверки, обновления и удаления пакетов RMP. При установке пакетов RPM следует предпочесть использование yum или dnf поскольку они автоматически разрешают все зависимости за вас.

Для получения дополнительных сведений обо всех доступных параметрах команд введите в терминале man rpm или посетите веб-сайт RPM.org .

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Introduction to rpm command

RPM (Red Hat Package Manager) is an open-source package management tool in RHEL based systems such as RHEL, CentOS, and Fedora. You can install, update, remove, or verify RPM packages with this tool. RPM only works with .rpm files, so you need to have a .rpm file in your system. The .rpm file stores the installation packages of RPM-based Linux distribution.

ALSO READ: lvremove command examples in Linux [Cheat Sheet]

Different examples to use rpm command

Since you will need to have .rpm files, you can download them from here. You can also use the dnf command to download the rpm package using this command.

$ sudo dnf install package_name --downloadonly --downloaddir=DIR_PATH

You can find our detailed article on dnf at 25+ DNF command practical examples in Linux.

In this article, we will learn how to use rpm commands to manage the RPM packages on the system.

1. rpm command to install an RPM package

You can use -i or --install option to install an RPM package on your system. The RPM package must be available in your workstation.

$ sudo rpm -i rpm_filename

OR

$ sudo rpm --install rpm_filename

Sample Output:

In the following example, we are installing single rpm. If this rpm has any dependency over other rpm then that must be manually handled by downloading that rpm and installing them both together or else the installation will fail with dependency error.

rpm command to install rpm package

Here,

  • -v: To display the verbose output
  • -h: To print the hash symbol progress bar

2. Check an installed RPM package with rpm command

You can use -q option to check whether an RPM package is installed in your system or not.

$ sudo rpm -q package_name

Sample Output:

ALSO READ: How to PROPERLY apply chmod recursively? [SOLVED]

check an installed rpm package with rpm commnd

As you can see, iotop is installed in our system. The package name that you provide may be incorrect, so you can also try the following command

$ sudo rpm -qa | grep package_name

This command can also help you check if the provided package is installed or not.

3. rpm command to upgrade an RPM package

-U or --upgrade option allows you to upgrade any RPM package to the latest version. This is the same as install, except all other version(s) of the package are removed after the new package is installed.

$ sudo rpm -U rpm_filename

OR

$ sudo rpm --upgrade rpm_filename

Sample Output:

rpm command to update package

4. Remove an RPM package with rpm command

You can remove an installed package from your system with -e or --erase option.

$ sudo rpm -e package_name

OR

$ sudo rpm --erase package_name

Sample Output:

rpm command to remove installed package

In some cases, this command fails to remove the package from the system due to unresolved dependencies. So, the best way to remove RPM packages and their dependencies is by using yum or dnf command.

rpm command to remove rpm package

5. Check dependencies of an RPM package using rpm command

This command allows you to check the dependencies of an RPM package on the system.

$ sudo rpm -qpR rpm_filename

Sample Output:

rpm command to check dependencies

Here,

  • -q: To query an RPM package
  • -p: To query an uninstalled package
  • -R: To list capabilities on which the package depends

ALSO READ: Rmmod Command in Linux

6. rpm command to print the information of an RPM package

With the help of this command, you can get the information of an RPM package on your system.

$ sudo rpm -qip rpm_filename

Sample Output:

rpm command to print information of rpm package

7. rpm command to get information of an installed package

Sometimes, you may want to get the information of any installed packages on the system. In that case, you can use this command.

$ sudo rpm -qi package_name

Sample Output:

rpm command to get information of installed package

8. Install an RPM package without dependencies with rpm command

--nodeps option allows you to install an RPM package without dependencies. It ignores the dependencies errors and forcefully installs an RPM package. Some programs may not work until you install the required dependencies.

$ sudo rpm -ivh --nodeps rpm_filename

Sample Output:

rpm command to install pckage without dependencies

IMPORTANT NOTE:

This is strictly not recommended as this can potentially break your system for more complex rpms such as kernel, gcc etc.

9. rpm command to list all files of an installed RPM package

You can use this command to list all the files of an installed RPM package.

$ sudo rpm -ql package_name

Sample Output:

rpm command to list all files of installed package

10. Remove an RPM package without dependencies using rpm command

You can also use --nodeps option with the erase command to uninstall an RPM package without checking dependencies. It ignores all the dependencies errors and forcefully removes the package.

$ sudo rpm -ev --nodeps package_name

Sample Output:

ALSO READ: 10+ bzip2 command examples in Linux [Cheat Sheet]

rpm command to remove package without dependencies

Now, let’s check if the package is removed.

rpm nodeps command

The package is removed, but the dependencies are still present in the system.

IMPORTANT NOTE:

This is strictly not recommended as this can potentially break your system for more complex rpms such as kernel, gcc.

11. List all installed RPM packages with rpm command

To view the list of all installed RPM packages in your system, you can use this command.

$ sudo rpm -qa

Sample Output:

rpm command to list all installed packages

12. List only recently installed RPM packages with rpm command

You can use this command to view the list of recently installed RPM packages on your system.

$ sudo rpm -qa --last

Sample Output:

rpm command to list recently installed packages

13. Verify an RPM package with rpm command

-V or --verify option allows you to verify an RPM package against the rpm database. It compares the installed package information with package metadata stored in the rpm database. It also compares the size, digest, permissions, type, owner, and group of each file.

$ sudo rpm -Vp rpm_filename

OR

$ sudo rpm --verify -p rpm_filename

Sample Output:

rpm command to verify rpm paackage

14. rpm command to verify all RPM packages

You can use this command to verify all RPM packages.

$ sudo rpm -Va

Sample Output:

rpm command to verify all packages

ALSO READ: 30+ awk examples for beginners / awk command tutorial in Linux/Unix

15. Query a file with rpm command

You can also query a file and find to which RPM package it belongs.

$ sudo rpm -qf [file_name or file_path]

Sample Output:

rpm command to query file

16. rpm command to check signatures in an RPM package

--checksig option checks all the digests and signatures contained in an RPM package file. It is a useful command to verify the integrity and origin of the package is ok.

$ sudo rpm --checksig rpm_filename

Sample Output:

rpm command to check signatures

17. Import an RPM GPG key with rpm command

You can import a GPG key with --import option. RPM GPG key files are located in the /etc/pki/rpm-gpg directory.

$ sudo rpm --import RPM-GPG-KEY_File

Sample Output:

rpm command to import gpg key

You can list all imported GPG keys with the following command.

$ sudo rpm -qa gpg-pubkey*

Sample Output:

rpm command to list all imported gpg keys

Conclusion

This article shows you the practical examples of rpm command on RPM-based Linux distribution. rpm is a powerful package manager tool to install, remove, update, query, and verify RPM packages. We hope that you can now manage the RPM packages using rpm command. If you have any questions, you can use the comment section below.

What’s Next

Rpmbuild | Create rpm package | Build rpm from source code

Further Reading

man page for rpm command

ALSO READ: 10+ cut command examples in Linux [Cheat Sheet]

RPM имеет пять основных режимов работы (не считая создания пакета): установка, удаление, обновление, анализ и проверка. Этот раздел содержит описание каждого режима. Чтобы получить полное описание всех подробностей и параметров, попробуйте выполнить rpm –help или обратиться к разделу 15.5 Дополнительные ресурсы.

15.2.1. Поиск RPM-пакетов

Прежде чем воспользоваться пакетами RPM, вы должны знать, где их найти. Поисковые машины в Интернете знают о множество хранилищ RPM, но если вы ищете пакеты RPM, созданные компанией Red Hat, обратитесь к следующим источникам:

  • Компакт-диски Red Hat Enterprise Linux

  • Страница обновлений Red Hat, расположенная по адресу https://www.redhat.com/en/services/support.

  • Сеть Red Hat Network — Подробнее о ней вы узнаете в главе 17 Red Hat Network

15.2.2. Установка

Обычно файлы, содержащие пакеты RPM, имеют имена вроде foo-1.0-1.i386.rpm. Имя файла включает название пакета (foo), версию (1.0), выпуск (1) и архитектуру (i386). Чтобы установить пакет, войдите в систему под именем root и введите в приглашении оболочки следующую команду:

rpm -Uvh foo-1.0-1.i386.rpm

Если установка пройдёт успешно, на экране появится следующее:

Preparing...                ########################################### [100%]
   1:foo                    ########################################### [100%]

Как вы видите, RPM выводит имя пакета, а затем, по мере установки пакета, последовательность символов «решётка», отражающую процесс установки.

При установке или обновлении пакета автоматически проверяется подпись пакета. Эта подпись подтверждает то, что пакет был подписан разработчиком и не был изменён. Например, если при проверке подписи происходит ошибка, вы получите примерно следующее сообщение:

error: V3 DSA signature: BAD, key ID 0352860f

Если это новая подпись только для заголовка появляется такое сообщение:

error: Header V3 DSA signature: BAD, key ID 0352860f

Если у вас не установлен ключ, подходящий для проверки подписи, сообщение об ошибке содержит слово NOKEY, например:

warning: V3 DSA signature: NOKEY, key ID 0352860f

За дополнительными сведениями о проверке подписи пакета обратитесь к разделу 15.3 Проверка подписи пакета.

Предупреждение Предупреждение
 

Если вы устанавливаете пакет ядра, вместо этой команды следует использовать rpm -ivh. За подробностями обратитесь к главе 37 Обновление ядра вручную.

Установка пакетов должна выполняться просто, но иногда вы можете встретить ошибки:

15.2.2.1. Пакет уже установлен

Если пакет той же версии уже установлен, вы увидите:

Preparing...                ########################################### [100%]
package foo-1.0-1 is already installed

Если версия пакета, который вы пытаетесь установить, совпадает с версией уже установленного, но вы, тем не менее, хотите установить пакет, вы можете указать параметр –replacepkgs и RPM проигнорирует эту ошибку:

rpm -ivh --replacepkgs foo-1.0-1.i386.rpm

Этот параметр полезен, если файлы, установленные из пакета RPM, были удалены или вы не хотите, чтобы были установлены оригинальные файлы конфигурации RPM.

15.2.2.2. Конфликтующие файлы

Если вы пытаетесь установить пакет, который содержит файл, установленный другим пакетом или более ранней версий того же пакета, на экране появляется сообщение:

Preparing...                ########################################### [100%]
file /usr/bin/foo from install of foo-1.0-1 conflicts with file from package bar-2.0.20

Чтобы RPM игнорировал эту ошибку, укажите параметр –replacefiles:

rpm -ivh --replacefiles foo-1.0-1.i386.rpm

15.2.2.3. Нарушенная зависимость

Пакеты RPM могут по сути зависеть от других пакетов, что означает, что для их нормальной работы необходимо установить другие пакеты. Если вы попытаетесь установить пакет с неразрешёнными зависимостями, вы увидите примерно следующее:

error: Failed dependencies:
        bar.so.2 is needed by foo-1.0-1
    Suggested resolutions:
        bar-2.0.20-3.i386.rpm

Если вы устанавливаете пакет с набора компакт-дисков Red Hat Enterprise Linux CD-ROM, обычно вам предлагается название пакета, необходимого для разрешения зависимости. Найдите предлагаемый пакет(ы) на компакт-дисках Red Hat Enterprise Linux или на FTP-сайте Red Hat (или зеркале) и добавьте его в команду:

rpm -ivh foo-1.0-1.i386.rpm bar-2.0.20-3.i386.rpm

Если установка обоих пакетов прходит успешно, на экран выводится примерно следующее:

Preparing...                ########################################### [100%]
   1:foo                    ########################################### [ 50%]
   2:bar                    ########################################### [100%]

Если система не предлагает пакет для разрешения зависимости, вы можете попробовать параметр –redhatprovides, чтобы определить, какой пакет содержит требуемый файл. Для использования этого параметра вам потребуется установить пакет rpmdb-redhat.

rpm -q --redhatprovides bar.so.2

Если пакет, содержащий bar.so.2, есть в установленной базе данных из пакета rpmdb-redhat, вы увидите название этого пакета:

bar-2.0.20-3.i386.rpm

Чтобы выполнить установку, нарушив зависимости (что не рекомендуется делать, так как пакет может работать некорректно), воспользуйтесь параметром –nodeps.

15.2.3. Удаление

Удаление пакета выполняется также просто, как и его установка. Введите в приглашении оболочки следующую команду:

rpm -e foo
Замечание Замечание
 

Обратите внимание, здесь используется имя пакета foo, а не имя файла оригинального пакета foo-1.0-1.i386.rpm. Чтобы удалить пакет, замените foo действительным именем первоначального пакета.

Вы можете столкнуться с нарушением зависимости при удалении пакета, если другой установленный пакет зависит от пакета, который вы пытаетесь удалить. Например:

error: Failed dependencies:
        foo is needed by (installed) bar-2.0.20-3.i386.rpm

Чтобы заставить RPM игнорировать эту ошибку и удалить пакет, что может привести к поломке пакета, зависящего от него, используйте параметр –nodeps.

15.2.4. Обновление

Обновление пакета похоже на его установку. Введите в приглашении оболочки следующую команду:

rpm -Uvh foo-2.0-1.i386.rpm

В процессе обновления пакета RPM автоматически удаляет все старые версии пакета foo. В действительности, вы можете всегда использовать параметр -U для установки пакетов, так как он работает, даже если предыдущая версия пакета не установлена.

Подсказка Подсказка
 

Не стоит использовать параметр -U для установки пакетов ядра, так как при этом RPM заменит предыдущий пакет ядра. Это не влияет на работающую систему, но если после следующей перезагрузки запустить новое ядро не удастся, никакого другого ядра для загрузки вместо него не будет.

Параметр -i добавляет ядро в меню загрузчика GRUB (/etc/grub.conf). Подобным образом, при удалении старого, ненужного ядра, запись этого ядра удаляется из GRUB.

Так как RPM выполняет умное обновление пакетов с файлами конфигурации, вам может встретиться подобное сообщение:

saving /etc/foo.conf as /etc/foo.conf.rpmsave

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

Обновление в самом деле представляет собой комбинацию удаления и установки, поэтому во время обновления RPM вы можете встретить ошибки и удаления, и установки, плюс ещё одну. Если RPM считает, что вы пытаетесь обновить пакет с более старой версией, он сообщает примерно следующее:

package foo-2.0-1 (which is newer than foo-1.0-1) is already installed

Чтобы, несмотря на это, принудительно обновить пакет, укажите параметр –oldpackage:

rpm -Uvh --oldpackage foo-1.0-1.i386.rpm

15.2.5. Освежение

Освежение пакета похоже на его обновление. Введите в приглашении оболочки следующую команду:

rpm -Fvh foo-1.2-1.i386.rpm

Получив указание освежить пакет, RPM сравнивает версию пакетов, заданных в командной строке с версией пакетов, установленных в системе. Если в параметрах RPM указан пакет с версией новее установленного пакета, он обновляется до более новой версии. Однако, указание RPM освежить версию не будет работать, если пакет с таким именем не был установлен ранее. Этим данным параметр и отличается от параметра обновления, так как при обновлении пакеты устанавливаются вне зависимости от того, была ли установлена старая верия пакета.

RPM может выполнить эту операцию как для одного пакета, так и для групп пакетов. Если вы только что загрузили много разнообразных пакетов и хотите обновить только установленные в системе, «освежение» пакетов — именно то, что вам нужно. Если вы освежаете пакеты, перед использованием RPM вы можете не удалять ненужные пакеты из загруженной группы пакетов.

В этом случае выполните следующую команду:

rpm -Fvh *.rpm

RPM автоматически обновит только уже установленные пакеты.

15.2.6. Анализ

Чтобы обратиться к базе данных установленных пакетов, используйте команду rpm -q. Команда rpm -q foo выводит название пакета, версию и номер выпуска установленного пакета foo:

foo-2.0-1
Замечание Замечание
 

Чтобы запросить информацию о пакете, замените foo действительным именем пакета.

Вместо указания имени пакета используйте следующие параметры команды -q для указания запрашиваемого пакета (ов). Эти параметры называются Параметрами выбора пакета.

  • -a запрашивает все установленные пакеты.

  • -f <file> запрашивает пакет, к которому относится файл <file>. Указывая файл, вы должны определить полный путь к файлу (например, /bin/ls).

  • -p <packagefile> запрашивает пакет <packagefile>.

Указать параметры запроса можно разными способами. Следующие параметры определяют тип искомой информации. Они называются Параметрами запроса информации.

  • -i отображает информацию о пакете, включая имя, описание, выпуск, размер, дату сборки, дату установки, производителя и другую разнообразную информацию.

  • -l выводит список файлов, содержащихся в пакете.

  • -s выводит состояние всех файлов в пакете.

  • -d выводит список файлов, помеченных как документация (страницы man, info, файлы README, и т.д.).

  • -c выводит список файлов, помеченных как файлы конфигурации. Таковыми считаются файлы, изменяемые вами после установки при настройке пакета в вашей системе (например, sendmail.cf, passwd, inittab и т.д.).

Добавьте для параметров, выводящих списки файлов, команду -v и вы получите списки в знакомом формате ls -l.

15.2.7. Проверка

При проверке пакета информация о файлах, установленных из пакета, сравнивается с информацией из оригинального пакета. Помимо прочего, при такой проверке проверяется размер, сумма MD5, разрешения, тип, владелец и группа владельца каждого файла.

Проверку пакета выполняет команда rpm -V. Вы можете указать пакет, который хотите проверить, используя любой из перечисленных параметров выбора пакета. Простым примером проверки является команда rpm -V foo, которая проверяет, что все файлы пакета foo находятся там, куда они были изначально установлены. Например:

  • Чтобы проверить пакет, содержащий конкретный файл, выполните:

    rpm -Vf /usr/bin/vim
  • Чтобы проверить ВСЕ установленные пакеты:

    rpm -Va
  • Чтобы сравнить установленный пакет с файлом RPM-пакета:

    rpm -Vp foo-1.0-1.i386.rpm

    Эта команда может быть полезна, если вы сомневаетесь в целостности баз данных RPM.

Если проверка проходит успешно, никакие сообщения на экран не выводятся. В случае обнаружения каких-либо нарушений, вы увидите сообщения об этом. Для каждого несоответствия на экран будет выведена строка из восьми символов ( c обозначает файл конфигурации), а затем имя файла. Каждый из восьми символов обозначает результат сравнения одного атрибута файла со значением атрибута, записанного в базе данных RPM. Единственная точка (.) означает, что тест пройден. Следующие символы обозначают ошибки при выполнении определённых проверок:

  • 5 — контрольная сумма MD5

  • S — размер

  • L — символическая ссылка

  • T — дата изменения файла

  • D — устройство

  • U — пользователь

  • G — группа

  • M — режим (включая разрешения и тип файла)

  • ? — файл не удалось прочитать

Если вы увидели такие сообщения, вы должны решить, будете ли вы удалять или переустанавливать пакет, или исправлять проблему другим способом.

Поделиться с друзьями

Добавить комментарий