Найдено на http://hrafn.me/articles/package-management-in-rhel6-yum/ ксерокопировано мне в блог, на память :)
Управление пакетами в RHEL6. Yum
Yum — это менеджер пакетов Red Hat, который умеет запрашивать информацию о пакетах, получать пакеты из репозиториев, устанавливать и удалять их, используя автоматическое разрешение зависимостей, а также обновлять целиком систему до последних версий пакетов. Yum выполняет автоматическое разрешение зависимостей для пакетов, которые обновляются, устанавливаются или удаляются, и, таким образом, позволяет автоматически определять, получать и устанавливать все доступные по зависимостям пакеты. Для Yum можно настроить ноые, дополнительные репозитории, или, по другому, источники пакетов, кроме того, для него доступны многие дополнения, которые улучшают и расширяют его возможности. Yum позволяет выполнять многие из задач, которые выполняет RPM; кроме того, многие из опции командной строки у него также подобны. Yum обеспечивает простое и легкое управление пакетами на одной машине или же на группе машин.######################### Важно #########################
Безопасное управление пакетами с помощью подписей GPG
Yum обеспечивает безопасное управление пакетами путем включения проверки сигнатур GPG для пакетов, подписанных с помощью GPG, дл всех репозиториев пакетов или для отдельных репозиториев. В случае включения проверки сигнатур, Yum откажется устанавливать любые пакеты, не подписанные корректным ключом для данного репозитория. Это означает, что можно доверять пакетам RPM, которые скачиваются и устанавливаются на машине в том случае, если они получены из доверенных источников, например, Red Hat, и они не были изменены в процессе передачи.
#########################################################
Yum также позволяет легко создавать собственные репозитории RPM-пакетов для скачивания и установки их на других машинах.
Изучение Yum — стоящее вложение, поскольку это часто наиболее быстрый способ выполнения задач по системному администрированию, и Yum обеспечивает возможности, превышающие таковые, предлагаемые графическими инструментами управления пакетами PackageKit.
1.1 Проверка обновлений и обновление пакетов
1.1.1 Проверка наличия обновлений
Вы можете использовать команду yum check-update для просмотра доступных обновлений для вашей системы.######################### Заметка #########################
Yum и привилегии суперпользователя !!!
Необходимо иметь права суперпользователя, чтобы использовать yum для установки, обновления или удаления пакетов. Все примеры в этом разделе подразумевают, что права суперпользователя уже получены с помощью команд su либо sudo.
#########################################################
# yum check-update Loaded plugins: presto, refresh-packagekit, security PackageKit.x86_64 0.5.8-2.el6 rhel PackageKit-glib.x86_64 0.5.8-2.el6 rhel PackageKit-yum.x86_64 0.5.8-2.el6 rhel PackageKit-yum-plugin.x86_64 0.5.8-2.el6 rhel glibc.x86_64 2.11.90-20.el6 rhel glibc-common.x86_64 2.10.90-22 rhel kernel.x86_64 2.6.31-14.el6 rhel kernel-firmware.noarch 2.6.31-14.el6 rhel rpm.x86_64 4.7.1-5.el6 rhel rpm-libs.x86_64 4.7.1-5.el6 rhel rpm-python.x86_64 4.7.1-5.el6 rhel udev.x86_64 147-2.15.el6 rhel yum.noarch 3.2.24-4.el6 rhel
- PackageKit — имя пакета
- х86_64 — архитектура процессора, под которую пакет был собран
- 0.5.8 — версия обновленного пакета, который будет установлен
- rhel — репозиторий, в котором обновленный пакет расположен
1.1.2 Обновление пакетов
Для обновления можно выбрать одиночный пакет, множество пакетов или же все пакеты сразу. Если какие-либо зависимости пакетов, выбранных для обновления, сами имеют более свежие версии, они также будут обновлены. Для обновления одного пакета введите команду yum update <имя_пакета>:# yum update udev Loaded plugins: presto, refresh-packagekit, rhnplugin, security Setting up Update Process Resolving Dependencies --> Running transaction check ---> Package udev.x86_64 0:147-2.15.el6 set to be updated --> Finished Dependency Resolution Dependencies Resolved =========================================================================== Package Arch Version Repository Size =========================================================================== Updating: udev x86_64 147-2.15.el6 rhel 337 k Transaction Summary =========================================================================== Install 0 Package(s) Upgrade 1 Package(s) Total download size: 337 k Is this ok [y/N]:
- Loaded plugins: presto, refresh-packagekit, rhnplugin, security — yum всегда сообщает, какие дополнения установлены и включены. В данном случае, yum использует дополнения presto, refresh-packagekit и security.
- kernel.x86_64 — вы можете безопасно скачать и установить новые ядра.
######################### Заметка #########################
Обновление и установка ядра с помощью Yum
yum всегда УСТАНАВЛИВАЕТ новое ядро, подобно тому, как RPM устанавливает новое ялро с помощью команды rpm -i kernel. Другими словами, нет необходимости беспокоиться о разнице между установкой и обновлением пакета ядра при использовании yum: все будет сделано правильно независимо от того, используется ли команда yum update, или же yum install.
С другой стороны, при использовании RPM, важно использовать команду rpm -i kernel (которая установит новое ядро) вместо rpm -u kernel (которая заместит текущее ядро).
######################################################### - yum показывает информацию об обновлени, а затем делает запрос о необходимости выполнить обновление; yum по умолчанию работает в интерактивном режиме. Если заранее известно, какие транзакции yum планирует выполнить, можно использовать опцию -y, которая автоматически отвечает yes на все вопросы, которые yum может задать (в этом случае он запускается не-интерактивно). Как бы то ни было, всегда можно проверить, какие изменения yum планирует произвести в системе, поэтому можно легко разрешить любую проблемы, которая может возникнуть. Если транзакция прошла неправильно, можно посмотреть лог транзакции с помощью команды cat /var/log/yum.log. Самые последние транзакции представлены в конце файла.
Для обновления всех пакетов и их зависимостей просто введите yum update (без аргументов):
# yum update
1.1.3 Обновление пакетов, связанное с безопасностью
Выяснение, какие пакеты имеют обновления, связанные с безопасностью, и установка таких обновлений бытсро и легко — очень важно. Для этой цели Yum предлагает отдельное дополнение. Плагин security расширяет команду yum с помощью набора очень полезных команд, подкоманд и опции, ориентированных на безопасность.1.1.4 Изменение сохраненных конфигурационных файлов
Установленные пакетами файлы конфигурации будут неизбежно изменены в процессе эксплуатации Red Hat Enterprise Linux. RPM, который Yum использует для выполнения изменений в системе, предоставляет механизм для гарантии своей сохранности.1.2 Пакеты и группы пакетов
1.2.1 Поиск, перечисление и отображение информации о пакете
Можно искать пакеты по имени, подписи и описанию, используя команду yum search <выражение>. yum отобразит список соответствий для каждого выражения.# yum search meld kompare Loaded plugins: presto, refresh-packagekit, rhnplugin, security ============================ Matched: kompare ============================= kdesdk.x86_64 : The KDE Software Development Kit (SDK) Warning: No matches found for: meld
Перечень пакетов
yum list и связанные с ним команды предоставляет информацию о пакетах, группах пакетов и репозиториях.
######################### Полезно #########################
Фильтрация результатов с помощью регулярных выражений
Все различные команды Yum позволяют фильтровать результаты путем добавления одного и нескольких регулярных выражений в качестве аргументов. Глобальные выражения — это обычная строка символов, которые содержат один или множество wildcard-символов * (кототый соответветствует нескольким любым символам) и ? (который соответствует одному любому символу). Необходимо использовать экранирование обеих символов для передачи их в качестве аргумента команде yum. Если это не сделать, bash будет интерпретировать глобальное выражение в качестве расширения имени пути, и потенциально передаст все файлы в текущей директории в качестве соответствия команде yum, но это не то, что требуется. Напротив, необходимо передать сами регулярные выражения yum, что можно сделать следующим образом:
- экранируя сиволы
- заключить выражение целиком в двойные или одинарные ковычки
# yum list available gstreamer\*plugin\* Loaded plugins: presto, refresh-packagekit, rhnplugin, security Available Packages gstreamer-plugins-bad-free.i686 0.10.17-4.el6 rhel gstreamer-plugins-base.i686 0.10.26-1.el6 rhel gstreamer-plugins-base-devel.i686 0.10.26-1.el6 rhel gstreamer-plugins-base-devel.x86_64 0.10.26-1.el6 rhel gstreamer-plugins-good.i686 0.10.18-1.el6 rhel
# yum list installed "krb?-*" Loaded plugins: presto, refresh-packagekit, rhnplugin, security Installed Packages krb5-libs.x86_64 1.8.1-3.el6 @rhel krb5-workstation.x86_64 1.8.1-3.el6 @rhel
— yum list <регулярное_выражение> — показывает информацию об установленных или доступных пакетах, соответствующих регулярному выражению.
# yum list abrt-addon\* abrt-plugin\* Loaded plugins: presto, refresh-packagekit, rhnplugin, security Installed Packages abrt-addon-ccpp.x86_64 1.0.7-5.el6 @rhel abrt-addon-kerneloops.x86_64 1.0.7-5.el6 @rhel abrt-addon-python.x86_64 1.0.7-5.el6 @rhel abrt-plugin-bugzilla.x86_64 1.0.7-5.el6 @rhel abrt-plugin-logger.x86_64 1.0.7-5.el6 @rhel abrt-plugin-sosreport.x86_64 1.0.7-5.el6 @rhel abrt-plugin-ticketuploader.x86_64 1.0.7-5.el6 @rhel
— yum list installed — список всех пакетов, установленных в системе. Колонка с правой стороны показывает репозиторий, из которого пакет был получен.
— yum list available — список всех доступных пакетов во всех включеных репозиториях
— yum grouplist — список всех групп пакетов
— yum repolist — список ID репозиториев, имя и количество пакетов, которые предоставлены для каждого включенного репозитория.
Отображение информации о пакете
yum info <имя_пакета> отображает информацию об одном или множестве пакетов (регулярные выражения в данном случае также работают):
# yum info abrt Loaded plugins: presto, refresh-packagekit, rhnplugin, security Installed Packages Name : abrt Arch : x86_64 Version : 1.0.7 Release : 5.el6 Size : 578 k Repo : installed From repo : rhel Summary : Automatic bug detection and reporting tool URL : https://fedorahosted.org/abrt/ License : GPLv2+ Description: abrt is a tool to help users to detect defects in applications : and to create a bug report with all informations needed by : maintainer to fix it. It uses plugin system to extend its : functionality.
yumdb info <имя_пакета> может быть использован для запроса к базе данных Yum для получения альтернативной и полезной инормации о пакете, включая контрольную сумму пакета (и алгоритм, использующийся для ее создания, например, SHA-256), команды, набранной в командной строке, вызванной для установки пакета и причины, по которым пакет был установлен в системе (где user означает, что он был установлен пользователем, а dep — что был установлен в качестве зависимости:
# yumdb info yum yum-3.2.27-4.el6.noarch checksum_data = 15c8eaf583fabad6974a35b9f6c6527e49362fe4e23baec1682ef51a598e4abb checksum_type = sha256 command_line = update from_repo = rhel from_repo_revision = 1271991599 from_repo_timestamp = 1271991721 reason = user releasever = 6
И наконец, команда yum history, новая для Red Hat Enterprise Linux 6, может быть использована для показа временных отметок транзакций Yum, даты и времени, когда они произошли, количество неисправных пакетов, были ли транзакции успешными или были прерваны, и изменилась ли база данных RPM между транзакциями. Обратитесь к разделу history в man yum за подробностями.
1.2.2 Установка
Можно установить пакет и все его неустановленные зависимости введя:# yum install <имя_пакета>
Если устанавливаются пакеты на многобиблиотечной системе, например, AMD64 или Intel64, можно указать архитектуру пакета, добавив .arch к имени пакета:
# yum install sqlite2.i586
# yum install audacious-plugins-\*
# yum install /usr/sbin/named
Что делать, если необходимо установить пакет, который содержит бинарный файл named, но непонятно, в какой директории, /bin или /sbin, этот файл находится? В этой ситуации, можно передать yum provides глобальное выражение:
# yum provides "*bin/named" Loaded plugins: presto, refresh-packagekit, rhnplugin, security 32:bind-9.7.0-4.P1.el6.x86_64 : The Berkeley Internet Name Domain (BIND) : DNS (Domain Name System) server Repo : rhel Matched from: Filename : /usr/sbin/named ~]# yum install bind
yum provides подобен yum whatprovides
########################################################
######################## Полезно #######################
yum provides/whatprovides и глобальные выражения
yum provides «*/<имя_файла>» — общий и полезный хак для быстрого поиска пакета, содержащего указанное имя файла
########################################################
Установка группы пакетов
Группа пакетов подобна пакету: она не используется сама по себе, но ее установка тащит группу зависимых пакетов, которые обеспечивают конечный результат. Группа пакетов имеет имя и ID группы. Команда yum grouplist -v показывает имена всех групп пакетов и, один за другим, ID группы в круглых скобках. ID группы это всегда термин в паре круглых скобок, например, как kde-desktop и kde-software-development в этом примере:
####################### Внимание #######################
Не все пакеты, использующиеся в примерах, доступны в RHN.
Некоторые из пакетов — или групп пакетов — запрашиваемые и установленные с помощью Yum в этом разделе могут быть не доступны в Red Hat Network. Их использование в этих примерах — просто демонстрация работы Yum. Заметьте, что получение и установка программного обеспечения из пепроверенных или недоверенных источников, отличных от Red Hat Network, может привести к рискам и проблемам безопасности, стабильности и совместимости.
########################################################
# yum -v grouplist kde\* KDE (K Desktop Environment) (kde-desktop) KDE Software Development (kde-software-development)
# yum groupinstall "KDE (K Desktop Environment)"
# yum groupinstall kde-desktop
# yum install @kde-desktop
1.2.3 Удаление
yum remove <имя_пакета> деинсталлирует пакет, также как и пакеты, которые от него зависят. Как можно устанавливать несколько пакетов за раз, так можно и удалять их так же:yum remove foo bar bazПодобно install, remove может принимать такие же аргументы:
- имена пакетов
- глобальные выражения
- списки файлов
- предоставленные пакеты
Удаление пакета в том случае, когда другие пакеты зависят от него
Yum не может удалить пакет, не удаляя при этом пакеты, крые зависят от него. Этот тип операции может быть выполнен с помощью RPM, но не рассматривается, и потенциально может привести систему в неработоспособное состояние или же послужить причиной странного поведения приложений или же их краха.
########################################################
Удаление группы пакетов
Можно удалить группу пакетов, используя синтаксис, соответствующий синтаксису install.
# yum groupremove "KDE (K Desktop Environment)" ~]# yum groupremove kde-desktop ~]# yum remove @kde-desktop
Умное удаление группы пакетов
Когда вы говорите yum удалить группу пакетов, он удалит каждый пакет в этой группе, даже если эти пакеты являются членами другой группы пакетов или зависимостями для других установленных пакетов. Как бы то ни было, yum можно указать удалять только те пакеты, которые не требуются каким-либо другим пакетам или группам, добавив директиву groupremove_leaf_only=1 в секцию [main] файла /etc/yum.conf.
#######################################################
1.3 Настройка Yum и репозиториев
В этом разделе показано, как:- установить глобальные опции Yum, отредактировав сецию [main] в файле конфигурации /etc/yum.conf
- установить опции для отдельных репозиториев, отредактировав секции [repository] в /etc/yum.conf и файлы .repo в каталоге /etc/yum.repos.d/
- использовать переменные Yum в /etc/yum.conf и файлы в /etc/yum.repos.d/ так, чтобы динамические значения версий и архитектуры обрабатывались корректно
- настроить ваш собственный репозиторий Yum
1.3.1 Установка опций [main]
Файл /etc/yum.conf содержит ровно одну секцию [main]. Можно добавлять дополнительные опции в эту секцию в начале /etc/yum.conf. Некоторые из пар ключ-значение в этой секции влияют на то, как будет действовать yum; другие влияют на работу репозиториев. Лучшим источником информации по всем опциям Yum является разделы [main] OPTIONS и [repository] OPTIONS в man yum.conf.Ниже показан пример файла конфигурации /etc/yum.conf:
[main] cachedir=/var/cache/yum/$basearch/$releasever keepcache=0 debuglevel=2 logfile=/var/log/yum.log exactarch=1 obsoletes=1 gpgcheck=1 plugins=1 installonly_limit=3 [comments abridged] # PUT YOUR REPOS HERE OR IN separate files named file.repo # in /etc/yum.repos.d
assumeyes=<значение>
...где <значение> одно из:
0 — yum будет запрашивать подтверждение критических действий для выполнения. Установлено по умолчанию.
1 — Не запрашивать подтверждение для критически важных действий. Если установлеон это значение, yum ведет себя подобно тому, как если было бы использовалась опция -y.
cachedir=/var/cache/yum/$basearch/$releasever0 — yum будет запрашивать подтверждение критических действий для выполнения. Установлено по умолчанию.
1 — Не запрашивать подтверждение для критически важных действий. Если установлеон это значение, yum ведет себя подобно тому, как если было бы использовалась опция -y.
Эта опция указывает каталог, в котором Yum будет хранить свой кэш и базу данных файлов. По умолчанию, каталог кэша /var/cache/yum/ $basearch/$releasever.
debuglevel=значение...где <значение> — это число между 1 и 10. Установка высокого значения приводит к отображению более детального вывода отладочной информации. debuglevel=0 отключает вывод отладки, тогда как debuglevel=2 — значение по умолчанию.
exactarch=<значение>...где <значение> — одно из:
0 — не использовать точное значение архитектуры при обновлении пакетов
1 — принимать во внимание точную архитектуру при обновлении пакетов. При этой установке yum не сможет установить пакет i686 для обновления пакета i386, уже установленного в системе. Это занчение установлено по умолчанию.
exclude=<имя_пакета> [несколько_имен_пакетов]0 — не использовать точное значение архитектуры при обновлении пакетов
1 — принимать во внимание точную архитектуру при обновлении пакетов. При этой установке yum не сможет установить пакет i686 для обновления пакета i386, уже установленного в системе. Это занчение установлено по умолчанию.
Эта опция позволяет исключить пакеты по ключевым словам из процесса установки/обновления. Список из нескольких пакетов для исключения может быть заключен в ковычки с пробелом в качестве разделителя списка. Позволено использование глобальных выражений оболочки (например, * и ?).
gpgcheck=<значение>...где <значение> одно из:
0 — отключить проверку сигнатуры GPG для пакетов из всех репозиториев, включая локальную установку пакетов.
1 — Включить проверку сигнатуры GPG для всех пакетов во всех репозиториях, включая локальную установку пакетов. gpgcheck=1 установлено по умолчанию, таким образом, проверяются сигнатуры всех пакетов.
0 — отключить проверку сигнатуры GPG для пакетов из всех репозиториев, включая локальную установку пакетов.
1 — Включить проверку сигнатуры GPG для всех пакетов во всех репозиториях, включая локальную установку пакетов. gpgcheck=1 установлено по умолчанию, таким образом, проверяются сигнатуры всех пакетов.
Если эта опция установлена в секции [main] в файле /etc/yum.conf, она устанавливает правило проверки для всех репозиториев. С другой стороны, можно также отпределить gpgcheck=<значение> для конкретного репозитория; т.е. можно включить проверку для одного репозитория, отключив при этом для другого. Установка gpgcheck=<значение> для отдельного репозитория с соответствующем файле .repo переопределяет занчение по умолчанию, представленное в /etc/yum.conf.
groupremove_leaf_only=<значение>...где <значение> одно из:
0 — yum не должен проверять для каждого пакета, которые удаляется при удалении группы пакетов. С этим значением yum удаляет все пакеты в группе пакетов, не обращая внимания, требуются ли эти пакеты другим пакетам ли группам. groupremove_leaf_only=0 — это значение по умолчанию.
1 — yum будет проверять зависимости каждого пакета при удалении группы пакетов, и удалит только те пакеты, которые не требуются ли какому-либо еще пакету или группе.
installonlypkgs=<разделенный><пробелами><список><пакетов>0 — yum не должен проверять для каждого пакета, которые удаляется при удалении группы пакетов. С этим значением yum удаляет все пакеты в группе пакетов, не обращая внимания, требуются ли эти пакеты другим пакетам ли группам. groupremove_leaf_only=0 — это значение по умолчанию.
1 — yum будет проверять зависимости каждого пакета при удалении группы пакетов, и удалит только те пакеты, которые не требуются ли какому-либо еще пакету или группе.
Здесь есть возможность предоставить разделенный пробелами список пакетов, которые yum может установить, но никогда не будет обновлять. Обратитесь к man yum.conf за списком всех пакетов, которые подпадают под это правило по умолчанию. Если добавить директиву installonlypkgs в /etc/yum.conf, необходимо убедиться, что перечислены все пакеты, которые будут только устанавливаться, включая любые из перечисленных в разделе installonlypkgs man yum.conf. В частности, пакеты ядра всегда должны быть перечислены в installonlypkgs (они там по умолчанию) и значение installonly_limit должно быть всегда больше 2, чтобы резервная копия ядра всегда была доступна, если умолчальное не сможет загрузиться.
installonly_limit=<значение>...где <значение> — число, определяющее максимальное количество версий, которые могут быть установленны одновременно для любого единичного пакета, перечисленного в директиве installonlypkgs. Значение по умолчанию для директивы installonlypkgs включает несколько различных пакетов ядер, так что, убедитесь, что изменение значения installonly_limit также повлияет на максимальное количество установленных версий любого одного пакета ядра. Значение по умолчанию, указанное в /etc/yum.conf — installonly_limit=3, и не рекомендуется его уменьшать, особенно делать ниже 2.
keppcache=<значение>...где <значение> одно из:
0 — не сохранять кэш заголовков и пакетов после успешной установки. Это значение по умолчанию.
1 — Сохранять кэш после успешной установки.
logfile=/var/log/yum.log0 — не сохранять кэш заголовков и пакетов после успешной установки. Это значение по умолчанию.
1 — Сохранять кэш после успешной установки.
Эта опция указавает, куда yum будет отправлять вывод логов. По умолчанию, yum хранит информацию в /var/log/yum.log.
multilib_policy=<значение>...где <значение> одно из:
best — установить наиболее подходящую архитектуру для этой системы. Например, установка этого значения на системе AMD64 приведет к тому, что yum установит 64-битную версии всех пакетов.
all — всегда устанавливать каждую возможную архитектуру для каждого пакета. Например, при установке этого значения на системе AMD64, yum установит как i586, так и AMD64 версии пакета, если они оба доступны.
obsoletes=<значение>best — установить наиболее подходящую архитектуру для этой системы. Например, установка этого значения на системе AMD64 приведет к тому, что yum установит 64-битную версии всех пакетов.
all — всегда устанавливать каждую возможную архитектуру для каждого пакета. Например, при установке этого значения на системе AMD64, yum установит как i586, так и AMD64 версии пакета, если они оба доступны.
...где <значение> одно из:
0 — отключает устаревшую логику обработки при выполнении обвноления
1 — включает устаревшую логику обработки при выполнении обновления. Когда один пакет заявляет в своем spec-файле, что он устарел по отношению к другому пакету, более аоздний пакет будет замещен пакетом разработчика, если пакет разработчика установлен. Устаревание объявляется, например, когда пакет переименовывается. obsoletes=1 — значение по умолчанию.
plugins=<значение>0 — отключает устаревшую логику обработки при выполнении обвноления
1 — включает устаревшую логику обработки при выполнении обновления. Когда один пакет заявляет в своем spec-файле, что он устарел по отношению к другому пакету, более аоздний пакет будет замещен пакетом разработчика, если пакет разработчика установлен. Устаревание объявляется, например, когда пакет переименовывается. obsoletes=1 — значение по умолчанию.
...где <значение> одно из:
0 — Отключает все дополнения Yum глобально.
######################### Важно ########################
0 — Отключает все дополнения Yum глобально.
######################### Важно ########################
Отключение всех дополнений не благоразумно !!!
Отключение всех дополнений не благоразумно, поскольку некоторые дополнения обеспечивают важные для Yum сервисы. В частности, rhnplugin позволяет подключаться к Red Hat Network, а дополнение security позволяет системному администратору легко обновлять систему с помощью (иногда критических) обновлений безопасности. Глобальное отключение дополнений представлена в качестве удобной опции и, в основном, рекомендуется для определения потенциальных проблем с Yum.
########################################################
1 — Включает все дополнения глобально. С этим значением все еще можно отключить конкретное дополнение, установив enabled=0 в конфигурационном файле этого дополнения.
reposdir=Отключение всех дополнений не благоразумно, поскольку некоторые дополнения обеспечивают важные для Yum сервисы. В частности, rhnplugin позволяет подключаться к Red Hat Network, а дополнение security позволяет системному администратору легко обновлять систему с помощью (иногда критических) обновлений безопасности. Глобальное отключение дополнений представлена в качестве удобной опции и, в основном, рекомендуется для определения потенциальных проблем с Yum.
########################################################
1 — Включает все дополнения глобально. С этим значением все еще можно отключить конкретное дополнение, установив enabled=0 в конфигурационном файле этого дополнения.
Эта опция позволяет указать каталог, в котором будут расположены файлы .repo. Все эти файлы содержат информацию о репозиториях (подобно секции [repository] в файле /etc/yum.conf). yum собирает всю информацию о репозиториях из файлов .repo и секции [repository] файла /etc/yum.conf для создания главного списка репозиториев для использования при транзакциях. Если reposdir не установлено, yum использует стандартный каталог /etc/yum.repos.d/.
retries=<значение>...где <значение> — число 0 или больше. Это значение определяет количество времени, которое yum будет пытаться полусить файл до того, как вернет ошибку. При установке значения в 0 yum будет пытаться постоянно. Значение по умолчанию — 10.
1.3.2 Настройка опций [repository]
Можно определить отдельный репозиторий, добавив секцию [repository] (где repository — уникальный ID репозитория, например, [my_personal_repo]) в /etc/yum.conf или в файл .repo в каталоге /etc/yum.repos.d/. Все файлы .repo в /etc/yum.repos.d/ читаются yum; лучше всего указывать свой репозиторий именно здесь, а не в /etc/yum.conf. Можно создать новые, отдельные файлы .repo в этом каталоге, добавить в них секцию [repository] и при следующем запуске команды yum вновь созданные репозитории будет добавлены.Здесь показан (крайне минимальный) пример вида файла .repo:
[repository_ID] name=A Repository Name baseurl=http://path/to/repo или ftp://path/to/repo или file://path/to/local/repo
[repository_ID]
repository_ID — это уникальная строка из одного слова (без пробелов, но нижнее подчеркивание попускается) символов (заключенная в квадратные скобки), которая указывает идентификатор репозитория.
name=<Имя моего репозитория>В этой строке содержится понятное для человека описание этого репозитория.
baseurl=http://path/to/repo, ftp://path/to/repo, file://path/to/local/repoЭто пусть до каталога, в котором расположен каталог repodata этого репозитория. Как правило, этот URL — ссылка на HTTP, например:
baseurl=http://path/to/repo/releases/$releasever/server/$basearch/os/Yum всегда разворачивает переменные $releasever, $arch и $basearch в URL.
- если репозиторий доступен по FTP, используйте: ftp://path/to/repo
- если репозиторий находитяс на локальной машине, используйте: file://path/to/local/repo
- если указанный репозиторий требует базовую аутентификацию HTTP, можно указать имя пользователя и пароль в http://path/to/repo с помощью имя_пользователя:пароль@ссылка. Например, если репозиторий на http://www.example.com/repo/ требует имя пользователя в виде «user», а пароль — «password», то запись baseurl может быть следующей:
baseurl=http://user:password@www.example.com/repo/Далее показана еще одна полезная директива [repository]:
enabled=<значение>
...где <значение> одно из:
0 — не считать этот репозиторий в качестве источника пакетов при выполнении обновления и установке. Это простейший пусть быстро включить или выключить репозиторий, который полезен только при установке единственного пакета из репозитория, не требующегося для обновления или установки.
1 — позволяет использовать этот репозиторий в качестве источника пакетов.
Включение или отключение репозиториев также может быть сделано путем передачи опции либо --enablerepo=, либо --disablerepo= команде yum.0 — не считать этот репозиторий в качестве источника пакетов при выполнении обновления и установке. Это простейший пусть быстро включить или выключить репозиторий, который полезен только при установке единственного пакета из репозитория, не требующегося для обновления или установки.
1 — позволяет использовать этот репозиторий в качестве источника пакетов.
Существует гораздо больше опций [repository]. Обратитесь к разделу [repository] OPTIONS man yum.conf за более подробным списком и описанием для каждой.
1.3.3 Использование переменных Yum
Можно использовать и обращаться к следующим переменным в командах yum и во всех файлах конфигурации (/etc/yum.conf и все файлы .repo в /etc/yum.repos.d/)$releasever
Можно использовать эту переменную для обращения к версии релиза Red Hat Enterprise Linux. Yum получает значение $releasever из строки distroverpkg=<значение> в файле /etc/yum.conf. Если такой строки не существует, yum получает корректное значение, вытаскивая номер версии из пакета redhat-release.
$archМожно использовать эту переменную обращаясь к архитектуре процессора путем получения значения функции Python os.uname (). Верные значения для $arch включают: i586, i686 и x86_64.
$basearchМожно использовать $basearch для обращения к базовой архитектуре системы. Например, машины i686 и i586 обе имеют базовую архитектуру i386, а AMD64 и Intel64 — соответственно x86_64.
$YUM0-9Эти десять переменных, каждая из которых замещается значением любого окружения оболочки shell с тем же самым именем. Если одна из этих переменных указана (например, в /etc/yum.conf) и переменная окружения оболочки с тем же именем не существует, тогда переменная файла конфигурации не будет замещена.
1.3.4 Создание репозитория Yum
Для создания репозитория, следуйте следующим указаниям:1. Установить пакет createrepo:
# yum install createrepo
3. Запустить команду createrepo --database, указав этот каталог:
# createrepo --database /mnt/local_repo
Поскольку пакеты RPM для Red Hat Enterprise Linux 6 сжимаются с использованием формата сжатия данных без потерь XZ и могут быть подписаны также альтернативными (и более сильными) алгоритмами (например, SHA-256), запуск createrepo от RHEL 5 не сможет создать пакет метаданных для RHEL 6.
########################################################
Это создаст необходимые метаданные для нового репозитория, так же, как и базу данных sqlite для ускорения операций yum.
1.4 Дополнения Yum
Yum предоставляет дополнения, которые расширяют и улучшают его операции. Определенные дополнения устанавливаются по умолчанию. Yum всегда информирует о том, какие дополнения загружены и активны каждый раз, как запускается команда yum:# yum info yum Loaded plugins: presto, refresh-packagekit, security [output truncated]
1.4.1 Включение, настройка и отключение дополнений
Для включения дополнений необходимо убедиться, что строка, начинающаяся с plugins= представлена в секции [main] в /etc/yum.conf, и что ее значение установлено в 1:plugins=1
####################### Информация #####################
Отключение дополнений не благоразумно
Отключение всех дополнений не благоразумно, поскольку определенные дополнения обеспечивают важные сервисы Yum. В частности, rhnplugin позволяет подключение к Red Hat Network, а security — позволяет системному администратору легко обновлять систему с помощью обвнолений безопасности. Отключение дополнений глобально — полезная опция, и, в основном, используется для диагностики потенциальных проблем с Yum.
########################################################
Каждое установленное дополнение имеет свой собственный файл конфигурации в каталоге /etc/yum/pluginconf.d/. В этих файлах можно указать специфичные для конкретного дополнения опции. Например, конфигурационный файл security.conf для дополнения security:
[main] enabled=1
Если выключить все дополнения, установив enabled=0 в /etc/yum.conf, все дополнения будут отключены, не взирая на то, что они могут быть включены в своих файлах конфигурации.
Если требуется единоразово отключить все дополнения для единственной команды yum, используйте опцию --noplugins.
Если же просто требуется отключить один или несколько дополнений, протсо добавьте опцию --disableplugin=<имя_дополнения>:
# yum update --disableplugin=presto
1.4.2 Установка дополнений
Дополнения обычно именуются согласно соглашению об именовании пакетов путем «склеивания» yum-plugin-<имя_дополнения>, но не всегда: пакет, который предоставляет дополнение presto называется yum-presto, например. Дополнение можно установить тем же путем, что и другие пакеты:# yum install yum-plugin-security
1.4.3 Описания дополнений
Здесь представлено описание нескольких полезных дополнений:presto (yum-presto)
Дополнение presto добавляет поддержку для скачивания пакетов delta RPM, в процессе обновления, из репозиториев, у которых включена поддержка метаданных presto. Delta RPMs содержат только изменения между версиями пакета, установленного у клиента, запрашивающего пакет, и обновленной версии в репозитории. Процесс получения delta RPM более быстрый, чем скачивание целиком обновленного пакета, и может значительно ускорить процесс обновления. Как только delta RPM скачан, он должен быть пересобран (с учетом различий, примененных к утсановленному в данное время пакету для создания полностью обновленного пакета) на устанавливающей машине, что требует времени ЦП. Использование delta RPM, однако, это компромис между временем на получение пакета, которое зависит от сетевого соединения, и временем на пересборку, которое зависит от возможностей ЦП. Использование дополнения presto рекомендуется на быстрых машинах и системах с медленным сетевым подключением, тогда как медленные машины с быстрым подключением могут получить преимущества в процессе получения пакета, выключив presto. Дополнение presto включено по умолчанию.
protect-packages (yum-plugin-protect-packages)Дополнение protect-packages защищает пакет yum и все пакеты, от которых он зависит, от преднамерянного или случайного удаления. Эта простая схема защищает многие важные пакеты, необходимые для работы системы, от удаления. Кроме того, можно перечислить дополнительные пакеты, один на строку, в файле /etc/sysconfig/protected-packages (который необходимо создать при его отсутствие), и protect-packages распространит свою защиту от удаления и на эти пакеты также. Для временной перезаписи защиты пакетов используйте опцию --override-protection при применении команды yum.
rhnplugin (yum-rhn-plugin)rhnplugin обеспечивает поддержку для подключения к Red Hat Network (RHN). Системы, зарегистрированные с помощью RHN, могут обновлять и устанавливать пакеты из Red Hat Network.
За подробной информацией обращайтесь к man rhnplugin.
refresh-packagekit (PackageKit-yum-plugin)За подробной информацией обращайтесь к man rhnplugin.
Это дополнение обновляет метаданные для PackageKit во время работы yum. Дополнение refresh-packagekit установлено по умолчанию.
security (yum-plugin-security)Получение информации о наличии обвнолений безопасности и применение этих обновлений как можно проще — очень важно для всех системных администраторов. По этим причинам Yum предоставляет дополнение security, которое расширяет yum с помощью набора команд, подкомманд и опций, крайне полезных с точки зрения безопасности.
Наличие обновлений, относящихся к безопасности, можно проверить следующим путем:# yum check-update --security Loaded plugins: presto, refresh-packagekit, security Limiting package lists to security relevant ones Needed 3 of 7 packages, for security elinks.x86_64 0.12-0.13.el6 rhel kernel.x86_64 2.6.30.8-64.el6 rhel kernel-headers.x86_64 2.6.30.8-64.el6 rhel
Другими словами, если:
- пакет kernel-2.6.30.8-16 установлен в системе;
- пакет kernel-2.6.30.8-32 был выпущен в качестве обновления безопасности;
- пакет kernel-2.6.30.8-64 был выпущен как пакет исправлений,
Обращайтесь к man yum-security для подробностями и дальнейшего изучения возможностей дополнения security.
Дополнительные ресурсы:
The Yum home page and wiki — http://yum.baseurl.org/wiki/GuidesManaging Software with Yum — http://docs.fedoraproject.org/en-US/Fedora_Core/5/html-single/Software_Management_Guide/
Комментариев нет:
Отправить комментарий