Менеджер пакетов RPM (Red Hat Package Manager), разработанный компанией Red Hat, — это набор утилит, предназначенных для построения и управления пакетами ПО для UNIX. RPM является стандартным средством установки приложений в большинстве дистрибутивов Linux.
Содержание
Установка пакетов
Установка пакета с помощью 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