RPM(8) | System Manager's Manual | RPM(8) |
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 - это мощный Менеджер Пакетов, который может быть использован для сборки, установки, запроса, проверки, обновления и удаления отдельных программных пакетов. Пакет содержит архив с файлами и метаданные, используемые для установки и удаления файлов архива. Метаданные включают сценарии, атрибуты файлов и информацию с описанием пакета. Пакеты бывают двух типов: двоичные пакеты, используемые для объединения устанавливаемых программ, и пакеты с исходными кодами, включающие исходные коды и описание способа формирования двоичного пакета.
Необходимо указать один из следующих основных режимов работы: Запрос, Проверка, Проверка подписи, Установка/Обновление/Освежение, Удаление, Инициализация Базы данных, Перестройка Базы данных, Повторная подпись, Добавление подписи, Задание Владельцев/Групп, Отображение тегов запроса и Отображение конфигурации.
Эти опции могут быть использованы во всех режимах.
Общая форма команды установки 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.
--nopre --nopost --nopreun --nopostun
и выключает исполнение соответствующих %pre, %post, %preun и %postun скриптлетов.
Не выполнять ни какие триггерные скриптлеты с указанным именем. Опция --notriggers эквивалентна
--notriggerin --notriggerun --notriggerpostun
и выключает исполнение соответствующих %triggerin, %triggerun и %triggerpostun скриптлетов.
Общая форма команды удаления rpm приведена ниже
rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_NAME ...
Следующие опции могут быть также использованы:
--nopreun --nopostun
и выключает исполнение соответствующих скриптлетов %preun и %postun.
--notriggerun --notriggerpostun
и выключает исполнение соответствующих %triggerun и %triggerpostun скриптлетов.
Общая форма команды запроса rpm приведена ниже
rpm {-q|--query} [select-options] [query-options]
Существует возможность задать формат вывода информации о пакете. Для этого необходимо использовать параметр
--qf|--queryformat QUERYFMT
вслед за которым указывается строка формата QUERYFMT. Форматирование запроса - это измененная версия стандартного механизма printf(3). Форматирование формируется из статических строк (которые могут включать стандартные для языка C escape-последовательности для перевода строки, табуляции и других спец. символов) и меток форматирования printf(3). Т.к. rpm заранее знает тип выводимой информации, указатель формата может быть опущен и заменен на имя выводимого тега заголовка, заключенного в фигурные скобки {}. Имена тегов не чувствительны к регистру и префикс RPMTAG_ в имени тега можно опускать.
Альтернативные форматы вывода могут быть заданы при помощи задания типа вывода :typetag после имени тега. В данный момент поддерживаются следующие типы:
Например, для вывода только имени пакета при запросе, вы можете использовать строку формата %{NAME}. Для вывода имени пакетов и информации о дистрибутиве в две колонки вы можете использовать %-30{NAME}%{DISTRIBUTION}. Команда rpm отобразит спиков всех тегов, с которыми она может работать при ее вызове с параметром --querytags.
Существуют два набора параметров для выполнения запросов: для выбора пакетов и для указания информации.
path size mtime md5sum mode owner group isconfig isdoc rdev symlink
Эта опция должна быть использована совместно с одной из -l, -c, -d.
Общая форма команды проверки rpm приведена ниже
rpm {-V|--verify} [опции-выбора] [опции-проверки]
Операция проверки пакета сравнивает информацию о файлах установленных из пакета с информацией о них из метаданных пакета, хранимых в базе данных rpm. Среди прочего при проверке сравниваются размер, MD5 сумма, права доступа тип, владельца и группу каждого файла. Любые расхождения будут отображены. Файлы, которые не были установлены вместе с пакетом, например, файлы документации, исключенные при помощи опции "--excludedocs", будут проигнорированы без предупреждения.
Опции выбора пакетов являются аналогичными запросу пакетов (включая файлы манифеста пакета в качестве аргумента). Опции, уникальные для режима проверки, приведены ниже:
Формат вывода представляет собой строку из 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, rpm должен быть настроен на запуск GPG и иметь возможность находить хранилище ключей с требуемыми ключами. По умолчанию rpm использует те же соглашения, что и GPG для обнаружения хранилища ключей, а именно переменную среды $GNUPGHOME. Если ваше хранилище ключей располагается не там, где его ожидает найти GPG, вам потребуется определить в макросе %_gpg_path расположение хранилища ключей GPG.
Для совместимости со старыми версиями GPG, PGP и rpm следует настраивать только подпись пакетов V3 OpenPGP. Могут быть использованы алгоритмы проверки DSA и RSA, хотя предпочитается DSA.
Если вам требуется подписывать собственные пакеты, вам также потребуется создать собственную пару из публичного и приватного ключа (см. руководство по GPG). Вам также потребуется настроить rpm макрос
Например, для использования 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 для перестройки индексов базы данных на основании заголовков установленных пакетов.
Команда
rpm --showrc
показывает значения, которые rpm будет использовать для всех опций, установленные в конфигурационных файлах rpmrc и macros.
rpm может выступать в качестве клиента FTP и/или HTTP, таким образом пакеты могут быть опрошены или установлены из Интернет. Пакеты для операций установки, обновления или запроса могут быть указаны в виде адреса ftp или http URL:
ftp://USER:PASSWORD@HOST:PORT/path/to/package.rpm
Если параметр :PASSWORD будет опущен, пароль будет запрошен (один раз для пары пользователь/узел). Если опущены оба параметра (user и password), будет выполнено анонимное подключение ftp. Во всех случаях используется пассивный (PASV) режим передачи файлов ftp.
rpm допускает следующие опции для адресов ftp URL:
rpm допускает следующие опции для адресов http URL:
Режимы сборки 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
/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>
25 февраля 2006 | Инвента |