RPM пакеты
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) позволяет узнать, какие пакеты и библиотеки требуются пакету. Особенно часто это требуется перед установкой пакета. Пример: