Полезная информация Билеты киев рахов http://anytrain.com.ua.

Next Up Previous Contents Index

8.2 Использование RPM

Использование RPM

В RPM есть пять основных режимов работы (не считая построения пакетов): инсталяция, деинсталяция, upgrade, запрошивание и диагностирование. В этом разделе содержатся обзоры всех этих режимов. Для детальной информации и информации об опциях запустите rpm --help, и посмотрите man-страницу по rpm, а также (упоминавшуюся ранее) книгу по RPM.

8.2.1 Инсталяция

Инсталяция

Файлы, представляющие RPM-пакеты обычно называются так: foo-1.0-1.i386.rpm, где название пакета это -- (foo), версия пакета -- (1.0), выпуск -- (1) и архитектура -- (i386). Установка пакета производится следующей командой:

$ rpm -ivh foo-1.0-1.i386.rpm
foo                       ####################################

Как вы можете видеть, RPM выводит на экран имя пакета (которое не обязательно совпадает с названием файла, название файла, например, может быть 1.rpm), и затем печает символы ``#'', отображающие процесс успешной установки пакета (по мере установки отдельных компонент пакета).

Инсталяция пакетов проста, но вы можете получить сообщения об ошибках:

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

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

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

$ rpm -ivh foo-1.0-1.i386.rpm
foo                     package foo-1.0-1 is already installed
error: foo-1.0-1.i386.rpm cannot be installed

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

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

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

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

# rpm -ivh foo-1.0-1.i386.rpm
foo           /usr/bin/foo conflicts with file from bar-1.0-1
error: foo-1.0-1.i386.rpm cannot be installed

Чтобы RPM игнорировал эту ошибку, используйте --replacefiles в командной строке.

8.2.1.3 Неразрешенные зависимости

Неразрешенные зависимости

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

$ rpm -ivh bar-1.0-1.i386.rpm 
failed dependencies:
        foo is needed by bar-1.0-1

Для решения этой проблемы вам надо установить требуемые пакеты. Если вы все равно хотите установить пакет без установки требуемых (что является плохим решением, так как пакет скорее всего работать не будет), используйте опцию --nodeps в командной строке.

8.2.2 Деинсталяция

Деинсталяция

Деинсталяция пакета так же проста, как его инсталяция:

$ rpm -e foo

Заметьте, что мы использовали название пакета ``foo'', а не название файла пакета ``foo-1.0-1.i386.rpm''.

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

$ rpm -e foo
removing these packages would break dependencies:
        foo is needed by bar-1.0-1

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

8.2.3 Upgrade пакета

Upgrade пакета

Upgrade пакета делается почти так же как его установка (инсталяция).

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

Что осталось незамеченным? Это то, что RPM автоматически удалил все старые версии пакета foo. Фактически, вы можете всегда использовать опцию -U для установки пакетов, так как она работает хорошо даже если предыдущие версии пакеты не были установлены.

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

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

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

Так как процесс upgrade это, на самом деле, комбинация установки и удаления, то вы можете встретиться с ошибками, встречающимися в этих режимах, плюс еще одна: Если RPM считает, что вы пытаетесь сделать upgrade для пакета, версия которого меньше уже установленного (т.е. для более старого пакета), то вы увидите следующее:

$ rpm -Uvh foo-1.0-1.i386.rpm
foo    package foo-2.0-1 (which is newer) is already installed
error: foo-1.0-1.i386.rpm cannot be installed

Чтобы RPM все-таки сделал ``upgrade'', используйте опцию --oldpackage в командной строке.

8.2.4 Запросы

Запросы

Запросы по установленным пакетам можно делать при помощи команды rpm -q. Простой вариант этой команды -- rpm -q foo, когда RPM выдаст название пакета, версию и номер выпуска (релиза) установленного пакета foo:

$ rpm -q foo
rpm-2.0-1

Вместо того, чтобы указывать название пакета, вы можете использовать вместе с -q следующие опции , для того чтобы указать какие пакет(ы) вы хотите запросить. Эти опции называются Опции спецификации пакетов.

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

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

8.2.5 Диагностирование

Диагностирование

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

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

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

5
контрольная сумма MD5
S
размер файла
L
символическая ссылка
T
дата изменения файла
D
устройство
U
пользователь
G
группа
M
режим (Mode) включает права доступа и тип файла

Если есть вывод какой-либо информации, то надо вынести решение по поводу того, какой пакет надо удалить или переустановить, или решить проблему иным образом.


Next Up Previous Contents Index