У цій статті ми розглянемо менеджер пакетів Yum, який дозволяє керувати установкою, видаленням і оновленням програм (.RPM-пакетів), автоматично дозволяти залежності, управляти додатковими репозиторіями. Дана стаття про Yum повинна перш за все бути цікава як шпаргалка для початківців адміністраторів Linux.
Нім (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
Якщо при виплненіі команд yum ви отримуєте помилку 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-fasttestmirror – плагін службовець для виміру швидкості дзеркал і надання найшвидшого для установки пакетів.
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. У наступній статті ми більш детально поговоримо про управління репозиторіями в Yum. Знайомтеся, пробуйте і використовуйте yum в своїй роботі.