Расширенное дополнение к посту 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
и сообщит при наличии несоответствия зависимостей или других проблемах.