
systemd (CentOS8) では、を実行した後でもdnf
ログに ( ) が表示されることに気付きました。 タイマーが ( ) の間実行されていることを発見しました。/var/log/messages
dnf remove dnf-automatic
systemctl list-unit-files --type=timer
dnf-makecache.timer
オンラインで見つけた最良の情報は、dnf-makecache が「リポジトリ キャッシュを更新する」というものです。わかりましたが、これは実際にはどういう意味ですか? リポジトリ キャッシュを 1 時間ごとに更新する必要があるのはなぜですか? 手動で更新を使用した場合、いずれにしてもこれは発生しませんかdnf update
?
更新されていないdnf update
場合は、最新バージョンを取得できないか、失敗しますか?それとも、これは補完的なもので、自動を使用しない場合は必要ないものですか? 私の意見では、そうであれば、削除されたときに削除されているはずです。dnf-makecache
dnf-automatic
dnf-automatic
systemctl disable dnf-makecache.timer
およびを使用してこのタイマーを無効にすることのマイナス面 / デメリットは何ですかsystemctl stop dnf-makecache.timer
?
答え1
わかりました。でも、それは実際どういう意味ですか?
これは、後続のコマンドを高速化するために、パッケージのリモート インデックスがローカル ファイル キャッシュにダウンロードされることを意味しますdnf
。
リポジトリのキャッシュを 1 時間ごとに更新する必要があるのはなぜですか?
これは、コマンドの利便性と高速化のために行われますdnf
。eg コマンドを実行するたびにdnf install
、リポジトリの「最新の」メタデータが必要になります。これがないと、コマンドを対話的に実行するときに、メタデータの更新を待たなければならない可能性が高くなりますdnf
。
タイマーが1時間ごとに設定されているにもかかわらず、実際の実行時間は3時間ごとにしか行われないことに注意してください。これはむしろバグであり、詳細は次のとおりです。ここ。
dnf update を使用して手動で更新すると、いずれにせよこれが発生しませんか?
はい、デフォルトではいずれにせよそうなるでしょうメタデータが古いとみなされる場合つまり、デフォルトの有効期間である 6 時間を超えています (リポジトリごとの定義でこの TTL を上書きできます)。リポジトリの定義に が含まれている場合、この現象は発生しませんmetadata_expire=-1
。
dnf-makecache が更新されていない場合、dnf update は失敗したり、最新バージョンを取得できなかったりしますか?
いいえ、失敗することはありません。ただし、メタデータがすでに存在し、ネットワーク接続が不安定な場合は、信頼性が少し高くなると言えます。
それとも、これは dnf-automatic を補完するものであり、automatic を使用していない場合は必要ないものでしょうか?
これは両方を補完するものdnf
で、dnf-automatic
両方とも新しいメタデータ キャッシュが配置された状態で実行される可能性が高くなり、したがって実行速度が速くなります。
systemctl enable dnf-makecache.timer および systemctl stop dnf-makecache.timer を使用してこのタイマーを無効にすることのマイナス面 / 短所は何ですか?
インストールと更新を待つコマンド/対話型処理が遅くなりますdnf
。記事に従って調整しない限り、次のようになります。
metadata_timer_sync=3600
タイマーはまったく効果がなく、あまり役に立ちません。
PS: あなたはたくさんの質問をしますが、このコミュニティでは通常 1 つの質問をするべきです :)
ご相談ください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.