В этой статье мы рассмотрим менеджер пакетов Yum, который позволяет управлять установкой, удалением и обновлением программ (.RPM-пакетов), автоматически разрешать зависимости, управлять дополнительными репозиториями. Данная статья о Yum должна прежде всего быть интересна как шпаргалка для начинающих администраторов Linux.
Yum (Yellowdog Updater Modified) – консольный менеджер пакетов для дистрибутивов Linux, основанных на пакетах формата RPM. (RedHat Package Manager) Сюда входят такие популярные ОС как RedHat, CentOS, Fedora, Oracle Linux, Scientific Linux.
С чего начать? Пожалуй, как и в любых других случаях, начинаем со справки:
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_x000D_Loading mirror speeds from cached hostfile_x000D_* base: mirror.fasthost.ru_x000D_* extras: mirror.fasthost.ru_x000D_* updates: mirror.fasthost.ru_x000D_Installed Packages_x000D_httpd.x86_64 2.4.6-89.el7.centos.1 @updates_x000D_
Вы можете получить более подробную информацию о пакете, например, получим данные о пакете 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_x000D_Loading mirror speeds from cached hostfile_x000D_* base: centos.fasthost.ru_x000D_* extras: centos.fasthost.ru_x000D_* updates: centos.fasthost.ru_x000D_Resolving Dependencies_x000D_--> Running transaction check_x000D_---> Package epel-release.noarch 0:7-11 will be installed_x000D_--> Finished Dependency Resolution_x000D_Install 1 Package_x000D_Total download size: 15 k_x000D_ Installed size: 24 k_x000D_Is this ok [y/d/N]:_x000D_
Если ввести просто:
yum install epel
No package epel available._x000D_Error: Nothing to do_x000D_
Увы, пакета не видно.
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 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_x000D_Sep 03 11:06:38 Installed: libmpc-1.0.1-3.el7.x86_64_x000D_Sep 03 11:06:38 Installed: libquadmath-4.8.5-36.el7_6.2.x86_64_x000D_Sep 03 11:06:38 Installed: apr-1.4.8-3.el7_4.1.x86_64_x000D_Sep 03 11:06:38 Installed: m4-1.4.16-10.el7.x86_64_x000D_Sep 03 11:06:38 Installed: apr-util-1.5.2-6.el7.x86_64_x000D_Sep 03 11:06:38 Installed: unzip-6.0-19.el7.x86_64_x000D_Sep 03 11:06:38 Installed: patch-2.7.1-10.el7_5.x86_64_x000D_Sep 03 11:06:38 Installed: 1:perl-Error-0.17020-2.el7.noarch_x000D_Sep 03 11:06:38 Installed: boost-system-1.53.0-27.el7.x86_64_x000D_Sep 03 11:06:38 Installed: perl-Thread-Queue-3.02-2.el7.noarch_x000D_Sep 03 11:06:38 Installed: avahi-libs-0.6.31-19.el7.x86_64_x000D_Sep 03 11:06:38 Installed: zip-3.0-11.el7.x86_64_x000D_Sep 03 11:06:38 Installed: boost-thread-1.53.0-27.el7.x86_64_x000D_Sep 03 11:06:38 Installed: libgfortran-4.8.5-36.el7_6.2.x86_64_x000D_Sep 03 11:06:39 Installed: cpp-4.8.5-36.el7_6.2.x86_64_x000D_
У утилиты 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
Конфигурационный файл 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-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 =======================================================================_x000D_PackageKit-yum-plugin.x86_64 : Tell PackageKit to check for updates when yum exits_x000D_fusioninventory-agent-yum-plugin.noarch : Ask FusionInventory agent to send an inventory when yum exits_x000D_kabi-yum-plugins.noarch : The CentOS Linux kernel ABI yum plugin_x000D_yum-plugin-aliases.noarch : Yum plugin to enable aliases filters_x000D_yum-plugin-auto-update-debug-info.noarch : Yum plugin to enable automatic updates to installed debuginfo packages_x000D_yum-plugin-changelog.noarch : Yum plugin for viewing package changelogs before/after updating_x000D_yum-plugin-copr.noarch : Yum plugin to add copr command_x000D_yum-plugin-fastestmirror.noarch : Yum plugin which chooses fastest repository from a mirrorlist_x000D_yum-plugin-filter-data.noarch : Yum plugin to list filter based on package data_x000D_yum-plugin-fs-snapshot.noarch : Yum plugin to automatically snapshot your filesystems during updates_x000D_yum-plugin-keys.noarch : Yum plugin to deal with signing keys_x000D_yum-plugin-list-data.noarch : Yum plugin to list aggregate package data_x000D_yum-plugin-local.noarch : Yum plugin to automatically manage a local repo. of downloaded packages_x000D_yum-plugin-merge-conf.noarch : Yum plugin to merge configuration changes when installing packages_x000D_yum-plugin-ovl.noarch : Yum plugin to work around overlayfs issues_x000D_yum-plugin-post-transaction-actions.noarch : Yum plugin to run arbitrary commands when certain pkgs are acted on_x000D_yum-plugin-pre-transaction-actions.noarch : Yum plugin to run arbitrary commands when certain pkgs are acted on_x000D_yum-plugin-priorities.noarch : plugin to give priorities to packages from different repos_x000D_yum-plugin-protectbase.noarch : Yum plugin to protect packages from certain repositories._x000D_yum-plugin-ps.noarch : Yum plugin to look at processes, with respect to packages_x000D_yum-plugin-remove-with-leaves.noarch : Yum plugin to remove dependencies which are no longer used because of a removal_x000D_yum-plugin-rpm-warm-cache.noarch : Yum plugin to access the rpmdb files early to warm up access to the db_x000D_yum-plugin-show-leaves.noarch : Yum plugin which shows newly installed leaf packages_x000D_yum-plugin-tmprepo.noarch : Yum plugin to add temporary repositories_x000D_yum-plugin-tsflags.noarch : Yum plugin to add tsflags by a commandline option_x000D_yum-plugin-upgrade-helper.noarch : Yum plugin to help upgrades to the next distribution version_x000D_yum-plugin-verify.noarch : Yum plugin to add verify command, and options_x000D_yum-plugin-versionlock.noarch : Yum plugin to lock specified packages from being updated_x000D_
Вы можете установить выбранный плагин командой 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 для работы с репозиториями программ использует протокол 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. В следующей статье мы более подробно поговорим об управлении репозиториями в Yum . Знакомьтесь, пробуйте и используйте yum в своей работе.
Если говорить о том, какие лучшие дистрибутивы Linux мы знаем, то этот список может быть…
Хотя Ubuntu и поставляется со встроенным обозревателем Firefox многие пользователи считают что это не самая…
Что такое Remmina? Remmina — это совершенно бесплатный и свободный клиент так называемого удаленного рабочего…
Как мы знаем, Ubuntu это самая популярная сборка из систем на базе ядра Linux. У…
Выбор ноутбука для каждого пользователя это довольно кропотливый процесс. Люди стараются подобрать ноутбук который будет…
Если вы решили ознакомиться с операционной системой Linux более детально и задались вопросом как установить…