CentOS: и снова про YUM

Автор: | 09/19/2014
 

centos-logo-new-4Расширенное дополнение к посту CentOS: использование YUM и немного о полезных возможностях RPM.

Содержание

Получение помощи в yum

Вся справка:

# yum help

И по отдельным командам:

# yum help update

Репоизитори в yum

Список активных репозиториев:

# yum repolist enabled

Список отключенных репозиториев:

# yum repolist disabled

Список всех репозиториев:

# yum repolist all
Быстрая активация отключенного репозитория
# yum install --enablerepo=somereponame pkgname
Временное отключение репозитория

Аналогично предыдущей команде:

# yum install --disablerepo=somereponame pkgname

Установка пакетов

Простая установка из активных репозиториев:

# yum install pkgname

Будет установлена последняя доступная версия пакета pkgname и первого по приоритету (если используется yum-plugin-priorities) репозитория + все его зависимости.

Установка из rpm-пакета

Устаревший вариант:

# yum localinstall pkgname.rpm

Новый вариант:

# yum install pkgname.rpm

При установке будут проверены и установлены все завивимости.

Если пакет создан вами, и не имеет своей подписи — можно добавить опцию --nogpgcheck:

# yum --nogpgcheck install pkgname.rpm
Переустановка пакетов
# yum reinstall  pkgname

Будет установлена  та же версия пакета, которая установлена в настоящий момент, независимо от наличия новых версий в репозиториях.

Обновление пакетов

Обновить только пакет pkgname:

# yum update pkgname

Проверит, установлен ли пакет в системе в настоящий момент и доступны ли для него обновления.

Для полного обновления системы и всех установленных пакетов:

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

Проверить все доступные обновления пакетов и системы:

# yum check-update

Только для пакета pkgname:

# yum check-update pkgname

Другой вариант:

# yum list updates
Исключение из обновления

Что бы исключить определённый пакет из обновления — используйте опцию --exclude:

# yum update --exclude=someotherpkgname

Что бы отключить обновление пакета навсегда — добавьте в файл /etc/yum.conf инструкцию exclude:

[main]
...
exclude=someotherpkgname, andonemorepkg
...

Так же, можно добавить её в файлы описания репозиториев, для исключения пакетов конкретно для данного репозитория:

# cat /etc/yum.repos.d/CentOS-Base.repo | grep someotherpkgname
exclude=someotherpkgname, andonemorepkg
Игнорирование пакетов с проблемными зависимостями

В случае, если при обновлении какие-то пакеты прерывают процесс из-за неразрешённых зависимоcтей — можно их пропустить, что бы обновить остальные:

# yum update --skip-broken
Откат пакета до предыдущей версии
# yum downgrade pkgname

Выполнит удаление текущей версии, и установит предыдущую, найденную в репозиториях.

Требуется наличие активного репозитория CentOS-Testing (не проверял).

Удаление пакетов из системы

# yum erase pkgname

Или аналогичная (фактически — просто синоним) опция:

# yum remove pkgname

Поиск и получение информации о пакетах

# yum info pkgname
Поиск пакетов по имени или описанию
# yum search pkgname
Поиск пакетов по функциональности или файлам
# yum provides /bin/filename

Выполнит поиск в пакетах, и вернёт имя пакета(ов), который после установки разместит в системе файл /bin/filename.

Поиск установленных пакетов
# yum list installed
Поиск доступных пакетов
# yum list available
Поиск пакетов, недавно добавленных в репозитории
# yum list recent
Поиск пакетов из «посторонних» источников
# yum list extras

Выполнит поиск всех пакетов, которые не доступны во всех настроенных и активных репозиториях.

Это могут быть пакеты, которые были установлены как зависимости из сторонних  источников, или какой-либо очень старый пакет, котого уже нет в репозиториях.

Поиск зависимостей пакета
# yum deplist pkgname

Вернёт список всех пакетов, от которых зависит pkgname.

Отображение одинаковых пакетов при поиске

По-умолчанию, когда yum выполняет поиск — он выводит в результатах только первый найденный результат.

Что бы увидеть все пакеты, из всех репозиториев — используйте опцию showdupesfromrepos:

# yum list available pkgname --showduplicates

Что бы сделать такое повведение yum постоянным- добавьте в /etc/yum.conf строку:

showdupesfromrepos=1

Что бы отключить:

showdupesfromrepos=0

Группы пакетов в YUM

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

Простые действия над группами

Установить две группы пакетов:

# groupinstall group1 group2

Обновить группу:

# groupupdate group1

Удалить группу:

# groupremove  group1

Информация о группе:

# groupinfo  group1
Получения списка всех доступных групп
# yum grouplist

История и логгирование в YUM

Логгирование действий YUM настраивается в файле конфигурации /etc/yum.conf:

[main]
...
debuglevel=2
logfile=/var/log/yum.log
...
Просмотр истории действий
# yum history

Для более подробной информации — укажите ID действия:

# yum history info 95
Отмена и повтор действий

Одна из ниболее приятных возможностей YUM — откат внесённых изменений, или повторное их выполнение.

Откатить изменения:

# yum history undo 95

Повторить действие:

# yum history redo 95
Восстановление повреждённой истории

На момент написания возможности восстановить «битый» файл к сожалению нет.

Однако — можно создать новый:

# yum history new

После этого в директории /var/lib/yum/history будет создан новый SQLite-файл.

Проверка ошибок в локальной базе rpm

# yum check

Выполнит проверку базу rpmdb и сообщит при наличии несоответствия зависимостей или других проблемах.