img

Управление пакетами Red Hat

21 ноября
20:00
Бесплатный вебинар
Введение в Docker
Ведущий — Филипп Игнатенко.
Руководитель центра разработки
Записаться
img
img

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

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

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

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

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

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

rpm --help

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

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

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

ls

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

rpm iv webmin-1.955-1.src.rpm

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

rpm –iv webmin-1.955-1.src.rpm

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

rpm e webmin

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

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

rpm K webmin-1.955-1.noarch.rpm
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 –qi webmin-1.955-1.noarch.rpm

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

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

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

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

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


YUM

Родной и понятный yum, так же имеет файл помощи, как и все другие утилиты.

yum  help
yum – help

У него меньше опций, меньше возможностей. И есть большое количество команд, проверить, очистить, удалить, получить информацию. Здесь не просто уже ключи, а целые слова и маленькие опции для комфортной работы.

Например, мы можем написать:

yum install openssh-clients
yum install openssh-clients

Можно видеть, как он ищет проверяет и говорит, что данный пакет установлен, последняя версия пакета и ему нечего делать.

Для удаления мы даем команду:

yum remove openssh-clients

Он запросит подтверждение на данное действие и если мы подтвердим, то утилита будет удалена.

Можно удалить весь ssh: yum remove openssh, но тогда будет предупреждение, что обнаружена одна зависимость от openssh-clients и, если мы подтвердим обе утилиты будут полностью удалены. Т.е это умный пакетный менеджер позволяет работать так, чтобы лишние утилиты не болтались, т.е он сам находит и разрешает зависимости.

Еще интересный факт, что при установки пакетный менеджер проверяет зеркала и кэш, что ему позволяет определять, что установлена последняя версия программного обеспечения. В отличии от пакетного менеджера apt (Ubuntu), которому надо сначала обновить кэш apt update, yum автоматически сам обновляет информацию в процессе установки пакетов.

Репозиторий yum находится в следующей директории и лежат как отдельные файлы.

/etc/yum.repos.d/
/etc/yum.repos.d/

Посмотрим базовый репозиторий

cat CentOS-Base.repo
cat CentOS-Base.repo

Написано, что это зеркало для подключения клиентов и проверки статуса обновлений. Тут мы можем увидеть имя репозитория и зеркала где находятся обновления. Есть еще ключи, которые можно проверять, а можно и не проверять. Если мы изменим строчку gpgcheck = 0 то проверка осуществляться не будет. Можно самостоятельно добавить репозиторий, создав файл с расширением repo. И тогда получится свой репозиторий.

Для обновления всех пакетов используется команда yum upgrade. Если пакетный менеджер видит обновления, то он предложит сделать выбор установить или нет.

Дополнительно есть утилита для просто закачки пакетов без установки yumdownloader. Работает просто. Переходим в нужную директорию и вводим, например, yumdownloader openssh и происходит закачка.

И последнее пакетный менеджер умеет искать пакеты. Например, yum search openssh.

Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
Системное администрирование
Скидка 10%
Администратор Linux
Стань Linux администратором и сделай весомый шаг в сторону карьеры в DevOps. Самые важные знания от сертифицированного и практикующего тренера с 20 летним стажем
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
Fail2ban — это программное обеспечение, которое защищает ваш сервер от атак. ПО отслеживает журналы сервера и выявляет любую под
img
Виртуализация серверов — популярная тема в мире ИТ, особенно на уровне предприятий. Она позволяет разным операционным системам з
img
  Введение Системные вызовы выступают в роли посредников между приложениями и ядром. Они создают уровень абстракции, который защ
img
  Введение SWAP (SWAP-память или SWAP-пространство) – это раздел жесткого диска или SSD компьютера, где операционная система (ОС
img
  Введение Абсолютные и относительные пути определяют расположение файла или каталога в файловой системе. Это набор инструкций д
img
  Введение Файлы конфигурации Linux определяют поведение и функциональное наполнение операционной системы. Файлы конфигурации –
21 ноября
20:00
Бесплатный вебинар
Введение в Docker