RPM (Redhat Package Manager) служит для работы с пакетами — установка, удаление, проверка и т.д.
При установке пакета rpm записывает информацию о нем в свою базу данных, что и позволяет в дальнейшем удалять пакет, просматривать информацию о нем и т.д.
Такой подход к установке ПО имеет несколько достоинств, в частности:
- Унифицированная работа с разными пакетами (в частности, не надо помнить, куда какая-либо программа положила при инсталляции свои файлы — постоянная головная боль в Dos/Windows).
- Отслеживание зависимостей между пакетами выполняется автоматически (не надо помнить, что программа такая-то требует некоей библиотеки с версией не ниже какой-то — сравните с вечными проблемами, к примеру, с DirectX в Windows).
- Непротиворечивость между разными пакетами — в частности, корректно «разводится» ситуация, когда несколько пакетов содержат один и тот же файл (например, в /etc/).
Режимы работы rpm
Если вызвать rpm без параметров, то он покажет «краткий» список ключей. Обычно же формат вызова rpm такой:rpm —КлючРежима [дополнительные ключи] [параметры]
КлючРежима, указываемый первым, определяет режим работы. Самые частоиспользуемые режимы перечислены в таблице.Основные варианты вызова rpm
Команда | Назначение |
---|---|
rpm -i файл-пакета.rpm | Установка пакета (install) |
rpm -U файл-пакета.rpm | Обновление пакета (Upgrage) |
rpm -e пакет | Удаление пакета (erase) |
rpm -q пакет | Получение информации (query) |
rpm -y пакет | Проверка пакета (verify) |
rpm -b | Создание пакета .rpm из .src.rpm (build); здесь не рассматривается |
Установку, обновление и удаление пакетов мы рассмотрели ранее, поэтому сейчас остановимся лишь на общих параметрах, получении информации и проверке.
Ключи и параметры, общие для разных режимов
В аргументах обычно используется два варианта ссылок на пакеты.
Имя-файла-пакета.rpm для режимов -i и -U — это полное (с директорией) имя файла. Например, ~/RPMS/apache-1.3.3-1.i386.rpm. В принципе, rpm понимает имена файлов в виде ftp-URL, т.е. ftp://сервер/директория/файл.rpm, но ими имеет смысл пользоваться только в быстрой и надежной сети (в нашей стране — в локальной). Впрочем, в локальной сети (и любой быстрой) удобнее пользоваться NFS-сервером, если он есть.
Пакет — это имя уже установленного пакета для режимов -e, -q и -y. Оно может указываться как с номером версии, так и без него. Примеры: acroread-3.01-4, acroread. Если вместо списка пакетов указать ключ «-a» (all), то это будет означать «все пакеты». Кроме того, ключ «-f» позволяет вместо имени пакета указать какой-либо файл, принадлежащий этому пакету (см. ниже).
Можно указывать не один файл-пакета или пакет, а сразу несколько, разделяя их пробелами.
Получение информации
Команда rpm -q позволяет получать следующую информацию о пакете:
- Версию пакета.
- Список файлов.
- Чего требует пакет.
- Можно узнать, какому пакету принадлежит указанный файл.
Просто «rpm -qимя-пакета» выдает полное название пакета, вместе с версией:
Но чаще всего команда «rpm -q» используется для получения списка файлов пакета.
Краткая информация о пакете — rpm -qi
Команда «rpm -qi» (info) выдает сводку информации о пакете — название, версия, объем и т.д., плюс краткую аннотацию:
Список файлов пакета — rpm -ql
Для получения списка файлов используется ключ «-l» (list):
Чего требует пакет — rpm -qR
Ключ «-R» (Requirements) позволяет узнать, какие пакеты и библиотеки требуются пакету. Особенно часто это требуется перед установкой пакета. Пример: