🐹 CentOS 7: Основы работы с установщиком YUM — Yellowdog Updater Modified.

Содержание:

1. Описание программы.
2. Команды.
3. Опции Yum.
4. Пакет Yum-Utils.
5. Конфигурационные файлы.
6. Плагины.
7. Работа через прокси.
8. Примеры использования программы.

8.1. Обновление системы.
8.2. Подключение репозитория.
8.3. Обновление кеша репозиториев.
8.4. Поиск программы в репозиториях.
8.5. Установка пакетов.
8.6. Проверка наличия установленного пакета.
8.7. Просмотр истории действий с пакетами.
8.8. Установка групп пакетов.

9. Оригиналы источников информации.


1. Описание программы.

YUM (Yellowdog Updater Modified) — это пакетный менеджер с открытым исходным кодом, разработанный в компании RedHat для работы с пакетами в формате RPM. С помощью него пользователи и системные администраторы могут устанавливать, удалять и обновлять пакеты в системах, основанных на RedHat.

RPM — рекурсивный акроним RPM Package Manager. RPM — это менеджер пакетов. Ранее раскрывался как RedHat Package Manager — менеджер пакетов Red Hat — формат пакетов программного обеспечения, а также программа, созданная для управления этими пакетами, используемые в ряде Linux-дистрибутивов.

Программа распространяется под лицензией GPL (General Public License) и любой пользователь может получить доступ к исходникам или даже улучшить код. Пакетный менеджер поддерживает подключение сторонних репозиториев и разрешение зависимостей для установки пакетов.

Для улучшения работы Yum могут быть загружены различные плагины.

Утилита работает в консоли, а ее синтаксис очень прост:

# yum опции команда имя_пакета

Сначала рассмотрим основные команды пакетного менеджера:

  • install — установить пакет;
  • update — обновить пакет или систему;
  • update-to — обновить пакет до версии;
  • update-minimal — обновлять только исправления ошибок;
  • upgrade — полное обновление с обработкой дополнительных возможностей пакетов и их зависимостей;
  • distro-sync — синхронизировать состояния системы или пакета с репозиторием, например, если была установлена версия пакета 4, а в репозитории только 3, то будет выполнено понижение версии;
  • remove — удалить пакет;
  • autoremove — очистить больше ненужные пакеты;
  • list — показать список пакетов;
  • provides — поиск пакета по функциональности;
  • search — поиск пакета по имени;
  • info — информация о пакете;
  • clean — очистить кэш пакетного менеджера;
  • groups — управление группами пакетов;
  • reinstall — переустановить пакет;
  • downgrade — понизить версию пакета;
  • deplist — вывести все зависимости пакета;
  • repolist — отобразить список репозиториев;
  • fssnapshot — управление снимками состояния системы;
  • check — проверить базу данных пакетов на целостность.

Еще рассмотрим дополнительные опции, которые могут вам понадобиться когда будет выполняться установка rpm CentOS 7:

  • -y — всегда отвечать на вопросы утилиты утвердительно;
  • -q — минимальный вывод;
  • -v — максимальный вывод;
  • — работать из кэша;
  • -x — игнорировать пакет.

Руководство пользователя:

# man rpm

2. Команды.

Отображение команд и опций:

# yum help

Список названий пакетов из репозиторий:

# yum list

Список всех доступных пакетов:

# yum list available

Список всех установленных пакетов:

# yum list installed

Установлен ли указанный пакет:

# yum list installed httpd

Список установленных и доступных пакетов:

# yum list all

Список пакетов, относящихся к ядру:

# yum list kernel

Отображение информации о пакете:

# yum info httpd

Список зависимостей и необходимых пакетов:

# yum deplist httpd

Найти пакет, который содержит файл:

# yum provides "*bin/top"

Поиск пакета по имени и описанию:

# yum search httpd

# yum search yum

Получить информацию о доступных обновлениях безопасности:

# yum updateinfo list security

Вывести список групп:

# yum grouplist

Вывести описание и содержимое группы:

# yum groupinfo "Basic Web Server"

Установка группы пакетов «Basic Web Server»:

# yum groupinstall "Basic Web Server"

Удаление группы:

# yum groupremove "Basic Web Server"

Проверка на доступные обновления:

# yum check-update

Список подключенных репозиториев:

# yum repolist

Информация об определенном репозитории:

# yum repoinfo epel

Информация о пакетах в указанном репозитории:

# yum repo-pkgs epel list

Установить все пакеты из репозитория:

# yum repo-pkgs reponame install

Удалить пакеты установленные из репозитория:

# yum repo-pkgs reponame remove

Создать кэш:

# yum makecache

Проверить локальную базу rpm (поддерживаются параметры dependencies, duplicates, obsoletes, provides):

# yum check

# yum check dependencies

Просмотр yum истории (вывод списка транзакций):

# yum history list

Просмотр информации определенной транзакции (установленные пакеты, установленные зависимости):

# yum history info 9

Отмена транзакции:

# yum history undo 9

Повторить:

# yum history redo 9

Дополнительно можно просмотреть лог:

# cat /var/log/yum.log

Удалить пакеты сохраненные в кэше:

# yum clean packages

Удалить все пакеты и метаданные:

# yum clean all

Установить пакет:

# yum install httpd

Удаление пакета:

# yum remove httpd

Обновить пакет:

# yum update httpd

Обновить все пакеты:

# yum update

Обновить до определенной версии:

# yum update-to

Установить из локальной директории (поиск / установка зависимостей будут произведены из подключенных репозиториев):

# yum localinstall httpd.rpm

или

# yum install httpd.rpm

Установить с http:

# yum localinstall http://server/repo/httpd.rpm

Откатиться к предыдущей версии пакета:

# yum downgrade

Переустановка пакета (восстановление удаленных файлов):

# yum reinstall httpd

Удаление ненужных более пакетов:

# yum autoremove

Создание локальных репозиториев (createrepo ставится отдельно):

# createrepo

Установка обновлений по расписанию (yum-cron устанавливается отдельно):

# yum-cron

3. Опции Yum.

Ответить «yes» при запросе, -y:

# yum update -y

Ответить «no» при запросе:

--assumeno

Использовать Yum без плагинов:

--noplugins

или отключить определенный плагин:

--disableplugin=fastestmirror

Включить плагины, которые установлены, но отключены:

# yum --enableplugin=ps

Включить отключенный репозиторий:

# yum update -y --enablerepo=epel

Отключить репозиторий:

# yum update -y --disablerepo=epel

Скачать пакеты, но не устанавливать (на Centos 7 x86_64 будут скачаны в ‘/var/cache/yum/x86_64/7/base/packages/‘):

# yum install httpd --downloadonly

4. Пакет Yum-Utils.

Следующие команды доступны после установки пакета yum-utils:

Найти из какого репозитория установлен пакет:

# find-repos-of-install httpd

Найти процессы, пакеты которых обновлены и требуют рестарта:

# needs-restarting

Запрос к репозиторию, узнать зависимости пакета, не устанавливая его:

# repoquery --requires --resolve httpd

Синхронизировать yum репозиторий updates в локальную директорию repo1:

# reposync -p repo1 --repoid=updates

Проверить локальный репозиторий на целостность:

# verifytree URL

Завершить транзакции:

# yum-complete-transaction

Установить необходимые зависимости для сборки RPM пакета:

# yum-builddep

Управление конфигурационными опциями и репозиториями yum:

# yum-config-manager

Запрос к локальной базе yum, отображение информации о пакете (использованная команда, контрольная сумма, URL с которого был установлен и другое):

# yumdb info httpd

Скачать rpm пакеты из репозитория:

# yumdownloader

Скачать src.rpm пакет из репозитория (должен быть подключен соответствующий репозиторий, например в ‘/etc/yum.repos.d/CentOS-Sources.repo‘ в CentOS 7):

# yumdownloader --source php

5. Конфигурационные файлы Yum и их расположение.

Основной конфигурационный файл:

/etc/yum.conf

Директория, с конфигурациями (например, yum плагины):

/etc/yum/

Директория, содержащая информацию о репозиториях:

/etc/yum.repos.d/

Некоторые опции yum.conf:

Директория, где yum хранит кэш и файлы базы (по умолчанию ‘/var/cache/yum‘):

cachedir=/var/cache/yum/$basearch/$releasever

Определяет должен или нет yum хранить кэш заголовков и пакетов после успешной установки. Значения: 0 или 1. (по умолчанию 1):

keepcache=1

Уровень вывода отладочных сообщений. Значения: 1-10 (по умолчанию 2):

debuglevel=2

Лог файл (по умолчанию ‘/var/log/yum.log‘):

logfile=/var/log/yum.log

Обновлять устаревшие пакеты:

obsoletes=1

Проверка подписи пакетов. Значения: 0 или 1 (по умолчанию 1):

gpgcheck=1

Включение плагинов. Значения: 0 или 1 (по умолчанию 1):

plugins=1

6. Плагины.

Некоторые полезные плагины:

Добавляет опцию командной строки для просмотра ченжлога перед/после обновлениями:

yum-plugin-changelog

Выбирает более быстрые репозитории из списка зеркал:

yum-plugin-fastestmirror

Добавляет команды keys, keys-info, keys-data, keys-remove, которые позволяют работать с ключами:

yum-plugin-keys

Блокировать указанные пакеты от обновления, команда yum versionlock:

yum-plugin-versionlock

Добавление команд yum verify-all, verify-multilib, verify-rpm для проверки контрольных сумм пакетов:

yum-plugin-verify

7. Работа через прокси.

Для всех пользователей, добавить в секцию [main] в ‘/etc/yum.conf‘:

proxy="http://server:3128"

При необходимости указать пароль, добавить:

proxy_proxy_username=user
proxy_password=pass

Указать прокси для отдельного пользователя:

# export http_proxy="http://server:3128"

8. Пример использования программы.

8.1. Обновление системы.

Обновить все пакеты операционной системы можно с помощью вот этой команды:

# yum -y update && yum -y upgrade

Чем отличаются команды yum update и yum upgrade?

Разница в том, что при обновлении пакетов update сохраняет устаревшие версии пакетов, то есть при установке новой версии пакета, старая также остается в системе, а upgrade не сохраняет предыдущих версий, то есть происходит полное замещение.

8.2. Подключение репозитория.

К примеру нам потребовалось установить программу Postfix 3.

В начале подключим репозиторий с ней, путем создания файла:

# mcedit /etc/yum.repos.d/gf.repo

И добавлением текста в него:

8.3. Обновление кеша репозиториев.

Теперь обновим кэш YUM:

# yum clean all

Ответ:

# yum makecache fast

Ответ:

8.4. Поиск программы в репозиториях.

Посмотрим, что есть в репозитории вообще полезного по Postfix 3:

# yum search postfix3

Ответ:

8.5. Установка пакетов.

Заказываем установку того, что нас заинтересовало:

# yum -y install postfix3 postfix3-ldap postfix3-mysql postfix3-mysql

Проверим версию установленной программы Postfix 3:

# rpm -qi postfix3

Ответ:

8.6. Проверка наличия установленного пакета.

# rpm -q postfix3 -last

Ответ:

8.7. Просмотр истории действий с пакетами.

Для этих же целей мы можем воспользоваться командой yum и:

# yum history package postfix3

8.8. Установка групп пакетов.

Существует способ установки всех программ, необходимых для CentOS 7, с помощью команды yum groupinstall.

  • groupinstall — используется для установки пакетов, объеденных в определенные группы по типам.

Ссылка на инструкцию: «CentOS 7: Установка групп пакетов с помощью Yum».

9. Оригиналы источников информации.

  1. computingforgeeks.com «Installing postfix3 on CentOS 7».
  2. losst.ru «Установка пакетов в CentOS 7».
  3. habr.com «YUM, шпаргалка».
  4. ru.wikipedia.org «RPM».