Warum wird dnf-makecache.timer benötigt?

Warum wird dnf-makecache.timer benötigt?

In systemd (CentOS8) ist mir aufgefallen, dnfdass in den Protokollen () aufgetaucht ist, /var/log/messagesobwohl ich dies getan hatte dnf remove dnf-automatic. Ich habe einen laufenden Timer ( systemctl list-unit-files --type=timer) für entdeckt dnf-makecache.timer.

Das Beste, was ich online finden konnte, ist, dass dnf-makecache „Repo-Caches aktualisiert“. Okay, aber was bedeutet das eigentlich? Warum müssen Repo-Caches jede Stunde aktualisiert werden? Würde das nicht sowieso passieren, wenn man update manuell mit verwendet dnf update?

Würde es dnf updatefehlschlagen oder nicht die neuesten Versionen erhalten, wenn dnf-makecachees nicht aktualisiert wurde? Oder ist dies etwas, das ergänzt dnf-automaticund nicht benötigt wird, wenn es nicht automatisch verwendet wird? IMO: Wenn dies der Fall ist, hätte es entfernt werden sollen, als dnf-automatices entfernt wurde.

Was sind die Nachteile beim Deaktivieren dieses Timers mit systemctl disable dnf-makecache.timerund systemctl stop dnf-makecache.timer?

Antwort1

Okay, aber was bedeutet das eigentlich?

Dies bedeutet, dass der Remote-Index der Pakete in den lokalen Dateicache heruntergeladen wird, um nachfolgende dnfBefehle zu beschleunigen.

Warum müssen Repo-Caches stündlich aktualisiert werden?

Dies geschieht aus Gründen der Benutzerfreundlichkeit und Beschleunigung des dnfBefehls. Jedes Mal, wenn Sie den Befehl eg ausführen , müssen „aktuelle“ Metadaten für Repositorys vorhanden sein. Ohne diese besteht eine hohe Wahrscheinlichkeit, dass Sie auf die Aktualisierung der Metadaten warten müssen, wenn Sie Befehle interaktiv dnf installausführen .dnf

Beachten Sie, dass, obwohl der Timer auf 1 Stunde eingestellt ist, die tatsächliche Laufzeit nicht häufiger als alle 3 Stunden ist. Dies ist eher ein Fehler, der detailliert beschrieben wirdHier.

Würde dies nicht sowieso passieren, wenn ich das Update manuell mit DNF-Update verwende?

Ja, standardmäßig würde es sowieso passierenwenn Metadaten als veraltet gelten. Das heißt, die Standardlebensdauer von 6 Stunden wurde überschritten (die Definition pro Repository kann diese TTL überschreiben). Dies würde bei einem Repository nie passieren, wenn seine Definition metadata_expire=-1.

Würde das DNF-Update fehlschlagen oder nicht die neuesten Versionen abrufen, wenn DNF-Makecache nicht aktualisiert wurde?

Nein, es würde nicht fehlschlagen. Allerdings könnte es etwas zuverlässiger sein, vorausgesetzt, die Metadaten sind bereits vorhanden und die Netzwerkverbindung ist instabil.

Oder ist dies eine Ergänzung zu dnf-automatic und wird nicht benötigt, wenn nicht automatisch gearbeitet wird?

Es ergänzt beide dnf, dnf-automaticda bei beiden die Wahrscheinlichkeit höher ist, dass sie mit einem aktuellen Metadaten-Cache ausgeführt werden und somit schneller laufen.

Was sind die Nachteile beim Deaktivieren dieses Timers mit „systemctl disable dnf-makecache.timer“ und „systemctl stop dnf-makecache.timer“?

Langsamere dnfBefehle / interaktives Warten auf Installation und Updates. Sofern Sie den Artikel nicht weiterverfolgen und anpassen:

metadata_timer_sync=3600

der Timer ist ziemlich ineffektiv und bringt nicht viel.

P.S.: Sie stellen viele Fragen, aber in diesen Communities sollten Sie normalerweise eine stellen :)

Bitte konsultieren Sie man dnfund man dnf.conf. Wer die richtige Dokumentation sucht, sollte dies nicht umsonst tun.

Antwort2

Da meine Centos 8.1-Server hinter einer Firewall und einem eingeschränkten Proxy sitzen, erzeugt der dnf-makecache-timer immer wieder nervige Fehler. Es scheint, dass er eine zufällige dynamische Liste von Servern verwendet, die ich nicht alle der vertrauenswürdigen Proxy-Whitelist hinzufügen kann. Dies wäre auchgegenunseren Sicherheitsrichtlinien.

Mit yum bestand die Möglichkeit, eine Liste von Servern zu definieren, die bei (wahrscheinlich) allen Aktionen des Paketmanagers verwendet und berücksichtigt werden: mirrorlist=… und include_only=… .

Ich konnte keine funktionierende Lösung oder Einstellung zur Begrenzung der vom DNF-Makecache-Timer verwendeten Server finden.

Seltsamerweise schlug der Befehlszeilenaufruf bei meinem Versuch nie fehl.

So wie ich die implizite(n) (nach meinem derzeitigen Verständnis) berechtigte(n) Frage(n) verstehe:

„Ich brauche es nicht, ich will es nicht, (in unserem Fall) es wirft Fehler aus, die ich nicht kontrollieren kann: Wie kann ich es deaktivieren?

Ich werde es hier beantworten:

Fügen Sie im [main]Abschnitt - von/etc/dnf/dnf.conf

metadata_timer_sync=0

wie in der dnf.conf-Manpage angegeben:

 Use 0 to completely disable automatic metadata synchronizing.

verwandte Informationen