Шпаргалка по менеджеру пакетів 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: історія і логи установки / видалення пакетів
  • Додаткові корисні параметри yum
  • Конфігураційний файл /etc/yum.conf
  • Корисні плагіни yum
  • Використання yum через проксі

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 not 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 f ilesystems 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 в своїй роботі.