Ответы:
Команда 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
не делает.