Шпаргалка по менеджеру пакетов YUM в CentOS и RHEL
В этой статье мы рассмотрим менеджер пакетов Yum, который позволяет управлять установкой, удалением и обновлением программ (.RPM-пакетов), автоматически разрешать зависимости, управлять дополнительными репозиториями. Данная статья о Yum должна прежде всего быть интересна как шпаргалка для начинающих администраторов Linux.
Yum (Yellowdog Updater Modified) – консольный менеджер пакетов для дистрибутивов Linux, основанных на пакетах формата RPM. (RedHat Package Manager) Сюда входят такие популярные ОС как RedHat, CentOS, Fedora, Oracle Linux, Scientific Linux.
Yum: установка, обновление и удаление пакетов
С чего начать? Пожалуй, как и в любых других случаях, начинаем со справки:
yum help
– полная справка по менеджеру пакетов yum
Открыв ее, я выделю основные команды:
yum clean all
– очистить кеш всех пакетов (обчычно используется при возникновении проблем при работе yum).
yum makecache
– пересоздать кеш пакетов заново.
yum repolist
– отобразить список подключенных репозиториев, вывод выглядит так:
Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirror.fasthost.ru * extras: mirror.fasthost.ru * updates: mirror.fasthost.ru repo id repo name status base/7/x86_64 CentOS-7 - Base 10,019 extras/7/x86_64 CentOS-7 - Extras 435 updates/7/x86_64 CentOS-7 - Updates 2,500 repolist: 12,954
У меня в системе установлены только стандартные репозитории CentOS-7: Base, Extras и Updates.
yum list available
– вывести список всех доступных пакетов для установки.
yum list installed
– список всех пакетов, которые установлены в системе.
yum list kernel
– вывести список пакетов, которые относятся к ядру Linux.
Вы можете проверить установлен ли в вашей системе определенный пакет, например, apache:
yum list installed httpd
Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirror.fasthost.ru * extras: mirror.fasthost.ru * updates: mirror.fasthost.ru Installed Packages httpd.x86_64 2.4.6-89.el7.centos.1 @updates
Вы можете получить более подробную информацию о пакете, например, получим данные о пакете MariaDB:
yum info mariadb
Чтобы установить пакет используется команда yum install. Для установки веб-сервера apache выполните:
yum install httpd
Traceback (most recent call last):thread.error: can't start new thread
, скорее всего у вас не хватает оперативной памяти. Попробуйте добавить RAM или отключите плагины yum (в /etc/yum.conf укажите plugins=0).Перед установкой пакета можно проверить его на зависимости и необходимые пакеты с помощью команды:
yum deplist httpd
Если вы хотите установить какой-то пакет, но забыли его полное название, можно воспользоваться подстановочным символом *. Например:
yum install epel-*
Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: centos.fasthost.ru * extras: centos.fasthost.ru * updates: centos.fasthost.ru Resolving Dependencies --> Running transaction check ---> Package epel-release.noarch 0:7-11 will be installed --> Finished Dependency Resolution Install 1 Package Total download size: 15 k Installed size: 24 k Is this ok [y/d/N]:
Если ввести просто:
yum install epel
No package epel available. Error: Nothing to do
Увы, пакета не видно.
Yum позволяет установить сразу несколько пакетов:
yum install httpd php wget rsyslog
Переустановка пакета:
yum reinstall proftpd
Чтобы удалить установленный пакет с помощью yum используется параметр remove
:
yum remove httpd
Но перед удалением любого пакета, рекомендуется сначала проверить его на зависимости (бывают пакеты, удаление которых влечет за собой удаление множества других пакетов, что в следствии приводит к неработоспособности системы):
yum deplist proftpd
Найти пакет по имени или описанию:
yum search nginx
С помощью опции provides вы можете найти пакеты, содержавшие определенный файл, например:
yum provides */squid.conf
Выполнить обновление всех установленных пакетов можно с помощью команды:
yum update
Вы можете обновить только определенный пакет, указав его имя:
yum update php
Проверить если доступные обновления для системы можно командой:
yum check-update
Получить информацию о доступных обновлениях безопасности:
yum updateinfo list security
Бывают случаи, когда после обновления какого-либо пакета или сервиса, возникают проблемы. Например, после обновления php, перестал работать ваш сайт. Вы можете вернуть предыдущую версию пакета, откатив установленный пакет через yum:
yum downgrade perl
Так же хотел обратить ваше внимание, на групповую установку пакетов через grouplist. В репозитории существуют предопределенные группы пакетов с различными наборами программ. Вы можете вывести список имеющихся групп:
yum grouplist
Рассмотрим на примере группового листа «Basic Web Server». Получить информацию группе и пакетах в ней:
yum groupinfo "Basic Web Server"
При проверке мы видим, что будут установлены набор пакеты и сервисы, для веб-сервера.
И еще один полезный групповой лист «System Administration Tools»:
yum groupinfo "System Administration Tools”
Как видим в данном листе содержатся пакеты, которые будут полезны для мониторинга и отладки.
Установить групповой лист можно командой:
yum groupinstall "System Administration Tools"
Установленные пакеты будут в отдельном блоке «Installed Groups»:
Yum: история и логи установки/удаления пакетов
Вы можете вывести информацию об истории установки пакетов yum (списка транзакций) с помощью команды:
yum history list
Вывод состоит из 5 столбцов, в первом выводится ID транзакции по которому можно посмотреть всю информацию (установленные пакеты, зависимости):
Например:
yum history info 10
Более того, можно отменить данную транзакцию командой:
yum history undo 10
В моем случае удалилось бы 4 пакета:
Так же всю информацию об истории установки/удаления пакетов менеджером yum можно посмотреть в логе /var/log/yum.log:
cat /var/log/yum.log
Sep 03 11:06:38 Installed: mpfr-3.1.1-4.el7.x86_64 Sep 03 11:06:38 Installed: libmpc-1.0.1-3.el7.x86_64 Sep 03 11:06:38 Installed: libquadmath-4.8.5-36.el7_6.2.x86_64 Sep 03 11:06:38 Installed: apr-1.4.8-3.el7_4.1.x86_64 Sep 03 11:06:38 Installed: m4-1.4.16-10.el7.x86_64 Sep 03 11:06:38 Installed: apr-util-1.5.2-6.el7.x86_64 Sep 03 11:06:38 Installed: unzip-6.0-19.el7.x86_64 Sep 03 11:06:38 Installed: patch-2.7.1-10.el7_5.x86_64 Sep 03 11:06:38 Installed: 1:perl-Error-0.17020-2.el7.noarch Sep 03 11:06:38 Installed: boost-system-1.53.0-27.el7.x86_64 Sep 03 11:06:38 Installed: perl-Thread-Queue-3.02-2.el7.noarch Sep 03 11:06:38 Installed: avahi-libs-0.6.31-19.el7.x86_64 Sep 03 11:06:38 Installed: zip-3.0-11.el7.x86_64 Sep 03 11:06:38 Installed: boost-thread-1.53.0-27.el7.x86_64 Sep 03 11:06:38 Installed: libgfortran-4.8.5-36.el7_6.2.x86_64 Sep 03 11:06:39 Installed: cpp-4.8.5-36.el7_6.2.x86_64
Дополнительные полезные параметры yum
У утилиты yum есть несколько полезных опций, которые часто приходитя использовать при управлении пакетами. Чтобы при установке или удалении пакетов, после ввода команды не предпринимать никаких действий, можно воспользоваться опцией -y
, например,:
yum update -y yum install httpd -y
Чтобы ответить no при запросе, нужно указать опцию:
--assumeno
Использовать yum без плагинов или отключить конкретный плагин:
--noplugins
--disableplugin=fastestmirror
Включить отключенный плагин:
--enableplugin=fastestmirror
Задействовать отключенный репозиторий:
yum update –enablerepo=atomic
Отключить определенный репозиторий:
yum update –disablerepo=atomic
Конфигурационный файл /etc/yum.conf
Конфигурационный файл yum — /etc/yum.conf
.
Основные параметры конфигурационного файла:
cachedir
– локальный кэш пакетов (по умоланию /var/cache/yum)
logfile
— путь до файла с логами yum
obsoletes
— обновлять или нет, устаревшие пакеты(1-да,0-нет)
gpgcheck
— проверка подписи пакета перед установкой (1-да,0-нет)
keepcache
— хранение кеша (1-да,0-нет)
cachedir
— директория для хранения кеша(по умолчанию /var/cache/yum)
debuglevel
– уровень отладки от 1 до 10
plugins
— включение yum плагинов (1-да,0-нет)
bugtracker_url
– ссылка по которой будут зарегистрированы ошибки работы yum
installonly_limit
– максимальное количество версий, которые могут быть установлены для одного пакета.
Полезные плагины yum
Для чего нужны плагины в yum? Как и везде, упрощают нашу работу.
Некоторые популярные плагины и их описание:
yum-plugin-fastestmirror – плагин служащий для измерения скорости зеркал и предоставления самого быстрого для установки пакетов.
yum-plugin-security — плагин которые предоставляет список обновлений относящихся только к безопасности системы.
yum-plugin-keys — позволяет работать с ключами keys, keys-info, keys-data, keys-remove
Директория где хранятся все плагины /etc/yum/
yum-plugin-versionlock – позволяет блокировать обновление указанных пакетов
Чтобы вывести список доступных плагинов yum, выполните:
yum search yum-plugin
======================================================================= N/S matched: yum-plugin ======================================================================= PackageKit-yum-plugin.x86_64 : Tell PackageKit to check for updates when yum exits fusioninventory-agent-yum-plugin.noarch : Ask FusionInventory agent to send an inventory when yum exits kabi-yum-plugins.noarch : The CentOS Linux kernel ABI yum plugin yum-plugin-aliases.noarch : Yum plugin to enable aliases filters yum-plugin-auto-update-debug-info.noarch : Yum plugin to enable automatic updates to installed debuginfo packages yum-plugin-changelog.noarch : Yum plugin for viewing package changelogs before/after updating yum-plugin-copr.noarch : Yum plugin to add copr command yum-plugin-fastestmirror.noarch : Yum plugin which chooses fastest repository from a mirrorlist yum-plugin-filter-data.noarch : Yum plugin to list filter based on package data yum-plugin-fs-snapshot.noarch : Yum plugin to automatically snapshot your filesystems during updates yum-plugin-keys.noarch : Yum plugin to deal with signing keys yum-plugin-list-data.noarch : Yum plugin to list aggregate package data yum-plugin-local.noarch : Yum plugin to automatically manage a local repo. of downloaded packages yum-plugin-merge-conf.noarch : Yum plugin to merge configuration changes when installing packages yum-plugin-ovl.noarch : Yum plugin to work around overlayfs issues yum-plugin-post-transaction-actions.noarch : Yum plugin to run arbitrary commands when certain pkgs are acted on yum-plugin-pre-transaction-actions.noarch : Yum plugin to run arbitrary commands when certain pkgs are acted on yum-plugin-priorities.noarch : plugin to give priorities to packages from different repos yum-plugin-protectbase.noarch : Yum plugin to protect packages from certain repositories. yum-plugin-ps.noarch : Yum plugin to look at processes, with respect to packages yum-plugin-remove-with-leaves.noarch : Yum plugin to remove dependencies which are no longer used because of a removal yum-plugin-rpm-warm-cache.noarch : Yum plugin to access the rpmdb files early to warm up access to the db yum-plugin-show-leaves.noarch : Yum plugin which shows newly installed leaf packages yum-plugin-tmprepo.noarch : Yum plugin to add temporary repositories yum-plugin-tsflags.noarch : Yum plugin to add tsflags by a commandline option yum-plugin-upgrade-helper.noarch : Yum plugin to help upgrades to the next distribution version yum-plugin-verify.noarch : Yum plugin to add verify command, and options yum-plugin-versionlock.noarch : Yum plugin to lock specified packages from being updated
Вы можете установить выбранный плагин командой yum install, как и любой другой пакет:
yum install yum-plugin-changelog
yum -y install yum-versionlock
Чтобы заблокировать обновление пакета через плагин, выполните:
yum versionlock nginx
Вывести список заблокировнных пакетов:
yum versionlock list
Убрать пакет из заблокированных:
yum versionlock delete nginx
Если вам в какой-то момент времени не нужно использовать определенный плагин, вы его можете отключить, добавив префикс при вызове yum:
--disableplugin=fastestmirror
Или же отключить вообще все плагины, установленные в системе:
--noplugins
Использование yum через прокси
Yum для работы с репозиториями программ использует протокол HTTP/1.1. Если ваш Linux сервер имеет доступ в интернет только через HTTP прокси сервер, вы можете указать имя прокси сервера в конфигурационном файле /etc/yum.con в секции [main]:
proxy=http://proxyservername:3128
Если прокси-сервер требует авторизацию, добавьте строки:
proxy_proxy_username=user
proxy_password=pass
Для проверки работы yum через прокси сервер воспользуйтесь командой
yum clean all && yum search nginx
Для проверки я указал публичный прокси сервер с Германии и при установке, сработал плагин fastestmirror, нашел зеркала с которых скорость будет выше:
Если нужно использовать прокси только для некоторых репозиториев, не нужно править файл /etc/yum.conf, а настройки прокси указать в конфигурационном файле репозитория /etc/yum.repos.d/ваш_конфиг.repo.
Итак, в этой статье мы рассмотрели базовые возможности менеджера rpm пакета yum в Linux CentOS/ RHEL.