У цій статті ми розглянемо менеджер пакетів 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 info отримати інформацію про пакет

Щоб встановити пакет використовується команда 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 deplist перевірка залежності пакетів

Знайти пакет на ім’я або опису:

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"

yum groupinfo

При перевірці ми бачимо, що будуть встановлені набір пакети і сервіси, для веб-сервера.

І ще один корисний груповий лист «System Administration Tools»:

yum groupinfo "System Administration Tools”

групи пакетів в yum

Як бачимо в даному листі містяться пакети, які будуть корисні для моніторингу та налагодження.

Встановити груповий лист можна командою:

yum groupinstall "System Administration Tools"

Встановлені пакети будуть в окремому блоці «Installed Groups»:

yum groupinstall "Засоби системного адміністрування"

Yum: історія і логи установки / видалення пакетів

Ви можете вивести інформацію про історію установки пакетів yum (списку транзакцій) за допомогою команди:

yum history list

Висновок складається з 5 стовпців, в першому виводиться ID транзакції за яким можна подивитися всю інформацію (встановлені пакети, залежно):

наприклад:

yum history info 10

yum history list - історія установки пакетів

Більш того, можна скасувати дану транзакцію командою:

yum history undo 10

У моєму випадку віддалилося б 4 пакети:

yum history undo - видалення транзацкціі установки пакета

Так само всю інформацію про історію установки / видалення пакетів менеджером 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 versionlock - блокування пакета від поновлення

Якщо вам в якийсь момент часу не потрібно використовувати певний плагін, ви його можете відключити, додавши префікс при виклику 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, знайшов дзеркала з яких швидкість буде вище:

yum через проксі сервер

Якщо потрібно використовувати проксі тільки для деяких репозиторіїв, не потрібно правити файл /etc/yum.conf, а настройки проксі вказати в конфігураційному файлі сховища /etc/yum.repos.d/ваш_конфиг.repo.

Отже, в цій статті ми розглянули базові можливості менеджера rpm пакету yum в Linux CentOS / RHEL. У наступній статті ми більш детально поговоримо про управління репозиторіями в Yum. Знайомтеся, пробуйте і використовуйте yum в своїй роботі.

Leave a Reply

Your email address will not be published. Required fields are marked *