В данной статье мы рассмотрим работу с пакетами и менеджерами пакетов в 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.
Функционал достаточно большой, все ключи на один экран не помещаются. Есть опции по запросу и проверке пакетов можно найти ключи в секции query\verify. Очень мощная утилита, но для работы все таки удобнее использовать пакетный менеджер yum.
Попробуем воспользоваться rpm, чтобы посмотреть его особенности. Лучше всего смотреть на примере. Скачаем программу webmin в виде установочного rpm пакета. Скачали пакет и положили в директорию tmp.
Переходим в нее cd /tmp. Далее можно посмотреть наличие файлов ls la
Установим данный пакет. Для установки используем два ключа, ключ i означает install, ключ v означает verbose показывать ход установки.
rpm iv webmin-1.955-1.src.rpm
Пакет установился.
Можно теперь зайти в браузер и начать работу, но цель была посмотреть, как работает rpm. Для того, чтобы удалить пакет необходимо использовать ключ e, который означает erase. Команда будет выглядеть следующим образом:
rpm e webmin
Название пакета можно полностью не писать, должно работать.
Для того, чтобы проверить ключ у скаченного пакета есть ключ K.
rpm K webmin-1.955-1.noarch.rpm
Как из вывода видим, с пакетом не все в порядке отсутствует ключ для расшифровки подписи. Но данному пакету можно доверять, т. к. он скачан из надежного источника и качали сами.
Для того, чтобы проверить состоянии самого пакета есть другой ключ V
rpm Vv webmin-1.955-1.noarch.rpm
Можно получить информацию о пакете для этого необходимо использовать ключи qi, где query information.
rpm qi webmin-1.955-1.noarch.rpm
В данном выводе мы можем много информации получить о пакете, Название, Версия, дата сборки и т.д.
Возможно, когда-то может возникнуть необходимость посмотреть из чего состоит пакет rpm и разобрать его на составные части. Для этого необходимо использовать небольшую утилиту rpm2cpio. Расшифровывается т.е. rpm переделывается в cpio "copy input\output" это и двоичный архиватор, и формат файла. Сейчас пакет rpm должен пере паковаться в формат cpio. Пользоваться следующим образом:
rpm2cpio webmin-1.955-1.noarch.rpm > webmin.cpio
Как мы видим, получили еще один файл с расширением cpio и вот этот файл в формате родном для других unix систем.
И так RPM это такая низкоуровневая утилита, которая позволяет работать с RPM пакетами.