Найти тему
Игорь Сотников

УПРАВЛЕНИЕ ПАКЕТАМИ В RED HAT-подобных ОС. Часть 3. RPM

В данной статье мы рассмотрим работу с пакетами и менеджерами пакетов в Red Hat (CentOS) операционных системах. Для работы с пакетами в операционных системах используют yum и rpm. В современной версии используется пакетный менеджер dnf, но он является "форком" от пакетного менеджера yum. Данный пакет разрабатывался в целях решить проблему производительности в первую очередь и в принципе он очень похож, поэтому мы посмотрим в статье на примере классических пакетных менеджеров.

В статье мы рассмотрим следующие вопросы:

  • Установка, удаление и обновление пакетов.
  • Поиск пакетов и их зависимостей.
  • Получение полной информации о пакетах.

В статье нам понадобится понимание:

  • rpm утилита управления пакетами в Red Hat системах.
  • rpm2cpio разбор пакета на двоичные файлы.
  • yum программа для работы с пакетами в Red Hat системах
  • yumdownloader скачивание пакетов
  • /etc/yum.repos.d./ - перечень репозиториев.

Если сравнивать с Ubuntu можно сказать, что вместо dpkg у нас будет rpm, а вместо apt будет yum и дополнительные особенности centos.

Открываем консоль. Переходим в режим суперпользователя, команда su. Посмотрим на команду rpm --help.

-2

Функционал достаточно большой, все ключи на один экран не помещаются. Есть опции по запросу и проверке пакетов можно найти ключи в секции query\verify. Очень мощная утилита, но для работы все таки удобнее использовать пакетный менеджер yum.

Попробуем воспользоваться rpm, чтобы посмотреть его особенности. Лучше всего смотреть на примере. Скачаем программу webmin в виде установочного rpm пакета. Скачали пакет и положили в директорию tmp.

Переходим в нее cd /tmp. Далее можно посмотреть наличие файлов ls la

-3

Установим данный пакет. Для установки используем два ключа, ключ i означает install, ключ v означает verbose показывать ход установки.

rpm iv webmin-1.955-1.src.rpm

Пакет установился.

-4

Можно теперь зайти в браузер и начать работу, но цель была посмотреть, как работает rpm. Для того, чтобы удалить пакет необходимо использовать ключ e, который означает erase. Команда будет выглядеть следующим образом:

rpm e webmin

Название пакета можно полностью не писать, должно работать.

Для того, чтобы проверить ключ у скаченного пакета есть ключ K.

rpm K webmin-1.955-1.noarch.rpm

-5

Как из вывода видим, с пакетом не все в порядке отсутствует ключ для расшифровки подписи. Но данному пакету можно доверять, т. к. он скачан из надежного источника и качали сами.

Для того, чтобы проверить состоянии самого пакета есть другой ключ V

rpm Vv webmin-1.955-1.noarch.rpm

Можно получить информацию о пакете для этого необходимо использовать ключи qi, где query information.

rpm qi webmin-1.955-1.noarch.rpm

-6

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

Возможно, когда-то может возникнуть необходимость посмотреть из чего состоит пакет rpm и разобрать его на составные части. Для этого необходимо использовать небольшую утилиту rpm2cpio. Расшифровывается т.е. rpm переделывается в cpio "copy input\output" это и двоичный архиватор, и формат файла. Сейчас пакет rpm должен пере паковаться в формат cpio. Пользоваться следующим образом:

rpm2cpio webmin-1.955-1.noarch.rpm > webmin.cpio

-7

Как мы видим, получили еще один файл с расширением cpio и вот этот файл в формате родном для других unix систем.

И так RPM это такая низкоуровневая утилита, которая позволяет работать с RPM пакетами.