Yum, шпаргалка



Шпаргалка по работе с пакетным менеджером Yum (Yellowdog Updater, Modified), который используется в популярных Linux дистрибутивах: RedHat, CentOS, Scientific Linux (и других). В целях экономии места вывод команд не представлен.

Оглавление


Команды
Опции Yum
Пакет Yum-Utils
Конфигурационные файлы
Плагины
Работа через прокси


отображение команд и опций
#yum help

список названий пакетов из репозиторий
#yum list

список всех доступных пакетов
#yum list available

список всех установленных пакетов
#yum list installed

установлен ли указанный пакет
#yum list installed httpd

список установленных и доступных пакетов
#yum list all

список пакетов, относящихся к ядру
#yum list kernel

отображение информации о пакете
#yum info httpd

список зависимостей и необходимых пакетов
#yum deplist httpd

найти пакет, который содержит файл
#yum provides "*bin/top"

поиск пакета по имени и описанию
#yum search httpd

#yum search yum

получить информацию о доступных обновлениях безопасности
#yum updateinfo list security

вывести список групп
#yum grouplist

вывести описание и содержимое группы
#yum groupinfo "Basic Web Server"

установка группы пакетов «Basic Web Server»
#yum groupinstall "Basic Web Server"

удаление группы
#yum groupremove "Basic Web Server"

Проверка на доступные обновления
#yum check-update

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

информация об определенном репозитории
#yum repoinfo epel

информация о пакетах в указанном репозитории
#yum repo-pkgs epel list

установить все пакеты из репозитория
#yum repo-pkgs reponame install

удалить пакеты установленные из репозитория
#yum repo-pkgs reponame remove

создать кэш
#yum makecache

проверить локальную базу rpm (поддерживаются параметры dependencies, duplicates, obsoletes, provides)
#yum check

#yum check dependencies

просмотр yum истории (вывод списка транзакций)
#yum history list

просмотр информации определенной транзакции (установленные пакеты, установленные зависимости)
#yum history info 9

отмена транзакции
#yum history undo 9

повторить
#yum history redo 9

дополнительно можно просмотреть лог
#cat /var/log/yum.log

удалить пакеты сохраненные в кэше
#yum clean packages

удалить все пакеты и метаданные
#yum clean all

установить пакет
#yum install httpd

удаление пакета
#yum remove httpd

обновить пакет
#yum update httpd

обновить все пакеты
#yum update

обновить до определенной версии
#yum update-to

установить из локальной директории (поиск/установка зависимостей будут произведены из подключенных репозиториев)
#yum localinstall httpd.rpm

или
#yum install httpd.rpm

установить с http
#yum localinstall http://server/repo/httpd.rpm

откатиться к предыдущей версии пакета
#yum downgrade

переустановка пакета (восстановление удаленных файлов)
#yum reinstall httpd

удаление ненужных более пакетов
#yum autoremove

создание локальных репозиториев (createrepo ставится отдельно)
#createrepo

установка обновлений по расписанию (yum-cron устанавливается отдельно)
#yum-cron



Опции Yum


ответить «yes» при запросе,
-y

#yum update -y

ответить «no» при запросе
--assumeno

использовать Yum без плагинов
--noplugins

или отключить определенный плагин
--disableplugin=fastestmirror

включить плагины, которые установлены, но отключены
#yum --enableplugin=ps

включить отключенный репозиторий
#yum update -y --enablerepo=epel

отключить репозиторий
#yum update -y --disablerepo=epel

скачать пакеты, но не устанавливать
(на Centos 7 x86_64 будут скачаны в '/var/cache/yum/x86_64/7/base/packages/')
#yum install httpd --downloadonly


Cледующие команды доступны после установки пакета yum-utils


найти из какого репозитория установлен пакет
#find-repos-of-install httpd

найти процессы, пакеты которых обновлены и требуют рестарта
#needs-restarting

запрос к репозиторию, узнать зависимости пакета, не устанавливая его
#repoquery  --requires --resolve httpd

синхронизировать yum репозиторий updates в локальную директорию repo1
#reposync -p repo1 --repoid=updates

проверить локальный репозиторий на целостность
#verifytree URL

завершить транзакции
#yum-complete-transaction

установить необходимые зависимости для сборки RPM пакета
#yum-builddep

управление конфигурационными опциями и репозиториями yum
#yum-config-manager

запрос к локальной базе yum, отображение информации о пакете
(использованная команда, контрольная сумма, URL с которого был установлен и другое)
#yumdb info httpd

скачать rpm пакеты из репозитория
#yumdownloader

скачать src.rpm пакет из репозитория
(должен быть подключен соответствующий репозиторий, например в '/etc/yum.repos.d/CentOS-Sources.repo' в CentOS)
yumdownloader --source php


Конфигурационные файлы Yum и их расположение


Основной конфигурационный файл
/etc/yum.conf

директория, с конфигурациями (например, yum плагины)
/etc/yum/

директория, содержащая информацию о репозиториях
/etc/yum.repos.d/


Некоторые опции yum.conf:


Директория, где yum хранит кэш и файлы базы (по умолчанию '/var/cache/yum')
cachedir=/var/cache/yum/$basearch/$releasever

Определяет должен или нет Yum хранить кэш заголовков и пакетов после успешной установки. Значения: 0 или 1. (по умолчанию 1)
keepcache=1

уровень вывода отладочных сообщений. Значения: 1-10 (по умолчанию 2)
debuglevel=2

лог файл (по умолчанию '/var/log/yum.log')
logfile=/var/log/yum.log

обновлять устаревшие пакеты
obsoletes=1

проверка подписи пакетов. Значения: 0 или 1 (по умолчанию 1)
gpgcheck=1

включение плагинов. Значения: 0 или 1 (по умолчанию 1)
plugins=1



Некоторые полезные плагины


Добавляет опцию командной строки для просмотра ченжлога перед/после обновлениями
yum-plugin-changelog

выбирает более быстрые репозитории из списка зеркал
yum-plugin-fastestmirror

добавляет команды keys, keys-info, keys-data, keys-remove, которые позволяют работать с ключами.
yum-plugin-keys

блокировать указанные пакеты от обновления, команда yum versionlock
yum-plugin-versionlock

добавление команд yum verify-all, verify-multilib, verify-rpm для проверки контрольных сумм пакетов
yum-plugin-verify


Работа Yum через прокси сервер


Для всех пользователей:
добавить в секцию [main] в /etc/yum.conf
proxy="http://server:3128"

при необходимости указать пароль, добавить
proxy_proxy_username=user
proxy_password=pass

указать прокси для отдельного пользователя
#export http_proxy="http://server:3128"



Буду рад любым дополнениям и замечаниям.
Дополнительно читайте:
#man yum

#man rpm
Поделиться публикацией
Похожие публикации
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама
Комментарии 20
  • +5
    yum localinstall
    localinstall и localupdate — это легаси. Вместо них работают обычные install и update.
    /etc/yum.conf.d/
    У меня в седьмой CentOS /etc/yum.repos.d/
    • +1
      Действительно. Поправил. Благодарю за замечание.
    • +4
      Полезная статья, поэтому раз в год и повторяется.
      • 0
        Из практики потребовалось для одних репозиториев использовать доступ через прокси, а для других локально.
        В этом случае /etc/yum.conf не трогаем, а в файле /etc/yum.repos.d/нужный_конфиг.repo тоже можно использовать директивы настройки прокси.
        • –2
          yum update httpd = yum update
          А для обновления пакета необходимо писать yum install httpd тогда вам предложит обновить пакет. centos7/fedora 20-23
          • 0
            Это потому что в 23й не yum, а dnf
            • 0
              Что ж, я мог проверить за 5 секунд и не писать что в centos 7 обновления пакета работает не как описано в статье. Я был не прав. А про dnf знаю, сам сижу на федоре 23.
          • 0
            yum-plugin-versionlock

            чем отличается от --exclude=name?
            • 0

              Как я понимаю, versionlock меняет состояние самого пакета, это аналог hold в Debian


              Holding a package basically means you're telling the package manager to keep the current version no matter what. This is useful if more recent version of a currently working program breaks after an update.

              Вместо прописывания вручную списка пакетов в --exclude мы пакеты лочим и забываем.

            • 0
              > yum provides
              rpm -qf /usr/bin/…
              работает быстрее

              А в yum есть аналог
              rpm --verify который проверит были ли как-то изменены файлы из пакета?
              • 0
                > yum provides
                > rpm -qf /usr/bin/…
                > работает быстрее

                у них разное назначение. rpm подразумевает, что файл уже установлен в системе. А часто бывают случаи, что необходимо запустить программу, которая требует libName-1.2.3.so, но мы не знаем имя пакета. Вот для таких случаев и нужен yum provides, который будет искать по всем пакетам и репозитариям.
                • 0
                  Да, это понятно, это просто лично у меня чаще надо узнать из какого установленного пакета файл. Соответственно, ждать обновление индексов реп не нужно и поиск значительно быстрее. Так есть такое у yum?
                  --verify, вижу, ставится плагином. Но зачем, если есть rpm -V.
              • 0
                «В дополнительно читайте» я бы ещё dnf указал, как грядущую возможную замену юм.
                • 0
                  Есть что нибудь такое для debian?
                  • +2
                    В последнее время yum пытается обращаться к репозиториям по IPv6 адресу, из-за чего при не настроенном IPv6 бывает невозможно, например, установить необходимый пакет.
                    Для того, чтобы обращение к репозиториям проходило через IPv4 адреса, необходимо добавить опцию:
                    echo «ip_resolve=4» >> /etc/yum.conf

                    Отключение IPv6 в самой системе ни как не влияет на поведение yum.
                    • 0
                      последние 2 команды охватывают все остальное же.
                      • 0
                        а в RedHat клонах dnf вроде ж уже, не?
                        этот мануал можно использовать и с ним?
                        • 0

                          В RHEL 6 и 7, а равно в CentOS 6 и 7 — yum.

                        • 0
                          Ситуация такая: на сервере не так много памяти (из 512 МБ доступно ~150). Возможно ли запустить обновление всех пакетов, но поочередно? Помнится, возникала ошибка о недостатке памяти.
                          А сейчас попытался обновиться, получаю сообщение:
                          # yum update
                          error: rpmdb: BDB0113 Thread/process 15646/140191230289728 failed: BDB1507 Thread died in Berkeley DB library
                          error: db5 error(-30973) from dbenv->failchk: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery
                          error: cannot open Packages index using db5 -  (-30973)
                          error: cannot open Packages database in /var/lib/rpm
                          CRITICAL:yum.main:
                          
                          
                          • 0
                            Собственно, вторая часть вопроса (про возникшую ошибку) неактуальна. Вопрос по поочередное обновление пакетов в силе

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