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. Однако я не представляю ситуации, когда это могло бы чему-то помешать.
Теги: yum