Debian apt-get update
выбирает и обновляет индекс пакета. Поскольку я привык к такому способу ведения дел, я был удивлен, обнаружив, что yum update
это все делает и обновляет систему. Это заставило меня задуматься о том, как обновить индекс пакета без установки чего-либо.
package-management
yum
apt
tshepang
источник
источник
yum
возвращает список всех обновлений пакетов из всех репозиториев, если таковые имеются.apt-get update
обновить индексные файлы, ноyum check-update
не делает.yum
это уже было выполнено недавно, см. Некоторые другие ответы для альтернатив ...Хотя
yum check-update
будет проверять обновления для установленных пакетов, если это нужно обновить, так же, как и большинство других команд.Команда, которая строго эквивалентна,
apt-get update
этоyum makecache
... однако обычно не рекомендуется запускать ее напрямую, в yum.источник
yum
команды, например,yum upgrade
будут автоматически запускатьсяyum check-update
при необходимости. Другими словами,yum upgrade
это в основном так же, какapt-get update; apt-get upgrade
.yum makecache
? Он указан на странице руководства и, кажется, работает какapt-get update
... также обратите внимание, чтоyum check-update
не всегда выполняет обновление, см. Другие ответы, FWIW :)К сожалению,
yum check-update
по умолчанию не извлекает изменения из удаленных репозиториев до тех пор, пока неyum.conf
истечет параметр metadata_expire (по умолчанию 90m). Очевидно, его целью является «узнать, есть ли на вашей машине какие-либо обновления, которые необходимо было применить, не запуская его в интерактивном режиме», поэтому в основном это «проверить, могут ли какие-либо пакеты быть способными к обновлению», а не «обновить» список пакетов, на которые я мог бы обновить », как вы ожидал.Так что, если вы запустите
yum check-update
и получите это:Это означает, что check-update не выполняет обновление, как это
apt-get update
делает.Вы можете увидеть, сколько времени займет выполнение «автоматического обновления», которое выполняют все команды, выполнив следующее :
yum repolist enabled -v
Работа вокруг:
сначала используйте
yum clean expire-cache
(илиyum clean all
), затем любые будущие команды yum будут автоматически обновлять кэш «при запуске». , Поскольку будущие команды yum обновляют кэш, на практике это то же самое, что иapt-get update
.Или, я полагаю, измените параметр metadata_expire файла yum.conf на значение по умолчанию меньше 90 минут.
Или запустите
yum makecache
(из других ответов), который, кажется, удаляет кэш и сразу же вырывает свежие копии. Но, кажется, это займет больше времени, чемclean all
(?) FWIW.источник
Это команда для обновления локального кэша, следовательно,
Похоже, это команда, которую вы ищете, согласно Работа с кешем Yum .
Обычно вам не нужно запускать эту команду напрямую, поскольку yum уже проверяет и обновляет метаданные на основе значения metadata_expire в yum.conf, по умолчанию это 6 часов.
Тем не менее, может быть как минимум один вариант использования, который находится в Ansible playbook, поскольку в Ansible playbook нет способа обновить кэш-память только без установки каких-либо пакетов (см. Проблемы Ansible 33461 и 40068 , которые, по-видимому, быть исправлено в версии 2.8, 46183 ). Для работы модуля Ansible yum требуется имя пакета для опции update_cache: yes. Таким образом, в качестве альтернативы «команда: yum makecache» может быть использована в playbook.
У dnf также есть команда makecache, хотя также возможно принудительно синхронизировать метаданные с ключом --refresh.
источник
yum makecache
; возможно, вы могли бы расширить свой ответ, чтобы сделать его более полезным, например, объяснив, почемуyum makecache
не рекомендуется, или каков егоdnf
эквивалент.