Yum: настройка

Алексей Федорчук

Как известно, любая фундаментальная монография по сексологии начинается с Введения. А использование любой программы — с настройки. Не будет исключением и yum — разговор о его практическом использовании начнём конфигурирования этой системы управления пакетами.

Вопрос этот включает несколько аспектов, как то:

  • настройку собственно yum;
  • подключение и настройку плагинов;
  • подключение дополнительных репозиториев и настройку доступа к ним;
  • создание и настройку собственного репозитория.

В этой заметке речь пойдёт только о настройке собственно yum и его плагинов. Обеспечение доступа к репозиториям составит предмет заметки следующей. Ну а создание собственного репозитория — это совсем отдельная история, до которой я доберусь при должной моральной готовности.

Начнём, разумеется, с собственно настройки yum. За них отвечает файл /etc/yum.conf. Ныне он сождержит только общие параметры для этой утилиты, объединённые в секцию [main]. настройки отдельных репозиториев, имевшие место быть в нём в прежних версиях, ныне выделены в отдельные файлы в каталоге /etc/repos.d/.

Параметры yum.conf задаются в таком формате:

название=значение

Значение может быть булевым (0 — запрещено, 1 — разрешено), численным — от 1 и до,,, разумного предела (значение 0 опять-таки равносильно отключению) или символьным — например, путь к каталогу или список пакетов; в последнем случае значения разделяются пробелами.

Многие из конфигурационных параметров дублируются опциями командной строки, о которых говорилось в предыдущей заметке.

По умолчанию главная и единственная секция yum.conf выглядит так:

[main]
cachedir=/var/cache/yum
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=3

Смысл этих параметров следующий:

  • cachedir — каталог для кэширования метаданных репозиториев и пакетов, скачиваемых в ходе установки; резона менять значение по умолчанию я не вижу;
  • keepcache — определяет, сохранять ли скачанные пакеты в локальном кэше (значение 1) или удалять их после успешной установки (значение 0)
  • debuglevel — уровень отладочных сообщений, оставляю без изменений;
  • logfile — каталог для файлов протоколирования действий yum, аналогично;
  • exactarch — значение по умолчаннию предписывает устанавливать пакеты, точно соответствующие архитектуре; ИМХО, резонно сохранить, для предотвращения обновления сборки под i686 пакетом абстрактного назначения i386;
  • obsoletes — определяет логику замены «устаревших» пакетов при тольном обновлении, сопряжённом со сменой версий при операции yum upgrade;
  • gpgcheck — включение этой опции (значение 1) обязывает к проверке подписей при установке как из репозиториев, так и локально (посредством yum localinstall);
  • plugins — использовать или нет плагины к yum’у; умолчальное разрешение, полагаю, смысла не имеет — иначе зачем бы их было устанавливать; в редких случаях, когда какой-либо плагин оказывается лишним, проще отключить его использование в командной строке;
  • installonly_limit — максимальное количество пакетов, запрещённых к обновлению (можно только устанавливать параллельно более новую версию).

Кроме перечисленных, существует ещё немало параметров настройки yum — с полным списком, как обычно, можно ознакомиться посредством тёти Мани: man yum.conf. Остановлюсь на некоторых из них.

Так, очевидно, что опция installonly_limit имеет смысл только при наличии списка запрещённых к обновлению пакетов. Он задаётся параметром

installonlypkgs=pkgname1 pkgname2 ... pkgname#

Правда, по умолчанию, вне этого списка, запрещается обновление ядер.

Есть возможность и задать список пакетов, для которых запрещено как обновление, так и инсталляция:

exclude=pkgname1 pkgname2 ... pkgname#

Необходимость этого может возникнуть при использовании проприетарных пакетов типа Opera: давеча вот столкнулся с тем, что свежеустановленная Opera-Unite была тут же «обновлена» до просто Opera. После чего и вписал в свой yum.conf строку

exclude=opera

Полезной может оказаться параметр skip_broken — он заставляет пропускать установку пакетов с нарушенными зависимостями, аналогично одноименной опции командной строки (см. предыдущую заметку).

Параметр recent нужен для субкоманды list с одноименной опцией (см. здесь): он устанавливает срок, в течении которого добавленные в репозиторий пакеты считать новыми. По умолчанию он равен семи дням, но его можно подкорректировать в соответствие с собственными представлениями о новизне.

Что очень раздражает в yum — это синхронизация локально кэшированных метаданных о репозиториях с таковыми источников, происходящая каждый раз при его запуске с любой субкомандой — даже от лица пользователя, когда реально кэш метаданных обновлён быть не может. Побочным следствием этого может появиться значёк Обновление программ, да ещё такое, которое требует перезагрузки. Разумеется, оба требования — и обновления, и перезагрузки, можно проигнорировать — но значок глаза-то мозолит…

Такую ситуацию можно изменить в корне — на то существует параметр metadata_expire, значением которого является время «выдыхания» метаданных в секундах. Документация уверяет нас, что по умолчанию это самое «выдыхание» составляет полтора часа — но не верьте ей, дыхалка у локального кэша гораздо короче. Так что тут можно поставить своё значение, которое покажется разумным. А можно вписать строку

metadata_expire=never

И тогда обновление кэша метаданных будет производиться только по специальному запросу типа yum update.

Интересен параметр tolerant — её включение прощает пользователю некоторые ошибки, впрочем, не очень существенные. Так, если дать команду yum install со списком пакетов, один из которых уже установлен, то она инсталлирует все недостающие пакеты без жалобы на ошибку.

Как я уже говорил, полный список параметров, вместе с их умолчальными значениями, можно найти в man yum.conf. В большинстве случаев значения по умолчанию приемлемы, что избавляет от необходимости детального их рассмотрения. Однако к некоторым параметрам нам придётся вернуться, когда мы доберёмся до операций с группами.

А пока обратимся к плагинам. Они устанавливаются точно так же, как и любые другие пакеты. Например, команда

# yum install yum-plugin-list-data

установит весьма полезный одноименный плагин, дополняющий субкоманду list множеством дополнительных фильтров (он заслуживает отдельного разговора).

Соответствующие каждому из установленных плагинов конфигурационные файлы располагаются в каталоге /etc/yum/pluginconf.d и имеют легко узнаваемые имена. Например, вывод команды

$ ls yum/pluginconf.d/
blacklist.conf      list-data.conf  refresh-packagekit.conf
fastestmirror.conf  presto.conf     whiteout.conf

позволит без труда догадаться, к какому из плагинов относится любой конфиг (кроме файлов blacklist.conf и whiteout.conf).

Некоторые конфиги предельно просты. Например, в list-data.conf есть одна-единственная строка, разрешающее его подключение:

enabled=1

В конфиге плагина presto (того самого, который при обновлении обеспечивает скачивание дельты вместо цельного пакета) простора больше, хотя тоже не очень много. Во-первых, можно запретить локальное кэширование этих самых дельт, раскомментировав параметр

# keepdeltas = false

А во-вторых, можно определить, что же считать дельтой. Например, параметр

minimum_percentage = 95

определяет, что если изменённая часть пакета составляет 95% или менее от цельного, то будет скачиваться она, если же больше — загрузится пакет целиком.

Что касается файлов blacklist.conf и whiteout.conf, то по умолчанию они пусты, содержа только запрещающую строку:

enabled=0

Можно предположить, что по включении их можно заполнить «черными» и «белыми» списками зеркал.

Добавить комментарий