Контактная информация

По всем интересующим вас вопросам связывайтесь при помощи контактной информации приведенной на этой странице!

skype: metsof
email: accusser@gmail.com

В социальных сетях...

Форма обратной связи

Авторизация

Статьи об операционной системе Linux

Сайдбар

Управление пакетами с помощью YUM

22 янв. 2014

Программа Yum облегчает управление пакетами. Она основана на RPM и предоставляет множество дополнительных функций.

В качестве источников данных (репозиториев) служат архивы Yum, расположенные в Интернете. Yum-архив — это собрание пакетов RPM, дополнительно снабженных метаданными (каталог repodata). В метаданных находится информация о содержимом и зависимостях всех пакетов. Благодаря разделению пакетов и метаданных обработка информации ускоряется (так как не нужно считывать все пакеты, чтобы извлечь данные). Yum способна автоматически переходить между несколькими зеркалами, на которых расположен источник пакетов.

Yum автоматически отменяет все взаимозависимости пакетов, загружает все необходимые пакеты и устанавливает их. При этом учитываются все источники пакетов. Если вы, например, устанавливаете пакет из репозитория А, может быть, что Yum предварительно загрузит определенные связанные с ним пакеты из источников В и С.

Программа Yum может обновить все установленные пакеты одной-единственной командой. Для этого она проверяет, имеются ли в доступных источниках обновленные версии установленных пакетов. Если это так, то необходимые пакеты скачиваются и устанавливаются. Разумеется, при этом снимаются и все взаимозависимости пакетов.

Yum была разработана на языке программирования Python. Программа по умолчанию применяется в том числе в Fedora и в Red Hat. В этом разделе будет рассмотрено применение Yum в Fedora 11.

Конфликты с блокировкой



Нельзя одновременно запускать несколько образцов Yum. Если уже работает программа или команда Yum, то при повторном запуске выводится сообщение об ошибке another copy is running (работает другой экземпляр).

Суть проблемы заключается в работе системы автоматических обновлений Yum. Этот процесс несложно обнаружить: файл /var/run/yum.pid содержит ID-номер программы, вызывающей конфликт. С помощью команды ps grep id можно узнать имя программы. Если необходимо, можно временно остановить систему обновлений с помощью команды /etc/init.d/yum-updatesd stop, а затем вновь запустить ее командой start.

Конфигурация



Основная конфигурация Yum выполняется в файле /etc/yum.conf. В следующих строках показаны выдержки из конфигурации в системе Fedora 12:

<code># Файл /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
</code>

Кратко опишу важнейшие настройки. Благодаря keepcache=0 скачанные пакеты не архивируются после установки. Как правило, эта установка полезна, так как дисковое пространство, необходимое для пакетов, со временем сильно вырастет, и, скорее всего, не будет причин устанавливать пакеты повторно. В любом случае Yum может обнаружить в ходе установки проблему и прервать установку. Если есть возможность устранить проблему и повторно произвести обновления, все пакеты потребуется скачать заново. Чтобы избежать этого, укажите keepcache=1. Для того чтобы специально удалить пакеты, находящиеся в /var/cache/yum, выполните команду yum clean packages.

При наличии exaktarch=1 Yum учитывает только такие обновления, архитектура которых соответствует архитектуре уже установленного пакета. Иначе говоря, заменить пакеты i386 новыми пакетами х86_64 не получится.

При использовании gpgcheck=1 Yum проверяет ключ аутентификации пакета. Переменная gpgcheck также можно настроить иначе, чем указано в yum.conf, — отдельно для каждого репозитория. Переменная plugins определяет, будет ли Yum учитывать плагины.

Некоторые пакеты Yum должна установить, но не должна обновлять. К ним относятся, в частности, пакеты ядра: при обновлении ядра дополнительно устанавливается новый пакет ядра, не затрагивая при этом старый пакет. Переменная installonlypkgs позволяет указывать названия таких пакетов. По умолчанию она имеет настройки kernel, kernel-smp, kernel-bigmem, kernel-enterprise, kernel-debug, kernel-unsupported. Наконец, переменная installonly_limit, содержащаяся в yum.conf, указывает, сколько версий подобных пакетов может быть установлено параллельно. При стандартной настройке одновременно остаются установлены только три новейшие версии пакета. Более старые пакеты ядра удаляются.

Создание репозиториев. Каждый репозиторий определяется в собственном REPO-файле в каталоге /etc/yum.repos.d. В следующем фрагменте показаны репо-зитории для получения основных пакетов Fedora 12:

<code># Файл /etc/yum.repos.d/<a class="myClass" href="http://www.modx.cc/linux/zapusk-sistemyi-v-fedora/">fedora</a>.repo [fedora]

name=Fedora $releasever - $basearch

failovermethod=priority

mirrorlist=

https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch enabled=1

metadata_expire=7d gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
</code>

Адрес репозитория можно по выбору указать в абсолютной форме с помощью baseurl =… или с использованием mirrorlist=… в виде файла-зеркала. В этом файле расположен список зеркальных серверов. Yum самостоятельно выбирает одно из зеркал. В конфигурационном файле Yum заменяет переменные $releasever, $arch и $basearch номерами версии дистрибутива Linux с указанием ее архитектуры. Кратко рассмотрим происхождение этих трех переменных.

— $arch определяется с помощью команды uname (если быть точным — с помощью одноименной функции Python, основанной на uname) и возвращает, к примеру, х86_64, если мы имеем дело с процессором 64-Bit-Intel/AMD.
— $basearch — это базовая архитектура, лежащая в основе $arch (например, i386).
— $releasever получается из номера версии пакета edhat-release или fedora-release (также можно указать в yum.conf название другого пакета с помощью ключевого слова distroverpkg; номер версии этого пакета считается номером версии дистрибутива).

Переменная metadata_expires указывает, в течение какого срока остаются действительны скачанные метаданные. Yum сохраняет метаданные в кэше и не скачивает их повторно, если прежние метаданные еще не устарели. Так экономится время и объем закачек (некоторые файлы с метаданными просто огромны), но в этом случае Yum может проигнорировать изменения, недавно внесенные в репозиторий (при необходимости можно удалить локальные метаданные командой yum clean metadata, тогда при следующем запуске Yum придется заново считать метаданные всех пакетов).

Оптимальная настройка для metadata_expires отличается в зависимости от репозитория: если его содержимое обновляется редко или вообще не обновляется, лучше задать длительный промежуток. Напротив, при работе с пакетами обновлений желательно задать короткий период или вообще отказаться от этой настройки.

Запрет пакетов. Если вы хотите, чтобы Yum не контактировала с определенными пакетами и при появлении новой версии они также не обновлялись, вставьте в yum.conf или в файл *.repo репозитория строку вида exclude имя! имя2 имяЗ. В названиях пакетов можно использовать джокерные символы, то есть допускается и такая запись: exclude xemacs*.

Плагины


Yum можно расширять с помощью плагинов — тогда функционал программы становится еще богаче. Плагины можно настроить в файлах каталога /etc/yum/pluginconf.d.

Presto


Один из интереснейших плагинов Yum называется Presto: он позволяет использовать для обновлений пакеты Delta-RPM. Эти пакеты доступны только начиная с версии Fedora 11. В любом случае для установки Presto необходимо прямо указать yum install yum-presto, чтобы можно было использовать пакеты.

Delta-RPM

В результате объем загрузок радикально снижается (на 60-80 %!), но нагрузка на процессор при проведении обновлений выше.

Дистрибутивные обновления


В принципе с помощью Yum можно проводить и обновление дистрибутивов. Для этого сначала требуется вручную установить пакеты fedora-release-n.noarch.rpm и fedora-release-n.noarch.rpm, а затем выполнить команду yum upgrade. Надо отметить, что я не сторонник дистрибутивных обновлений. При этом обязательно что-то идет не так, независимо от того, насколько интеллектуальна система управления пакетами. Когда это только возможно, старайтесь проводить новую установку.

Примеры



Управление пакетами целиком осуществляется с помощью команды yum. Синтаксис этой команды понятен из следующего примера. Приведенные далее команды показывают, как работает программа (вывод сокращен ради экономии места).

<code>root# yum check-update

2.3-75.fcll updates

2.26.2-l.fcll updates

2.26.2-l.fcll updates

2.26.2-l.fcll updates

2.26.2-l.fcll updates

1.3-l.fcll updates

апасгопл'586 brasero.i586

brasero-libs.i586 brasero-nautilus.i586

cheese.i586 cronie.i586

root# yum update

Transaction Summary Install 1 Package(s) Update 42 Package(s) Remove 0 Package(s) Total download size: 52 M Is this ok [y/N]: y

root# yum install emacs

Installing:

emacs i586 l:22.3-12.fcll updates 2.0M

Installing for dependencies: emacs-common i 586 l:22.3-12.fcll updates 19 M

xorg-xll-fonts-IS08859-l-100dpi noarch 7.2-8.fcll <a class="myClass" href="http://www.modx.cc/linux/zapusk-sistemyi-v-fedora/">fedora</a> 1.1 M Transaction Summary Install 3 Package(s) Update 0 Package(s) Remove 0 Package(s) Total download size: 22 M Is this ok [y/N]: y</code>


Если вы впервые выполняете команду yum, система скачивает метаинформацию по всем созданным репозиториям. В дальнейшем эти файлы регулярно обновляются.

Группы пакетов



Программа Yum может распределять пакеты по группам, чтобы проще было установить все пакеты, необходимые для решения определенной задачи. Список доступных групп пакетов выводится командой yum grouplist, a yum groupinfo name подсказывает, какие пакеты относятся к одной и той же группе. Команда yum groupinfo подразделяет все пакеты натри категории: mandatory (обязательные), default (по умолчанию) и optional (необязательные). Выполнив yum groupinstall имя, вы установите все пакеты групп mandatory и default. Команда yum не содержит параметров, которые позволили бы автоматически установить и необязательные пакеты. Если вам нужна такая возможность, внесите в файл yum.conf следующие изменения:

# Дополнение в /etc/yum.conf group_package_types = mandatory default optional


Если хотите обновить или удалить группу пакетов, используйте yum groupupdate или yum groupremove соответственно.

Пакеты с исходным кодом



Сама по себе команда yum не может устанавливать пакеты с исходным кодом. Эту задачу выполняет команда yumdownloader из пакета yum-utils. Следующая команда загружает пакет с исходным кодом редактора gedit в локальный каталог. При этом активизируются источники source, находящиеся в файлах *.repo и по умолчанию неактивные. Когда я проводил испытания, загрузка исходного кода, словно по волшебству, работала только тогда, когда для источников source в файлах *.repo было установлено enabled=0. user$ yumdownloader --source gedit

Автоматические загрузки и обновления



Если установлен пакет yum-updatesd, то при запуске компьютера процесс Init-V активизирует одноименную программу yum-updatesd.

Команда yum-updatesd позволяет регулярно проверять, есть ли доступные обновления. В зависимости от того, какие настройки сделаны в /etc/yum/yum-updatesd.conf, пакеты обновлений также загружаются и даже устанавливаются автоматически. В следующем листинге показана стандартная конфигурация Fedora 11, при которой автоматические обновления не производятся. Если вы хотите производить автоматические обновления, в трех случаях измените no hayes:

# /etc/yum/yum-updatesd.conf [main]

# Проверять один раз в час, доступны ли новые обновления run_interval = 3600

# Связываться с сервером обновлений не реже, чем каждые 10 минут updaterefresh = 600

# Осуществлять локальное оповещение об уведомлениях через dbus emit_via = dbus

# Автоматическая загрузка обновлений do download = no


# Загрузить для обновления зависимые пакеты do_download_deps = no

# Автоматически установить обновления do_update = no


К сожалению, если программа обновлений Yum будет работать постоянно, это иногда может приводить к проблемам, связанным с блокировкой (см. подраздел «Конфигурация» этого раздела). Временно остановите yum-updatesd, прежде чем приступить к управлению пакетами. Не забудьте потом снова запустить yum-updatesd!

root# /etc/init.d/yum-updatesd stop


root# ... вручную установить или удалить пакеты ...

root# /etc/init.d/yum-updatesd start

Yum Extender (Yumex)



Yumex — это простой и удобный графический пользовательский интерфейс для Yum. При запуске Yum обновляет локальные метаданные по всем репозиториям. Кроме того, вы можете найти пакеты, которые необходимо установить, отметить их для установки и, наконец, установить (кнопка Обработать очередь). Теперь Yumex интерпретирует все взаимозависимости пакетов и выведет обобщающее диалоговое окно. Только после вашего подтверждения пакеты действительно будут скачаны и установлены.

Читайте так же:
Система управления пакетами ZYpp






Подпишитесь на рассылку! Никакого спама, только обновления!!!

Комментарии (0)


    Услуги по MODX Revolution

    Посмотреть все услуги

    Техническая оптимизация сайта

    Подробнее & Заказать

    Создание сайта на MODX Revolution

    Подробнее & Заказать

    Перенос сайта на MODX Revolution

    Подробнее & Заказать

    Продвижение сайта на MODX

    Подробнее & Заказать