береженого кольт бережет
береженого кольт бережет

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