Использование Yum

Yellow dog Updater, Modified (YUM) — открытый консольный менеджер rpm-пакетов.

Yum создан для решения следующих задач:

  • Поиск пакетов в репозитариях
  • Установка пакетов из репозиториев
  • Установка пакетов из.rpm файлов, с разрешением зависимостей с помощью репозитариев
  • Обновление системы
  • Удаление не нужных пакетов

Фактически, yum представляет собой оболочку для rpm обеспечивающую работу с репозиториями.

Все команды поиска поддерживают групповые символы ? и * (экранируйте их символом \ для корректной обработки bash).
  • Обновление всей системы до последней версии осуществляется с помощью одной команды — update.
    # yum update -y
    # yum update
    # yum update foo # обновит только пакет foo
  • Удаление пакетов. Удаление пакетов осуществляется с помощью команды remove.
    # yum remove foo            # удалит пакет foo из системы
    # yum remove xorg-x11-drv*  # удалит из системы все пакеты начинающиеся на xorg-x11-drv

Для поиска в репозиториях с помощью yum используются три команды: list, search и provides.

  • Команда list просматривает названия пакетов и их версии в поисках совпадений. Например, для просмотра пакетов с названием tsclient используйте:
    yum list tsclient

    Просмотреть только список обновлений:

    yum list updates

    Список установленных пакетов:

    yum list installed
    yum list installed | grep "@" | awk '{ print $1 }'
    Аналогично
    rpm -aq

    Вывести все установленные ядра в ОС, для укажем вывести все пакеты начинающиеся с kernel:

    # yum list kernel\*
    или
    # rpm -qa 'kernel*'
  • Команда search ищет в названии пакета и его описании указанную строку. Например, для поиска пакетов связанных с PalmPilot введите:
    yum search PalmPilot
  • Команда provides позволяет производить поиск пакетов содержащих указанный файл. Например, для поиска пакетов содержащих команду mail введите:
    # yum provides "*bin/mail"
    mailx-12.4-6.fc13.x86_64 : Enhanced implementation of the mailx command
    Репозиторий : fedora
    Совпадения с:
    Имя файла   : /bin/mail
    mailx-12.5-1.fc14.x86_64 : Enhanced implementation of the mailx command

    для поиска пакетов, содержащих файлы в директории /etc/httpd

    yum provides /etc/httpd\*
  • Установка пакетов с помощью Yum. Для установки пакетов с помощью yum используется параметр install. Так, для установки tsclient введите:
    yum install tsclient

    Yum автоматически разрешит (если сможет) зависимости, и предложит установить их.

  • Установка пакетов из.rpm файлов. Для установки.rpm пакета с автоматическим разрешением зависимостей используется команда localinstall. Так команда:
    yum localinstall foo.rpm

    автоматически найдет зависимости пакета foo.rpm в репозиториях (если сможет) и предложит их установить.

  • Покажет все подключенные репозитории.
    # yum repolist

Настройка репозиториев для Centos, Rhel

  • Вывести все подключенные репозитории:
    # yum repolist

    Нередко пакеты из дополнительных репозиториев имеют более новую версию чем пакеты из мейнстрим, и таким образом при обновлении они заменяют собой оригинальные пакеты RHEL. Это, в свою очередь, помимо проблем с безопасностью, может повлечь проблемы с зависимостями, что недопустимо. Для того что бы этого избежать, и быть уверенным, что приоритет отдается мейнстрим пакетам, для yum существует плагин yum-priorities (в RHEL6 называется yum-plugin-priorities). Настраивается он очень просто:

  1. Устанавливаем сам плагин:
    yum install yum-priorities
  2. Проверяем, включен ли плагин. Для это смотрим, есть ли в файле /etc/yum/pluginconf.d/priorities.conf строчки:
    [main]
    enabled=1
  3. Далее, редактируем файлы .repo в директории /etc/yum.repos.d/ и для каждого репозитория дописываем параметр: priority=N, где N - число от 1 до 99. Рекомендуемые настройки:
    [base], [addons], [updates], [extras] ... priority=1 (приоритет=1)
    [centosplus] ... priority=2 (приоритет=2)

    Остальные дополнительные репозитории, к примеру такие как rpmforge (см. ниже) … priority=N (где N к примеру > 10 и основывается на вашем предпочтении).

  4. Если сейчас сделать попытку апдейта системы:
    yum check-update

    , то плагин yum-priorities отработает и мы увидим надпись типа:

    Loading "priorities" plugin
    ...
    76 packages excluded due to repository priority protections
    
    Have fun.

Добавление дополнительных репозиториев в CentOS

Первый вариант:

  • EPEL
    # rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
    или
    # rpm -Uvh http://mirrors.kernel.org/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm

    Дописываем в файл epel.repo строку priority=10

Второй вариант добавления репзитория EPEL в CentOS. !!НЕ использовать, будут только старые пакеты!!

# yum update
# yum install epel-release

По умолчанию репозиторий RPMForge для CentOS 6 не подменяет апакетов из базового репозитория CentOS. Это было в прошлом, теперь данные пакеты выведены в отдельный репозиторий (RPMForge-Extras), который по умолчанию отключен.

  • RPMForge
    устанавливаем GPG ключ:
    # rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
     
    Устанавливаем файл с настройками rpmforge:
    # rpm -i rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

Читайте также: DNF (Dandified Yum) менеджер пакетов вместо Yum

PQ VPS сервера в 28+ странах.