Qual è l'equivalente di yum di 'apt-get update'?


86

Debian apt-get updaterecupera e aggiorna l'indice del pacchetto. Poiché sono abituato a questo modo di fare le cose, sono stato sorpreso di scoprire che yum updatefa tutto ciò e aggiorna il sistema. Questo mi ha incuriosito su come aggiornare l'indice del pacchetto senza installare nulla.

Risposte:


90

Il check-updatecomando aggiorna l'indice del pacchetto e verifica la disponibilità di aggiornamenti:

yum check-update

3
Questo comando consente di determinare se sono disponibili aggiornamenti per i pacchetti installati . yumrestituisce un elenco di tutti gli aggiornamenti dei pacchetti da tutti i repository, se disponibili. apt-get updateaggiorna i file indice ma yum check-updatenon lo fa.
SuB,

Questo non funziona se yumè già stato eseguito di recente, vedere alcune delle altre risposte per alternative ...
rogerdpack,

29

Mentre yum check-updatecontrollerà gli aggiornamenti per i pacchetti installati, se deve essere aggiornato, così farà 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.


1
Non capisco la prima frase. Puoi riformulare forse?
Tshepang,

8
Significa che altri yumcomandi, ad es. yum upgradeVerranno eseguiti automaticamente yum check-updatese necessario. In altre parole, yum upgradeè sostanzialmente lo stesso di apt-get update; apt-get upgrade.
Mikel,

Grazie! yum check-update non mi ha aiutato contro gli errori 404. Ma yum makecache aiuta! ENORME grazie!
socketpair,

L'originale riguardava l'aggiornamento automatico di repodata per presentare le informazioni più recenti (qualcosa che apt-get non fa, o almeno non lo ha fatto nel 2011). Dopo la modifica ora è un po 'stranamente insignificante :(.
James Antill

Perché non è consigliabile eseguire yum makecache? È elencato nella pagina man e sembra funzionare come apt-get update... nota anche che yum check-updatenon sempre esegue un aggiornamento, vedi altre risposte, FWIW :)
rogerdpack

21

Sfortunatamente, yum check-updateper impostazione predefinita, non vengono rimosse le modifiche dai repository remoti fino yum.confalla scadenza del parametro metadata_expire (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 a" come te mi sarei aspettato.

Quindi se corri yum check-updatee 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 apt-get updatefa.

Puoi vedere quanto tempo ci vorrà prima di eseguire l '"aggiornamento automatico" eseguito da tutti i comandi, eseguendo questo :yum repolist enabled -v

Aggirare:

usa prima yum clean expire-cache (o yum clean all), quindi qualsiasi comando yum futuro aggiornerà automaticamente la cache "quando eseguito". . 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 scaricare subito nuove copie. Ma sembra richiedere più tempo di clean all(?) FWIW.


2
Non sono sicuro del motivo per cui questa risposta sta languendo in fondo. Questa sembra la risposta ovvia e semplice.
cbmanica,

2

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, poiché in un playbook Ansible non è possibile aggiornare la cache solo senza installare alcun pacchetto (vedere i problemi Ansible 33461 e 40068 , che sembra essere risolto nella versione 2.8, 46183 ). Il modulo Ansible 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.


Questa risposta esistente menziona già yum makecache; forse potresti espandere la tua risposta per renderla più utile, ad esempio spiegando perché yum makecachenon è raccomandato o qual è l' dnfequivalente.
Stephen Kitt,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.