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.