Выбрать главу

Аббревиатура yum интерпретируется как Yellow dog Updater, Modified, то есть Обновитель Yellow dog Модифицированный. Однако его связь с одноимённым дистрибутивом – портом Red Hat на архитектуру Power, не совсем прямая. Его пакетный менеджер, именовавшийся YUP, послужил основой для Сета Видала (Seth Vidal), при написании yum для дистрибутива Red Hat. Символично и дословное его значение (yum – по английски конфетка) – его можно трактовать так, что эта система в состоянии сделать конфетку даже из такого… не самого приятного продукта, как пакеты в формате RPM. Yum быстро получил признание среди ряда клонов Red Hat, в частности, был принят в качестве штатного менеджера пакетов в ASPLinux. Однако в самом Red Hat он долго конкурировал с apt-rpm, и развитие yum’а одно время только силами команды ASPLinux и осуществлялось. Однако в конце концов он утвердился в RHEL и его клонах (CentOS, Scientific Linux), в Fedora и в Yellow Dog.

Система yum включает в себя собственно одноимённую утилиту, набор дополнительных утилит (yum-utils) и многочисленные плагины, в виде самостоятельных пакетов расширяющие функциональность главной программы.

Запускается yum одноимённой командой, требующей указания субкоманды (возможно, с опциями последней), и, в ряде случаев, аргументов в виде имени пакета или группы пакетов, что в общей форме выглядит так:

$ yum subcommand [arguments] —[options]

Команда yum без указания субкоманды выведёт краткую справку касаемо последних и их опций. Аналогичный результат будет получен посредством субкоманды

$ yum help

А указание имени субкоманды в качестве аргумента, например, так

$ yum help install

выведет краткие сведения о её назначении.

Субкоманды yum’а определяют одно из действий, которое команда должна выполнить – установку или удаление пакета, вывод информации о нём, поиск пакетов и так далее. Обычно назначение субкоманды легко угадывается из её названия и (или) краткой характеристики в выводе help’а.

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

   • search [string] – поиск пакета по имени или его фрагменту;

   • list – вывод списка пакетов, всех (all или без указания фильтра), установленных (installed) или доступных (available);

   • info pkgname – вывод полной информации о пакете.

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

   • install pkgname1 ... pkgname# – установка из репозиториев единичного пакета или нескольких пакетов, имена которых даны (в краткой форме) в качестве аргумента, вместе со всеми их зависимостями;

   • localinstall path2/fullname.rpm – установка пакета из локально хранящегося файла; зависимости его извлекаются из репозиториев, если таковые доступны;

   • update [pkgname] – обновление пакета, указанного в качестве аргумента; в отсутствие аргумента выполняется тотальное обновление системы, аналогично сумме apt-get update и apt-get upgrade;

   • erase pkgname – удаление пакета вместе со всем, что от него зависит; пакеты, от которых зависит удаляемый, остаются в неприкосновенности, даже если они никем не используются.

Все субкоманды второй группы для своего исполнения требуют прав администратора. Отдельно надо сказать о субкоманде shell – она запускает собственную интерактивную командную оболочку yum’а, в сеансе которой можно оперировать уже просто его субкомандами, аргументами и опциями, пуская главную команду yum.

Рис. 1. Yum с его интерактивной оболочкой

Исполнение любой субкоманды начинается с синхронизации локальной базы пакетов с базами репозиториев. Затем происходит проверка зависимостей – и по её результатам выводится итог: сколько пакетов, включая зависимости, должно быть установлено, обновлено или удалено, их имена, подлежащий скачиванию объем информации. И запрашивается подтверждением на выполнение операции. Опции yum довольно многочисленны, привязаны как к главной команде, так и к отдельным субкомандам. Исчерпывающую справку о них можно получить через

$ man (8) yum

В состав пакета yum-utils входит серия утилит, запускаемых как самостоятельные команды, со своими опциями. Полный их список можно получить из

$ man yum-utils

Важнейшей из этих команд является package-cleanup, предназначенная для получения сведений о непорядках в локальной базе данных пакетов и их устранения. Она имеет несколько опций. Например,

$ package-cleanup —problems

выведет список нарушенных зависимостей, а с помощью команды

$ package-cleanup —leaves

можно вывести список пакетов, от которых не зависят никакие другие компоненты.