Yum: как избавиться от лишнего считывания метаданных

Вне зависимости от выполняемой операции, yum по умолчанию начинает свою работу с синхронизации метаданных о локальных репозиториях с таковыми на серверах, подключённых как источники пакетов. В силу специфики формата RPM, процесс этот весьма небыстрый. Однако он крайне желателен при установке и обновлении отдельных пакетов, и абсолютно необходимо при общем обновлении системы.

А вот в случаях, когда требуется быстро найти определённый пакет или получить о нём информацию, медленная и печальная синхронизация метаданных раздражает чрезвычайно. Тем более, что, как правило, она и не нужна. И избавиться от неё весьма просто: достаточно дать соответствующие команды с опцией -C . Например:

$ yum -C search pkgname

или

$ yum -C info

Теперь, как явствует из имени полной формы этой опции (--cacheonly), метаданные будут считываться из локального кэша системы (/var/cache/yum/x86_64/14 ), а не скачиваться по сети.

Однако можно ещё более упростить это дело. Команды поиска пакета, вывода информации о нём и тому подобные могут быть даны от имени обычного пользователя — и именно таким образом их желательно давать почти во всех случаях. Так что в профильном файле login shell пользователя (~/.bashrc или ~/.zshrc) достаточно определить псевдоним для команды yum:

alias yum='yum -C'

И взять за правило все субкоманды yum, не требующие административных привилегий, давать от имени обычного пользователя. Когда же таковые потребуются — при их получении через su никаких изменений против прежнего не произойдёт — соответствующего псевдонима в профильном файле root’а нет, и метаданные будут по прежнему считываться по сети.

Если для получения прав администратора используется команда sudo, которая по умолчанию сохраняет исходное пользовательское окружение, то её следует использовать с опциями -sH, предписывающими сменить каталог на /root и считать оттуда пользовательские конфиги. Например:

$ sudo -sH yum install pkgnam

Поскольку команда sudo была дана с аргументом, то по завершении работы yum опружение обычного пользователя автоматически восстановится.

Чтобы ещё больше облегчить себе задачу, в профильном файле login shell нужно задать ещё один псевдоним:

alias sudo='sudo -sH'

Правда, это распространит действия указанных опций на все случаи применения sudo. Однако я не представляю ситуации, когда это могло бы чему-то помешать.


Теги:

Обсудить на форуме