
Шпаргалка по работе с пакетным менеджером 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 --downloadonlyCледующие команды доступны после установки пакета 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Комментарии (18)

shep
20.05.2016 15:16Из практики потребовалось для одних репозиториев использовать доступ через прокси, а для других локально.
В этом случае /etc/yum.conf не трогаем, а в файле /etc/yum.repos.d/нужный_конфиг.repo тоже можно использовать директивы настройки прокси.

servekon
20.05.2016 19:59yum-plugin-versionlock
чем отличается от --exclude=name?
Gendalph
22.05.2016 00:15Как я понимаю,
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мы пакеты лочим и забываем.
pansa
20.05.2016 23:29> yum provides
rpm -qf /usr/bin/…
работает быстрее
А в yum есть аналог
rpm --verify который проверит были ли как-то изменены файлы из пакета?
ALexhha
21.05.2016 03:43> yum provides
> rpm -qf /usr/bin/…
> работает быстрее
у них разное назначение. rpm подразумевает, что файл уже установлен в системе. А часто бывают случаи, что необходимо запустить программу, которая требует libName-1.2.3.so, но мы не знаем имя пакета. Вот для таких случаев и нужен yum provides, который будет искать по всем пакетам и репозитариям.pansa
21.05.2016 14:54Да, это понятно, это просто лично у меня чаще надо узнать из какого установленного пакета файл. Соответственно, ждать обновление индексов реп не нужно и поиск значительно быстрее. Так есть такое у yum?
--verify, вижу, ставится плагином. Но зачем, если есть rpm -V.

khanid
21.05.2016 01:05«В дополнительно читайте» я бы ещё dnf указал, как грядущую возможную замену юм.

berlevdv
21.05.2016 15:02+2В последнее время yum пытается обращаться к репозиториям по IPv6 адресу, из-за чего при не настроенном IPv6 бывает невозможно, например, установить необходимый пакет.
Для того, чтобы обращение к репозиториям проходило через IPv4 адреса, необходимо добавить опцию:
echo «ip_resolve=4» >> /etc/yum.conf
Отключение IPv6 в самой системе ни как не влияет на поведение yum.
CaptainFlint
У меня в седьмой CentOS /etc/yum.repos.d/
n-name
Действительно. Поправил. Благодарю за замечание.