Was ist das Äquivalent von 'apt-get update'?

86

Debian apt-get updateruft den Paketindex ab und aktualisiert ihn. Da ich an diese Vorgehensweise gewöhnt bin, war ich überrascht, dass yum updatedies alles funktioniert und das System aktualisiert. Das hat mich neugierig gemacht, wie man den Paketindex aktualisiert, ohne etwas zu installieren.

Tshepang
quelle

Antworten:

90

Der check-updateBefehl aktualisiert den Paketindex und sucht nach verfügbaren Updates:

yum check-update
wedeln
quelle
3
Mit diesem Befehl können Sie feststellen, ob Aktualisierungen für Ihre installierten Pakete verfügbar sind . yumGibt eine Liste aller verfügbaren Paketaktualisierungen aus allen Repositorys zurück. apt-get updateIndexdateien aktualisieren, yum check-updateaber nicht.
SuB
Dies funktioniert nicht, wenn yumbereits in letzter Zeit ausgeführt wurde, finden Sie unter den anderen Antworten Alternativen ...
Rogerdpack
29

Während yum check-updateUpdates für installierte Pakete überprüft werden, werden bei Bedarf auch die meisten anderen Befehle aktualisiert.

Der Befehl, der genau dem entspricht, apt-get updatelautet yum makecache... es wird jedoch im Allgemeinen nicht empfohlen, den Befehl direkt in yum auszuführen.

James Antill
quelle
1
Ich verstehe den ersten Satz nicht. Können Sie vielleicht umformulieren?
Tshepang
8
Dies bedeutet, dass andere yumBefehle, z. B. yum upgrade, yum check-updatebei Bedarf automatisch ausgeführt werden. Mit anderen Worten yum upgradeist im Grunde das gleiche wie apt-get update; apt-get upgrade.
Mikel
Danke! yum check-update hat mir nicht geholfen gegen 404 fehler. Aber lecker Makecache hilft! Vielen Dank!
Socketpair
Im Original ging es darum, die Repodaten automatisch zu aktualisieren, um die neuesten Informationen zu präsentieren (etwas, das apt-get nicht tut, oder zumindest nicht in 2011). Nach der Bearbeitung ist es jetzt irgendwie komisch bedeutungslos :(.
James Antill
Warum wird das Ausführen nicht empfohlen yum makecache? Es ist in der Manpage aufgeführt und scheint zu funktionieren wie apt-get update... auch beachten Sie, dass yum check-updatenicht immer eine Aktualisierung durchgeführt wird, siehe andere Antworten, FWIW :)
Rogerdpack
21

Leider yum check-updatewerden Änderungen aus Remote-Repositorys standardmäßig erst nach yum.confAblauf des metadata_expire-Parameters abgerufen (Standardeinstellung: 90 m). Anscheinend lautet der Zweck "Wissen, ob auf Ihrem Computer Updates vorhanden waren, die angewendet werden mussten, ohne sie interaktiv auszuführen". Im Grunde bedeutet dies "Überprüfen, ob Pakete aktualisierbar sind" und nicht "Aktualisieren der Liste der Pakete, auf die ich aktualisieren könnte" würde erwarten.

Also, wenn du rennst yum check-updateund das bekommst:

$ sudo yum check-update
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile

packagename      version     repo

Dies bedeutet, dass check-update keine Aktualisierung durchführt, wie dies auch der apt-get updateFall ist.

Sie können sehen , wie lange es den „Auto - Refresh“ , bevor Sie , dass alle Befehle unterhalb tun nehmen, indem Sie diese :yum repolist enabled -v

Umgehen Sie:

benutze yum clean expire-cache (oder yum clean all) zuerst, dann werden alle zukünftigen yum-Befehle den Cache "beim Ausführen" automatisch aktualisieren. . Da zukünftige yum-Befehle den Cache aktualisieren, ist dies in der Praxis dasselbe wie apt-get update.

Oder ändern Sie den Parameter metadata_expire von yum.conf auf weniger als die Standardeinstellung von 90 Minuten, denke ich.

Oder führen Sie yum makecache(aus den anderen Antworten) den Befehl aus, der den Cache zu entfernen scheint, und rufen Sie dann neue Kopien ab. Aber es scheint länger zu dauern als clean all(?) FWIW.

Rogerdpack
quelle
2
Ich bin mir nicht sicher, warum diese Antwort am Ende nachlässt. Dies scheint die naheliegende und einfache Antwort zu sein.
Cbmanica
2

Dies ist der Befehl zum Aktualisieren des lokalen Caches

yum makecache

scheint der gesuchte Befehl zu sein, laut Working with Yum cache .

Normalerweise sollten Sie diesen Befehl nicht direkt ausführen müssen, da yum bereits Metadaten basierend auf dem Wert metadata_expire in yum.conf überprüft und aktualisiert. Der Standardwert ist 6 Stunden.

Allerdings könnte es mindestens ein Anwendungsfall sein , die in einem ansible Textbuch ist, da Sie nicht über eine Art und Weise in einem ansible Textbuch müssen nur den Cache aktualisieren , ohne alle Pakete zu installieren (siehe ansible gibt 33461 und 40068 , die scheint behoben werden in Version 2.8, 46183 ). Ansible yum-Modul benötigt einen Paketnamen, damit die Option 'update_cache: yes' wirksam wird. Als Alternative kann also 'command: yum makecache' im Playbook verwendet werden.

dnf hat auch einen makecache-Befehl, obwohl es auch möglich ist, die Metadatensynchronisation mit dem Schalter --refresh zu erzwingen.

Tufan K
quelle
Diese bestehende Antwort erwähnt bereits yum makecache; Vielleicht können Sie Ihre Antwort erweitern, um sie nützlicher zu machen, indem Sie beispielsweise erläutern, warum dies yum makecachenicht empfohlen wird oder was das dnfÄquivalent ist.
Stephen Kitt