Ответы:
Команда check-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и получите это:
$ sudo yum check-update
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
packagename version repo
Это означает, что 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 makecache
Похоже, это команда, которую вы ищете, согласно Работа с кешем 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эквивалент.
yumвозвращает список всех обновлений пакетов из всех репозиториев, если таковые имеются.apt-get updateобновить индексные файлы, ноyum check-updateне делает.