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

Опубликовано mensh - сб, 06/21/2008 - 10:03

Менеджер пакетов RPM (Red Hat Package Manager), разработанный компанией Red Hat, — это набор утилит, предназначенных для построения и управления пакетами ПО для UNIX. RPM является стандартным средством установки приложений в большинстве дистрибутивов Linux.

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

Содержание

Установка пакетов

Установка пакета с помощью RPM выполняется командой:

~# rpm -i имя_пакета

Вышеприведенная команда установит пакет без лишних комментариев. Опция -v позволит получить подробный вывод:

~# rpm -iv имя_пакета

Для вывода индикатора прогресса добавляется опция -h:

~# rpm -ivh имя_пакета

Наиболее подробную информацию при установке пакета можно получить командой

~# rpm -ivv имя_пакета

Для игнорирования зависимостей используется команда

~# rpm -ivv --nodeps имя_пакета

FTP и HTTP клиенты, встроенные в RPM, позволяют выполнить сетевую установку:

~# rpm -iv ftp://ftp.redhat.com/path/package.rpm 
~# rpm -iv http://www.me.com/path/package.rpm

Управление пакетами

Утилита rpm позволяет работать как с установленными, так и с не установленными пакетами. Это включает в себя и проверки пакетов.

Для получения основной информации о новом пакете используется команда

~$ rpm -qp имя_пакета

Для получения информации о назначении пакета, его возможностях, авторе, хосте, дате сборки, а также о том, установлен ли пакет, используется команда

~$ rpm -qip имя_пакета

Для просмотра содержимого пакета используется команда

~$ rpm -qlp имя_пакета

Для того, чтобы вывести список всех установленных в системе пакетов следует ввести:

~$ rpm -qa имя_пакета

Для проверки пакета вводится команда

~$ rpm -V имя_пакета

Для проверки всех пакетов в системе используется команда

~$ rpm -Va имя_пакета

Что предоставляет пакет для других:

~$ rpm -q --provides имя_пакета

Что требует пакет для своей работы:

~$ rpm -q --requires имя_пакета

Обновление пакетов

Одна из сильных сторон RPM — простота обновления. RPM имеет два метода обновления. Первый:

~# rpm -U имя_пакета

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

~# rpm -F имя_пакета

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

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

Удаление пакетов

Для удаления пакета используется команда

~# rpm -e имя_пакета

Версию при удалении можно не указывать.

При ошибках в скриптах и невозможности удаления пакета предыдущей командой:

~# rpm -e --noscripts имя_пакета

При ошибках в скриптах-триггерах:

~# rpm -e --notriggers имя_пакета

При нарушении зависимостей:

~# rpm -e --nodeps имя_пакета

Последние команды надлежит применять с осторожностью и при неуверенности в своих силах лучше использовать apt-get remove имя_пакета.

Работа с базой

Создание пустой базы:

~# rpm --initdb

Часто используется в паре с --chroot для создания базы на новом месте.

Пересчет индексов в базе и удаление локов:

~# rpm --rebuilddb