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