Debian's apt-get update
recupera e aggiorna l'indice del pacchetto. Poiché sono abituato a questo modo di fare le cose, sono stato sorpreso di scoprire che yum update
fa tutto ciò e aggiorna il sistema. Questo mi ha incuriosito su come aggiornare l'indice del pacchetto senza installare nulla.
Il comando check-update
Aggiorna l'indice del pacchetto e verifica la disponibilità di aggiornamenti:
yum check-update
Mentre yum check-update
controllerà gli aggiornamenti per i pacchetti installati, se deve essere aggiornato, così come la maggior parte degli altri comandi.
Il comando che è strettamente l'equivalente di apt-get update
è yum makecache
... tuttavia in genere non è consigliabile eseguirlo direttamente, in yum.
Sfortunatamente yum check-update
Per impostazione predefinita non annulla le modifiche dai repository remoti fino a quando il parametro metadata_expire di yum.conf
È scaduto (impostazione predefinita 90m). Apparentemente il suo scopo è "sapere se il tuo computer ha avuto degli aggiornamenti che dovevano essere applicati senza eseguirlo interattivamente", quindi in pratica è "controlla se alcuni pacchetti sono in grado di aggiornare" non "aggiorna l'elenco dei pacchetti che potrei aggiornare" come te mi sarei aspettato.
Quindi se esegui yum check-update
E ottieni questo:
$ Sudo yum check-update
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
packagename version repo
Ciò significa che check-update non sta eseguendo un aggiornamento, come fa apt-get update
.
Puoi vedere quanto tempo ci vorrà prima di eseguire l '"aggiornamento automatico" eseguito da tutti i comandi, eseguendo questo : yum repolist enabled -v
Aggirare:
sayum clean expire-cache
(o yum clean all
) per primo, quindi eventuali comandi yum futuri aggiorneranno automaticamente la cache "quando vengono eseguiti". . Poiché i futuri comandi yum aggiornano la cache, questo è in pratica lo stesso di apt-get update
.
Oppure modifica il parametro metadata_expire di yum.conf su un valore inferiore a 90min predefinito, suppongo.
Oppure esegui yum makecache
(Dalle altre risposte) che sembra rimuovere la cache e quindi scaricare nuove copie in quel momento. Ma sembra richiedere più tempo di clean all
(?) FWIW.
Questo è il comando per aggiornare la cache locale, quindi
yum makecache
sembra essere il comando che stai cercando, secondo Lavorare con Yum cache .
Normalmente non è necessario eseguire questo comando direttamente poiché yum controlla e aggiorna già i metadati in base al valore metadata_expire in yum.conf, il valore predefinito è 6 ore.
Tuttavia, potrebbe esserci almeno un caso d'uso, che si trova in un playbook Ansible, in quanto non esiste un modo in un playbook Ansible per aggiornare solo la cache senza installare alcun pacchetto (vedere Problemi di Ansible 461 = e 40068 , che sembra essere stato risolto nella versione 2.8, 4618 ). Il modulo Ansum yum richiede un nome pacchetto per l'opzione 'update_cache: yes' per avere un effetto. Quindi, come alternativa al 'comando: yum makecache' può essere usato nel playbook.
dnf ha anche un comando makecache, sebbene sia anche possibile forzare la sincronizzazione dei metadati con l'opzione --refresh.