dnf-makecache.timerが必要なのはなぜですか?

dnf-makecache.timerが必要なのはなぜですか?

systemd(CentOS8) では、この操作を実行した後もdnfログに () が表示されることを確認しました。 ()で動作するタイマーが見つかりました。/var/log/messagesdnf remove dnf-automaticsystemctl list-unit-files --type=timerdnf-makecache.timer

オンラインで見つけることができる最高のものはdnf-makecache "Repo Cache Update"です。いいですね。しかし、これは実際に何を意味しますか?ストレージキャッシュを毎時間更新する必要があるのはなぜですか?アップデートを手動で使用すると、これは起こりませんかdnf update

更新しないと、最新バージョンの取得に失敗するか失敗しますかdnf update?それとも、自動を使用していない場合は不要なdnf-makecacheアドインですか?dnf-automaticIMO: この場合、dnf-automatic削除時に削除する必要があります。

systemctl disable dnf-makecache.timerこのタイマーを使用または無効にするときの欠点/欠点は何ですかsystemctl stop dnf-makecache.timer

答え1

いいですね。しかし、これは実際に何を意味しますか?

これは、後続のコマンドを高速化するために、パッケージのリモートインデックスがローカルファイルキャッシュにダウンロードされることを意味しますdnf

ストレージキャッシュを毎時間更新する必要があるのはなぜですか?

dnfこれはコマンドを促進し、スピードを上げるために行われます。 egコマンドを実行するたびに、dnf install「新しい」リポジトリメタデータが必要です。それ以外の場合は、インタラクティブにコマンドを実行するときにメタデータが更新されるのを待つ必要がありますdnf

タイマーは1時間ごとに設定されていますが、実際には3時間を超えて実行されません。これはバグです。詳細は次のとおりです。ここ

dnf updateを使って手動で更新すると、これは起こりませんか?

はい、とにかくデフォルトで発生します。メタデータが古いと見なされる場合。つまり、デフォルトの寿命である6時間を超えました(ストレージ定義ごとにこのTTLをオーバーライドできます)。 repoがこのように定義されている場合、これは発生しませんmetadata_expire=-1

dnf-makecache を更新しないと、dnf の更新が失敗するか、最新バージョンを取得できませんか?

いいえ、失敗しません。メタデータがすでに存在し、ネットワーク接続が不安定である場合は、少し安定している可能性があると主張することもできます。

それとも、自動を使用しない場合は、不要なdnf-automaticに追加されますか?

どちらも新しいメタデータキャッシュを使用して実行される可能性が高く、高速に実行されるため、両方dnfを補完します。dnf-automatic

systemctlを無効にするdnf-makecache.timerとsystemctl stop dnf-makecache.timerを使用してこのタイマーを無効にする場合の欠点/欠点は何ですか?

dnfインストールとアップデートを待つ速度が遅いコマンド/対話型です。記事のフォローアップを行い、調整しない限り:

metadata_timer_sync=3600

タイマーは非常に非効率的で、あまり良い仕事をしません。

PS、質問をたくさんしますが、このコミュニティでは一般的に一つの質問をしなければなりません。 :)

man dnfと相談してみてくださいman dnf.conf。正しく文書化する人々の努力は無駄にならないでください。

答え2

私のCentos 8.1サーバーはファイアウォールと限られたプロキシの背後にあるので、dnf-makecache-timerは迷惑なエラーを繰り返し生成します。任意の動的サーバーリストを使用しているようで、すべてのサーバーに信頼できるプロキシホワイトリストを追加することはできません。これもそうだろう反対する私たちの安全ガイドライン。

yumを使用すると、(おそらく)すべてのパッケージマネージャタスクで使用され尊重されるサーバーのリストを定義できます。mirrorlist = ...そしてinclude_only=…

dnf-makecacheタイマーが使用するサーバーを制限するジョブソリューションまたは設定が見つかりません。

奇妙なことは、私が試してもコマンドライン呼び出しが決して失敗しないことです。

私が理解する限り、暗黙的な(現在の理解に基づいて)合理的な質問は次のとおりです。

「不要でも望んでもありません。(私たちの場合)制御できないエラーが発生します。どうすれば無効にできますか?

私はここに答えます:

[main]- セクションに追加/etc/dnf/dnf.conf

metadata_timer_sync=0

dnf.conf - マニュアルページに記載されているように:

 Use 0 to completely disable automatic metadata synchronizing.

関連情報