Dpkg::Options --force-confold が無視されるのはなぜでしょうか?

Dpkg::Options --force-confold が無視されるのはなぜでしょうか?

変更された設定ファイルと競合に関する対話ダイアログを抑制しようとしています。検索結果をいろいろ調べましたが、誰もがコピー&ペーストを続けています。まったく同じ答え追加のコンテキストを提供せずに。

/etc/apt/apt.conf.d私は、適切にコピー&ペーストされた項目を含む構成ファイルを入れるという解決策にたどり着きました。

Dpkg::Options {
   "--force-confdef";
   "--force-confold";
}

私は含めてAPT::Get::Assume-Yes "true";これapt-config間違いなく機能しています。Dpkg::Options 読み込まれています。しかし、この構成を試すたびにDEBIAN_FRONTEND=noninteractive sudo apt upgrade、対話型ダイアログによって自動化されたスクリプトが停止します。

この構成が失敗する理由について、コピーペースト以上の情報を提供してくれる人はいますか? これらの設定が無視されるのはなぜでしょうか?


私の苦境を再現すると:

  1. Lightsailに新しいUbuntu 20.04インスタンスを作成する
  2. /etc/apt/apt.conf.d/99confold上記の設定を含む追加
  3. /etc/cloud/cloud.cfg何らかの方法で変更する
  4. sudo apt updateそれからsudo apt upgrade

更新の終わりに向かって、競合ダイアログが引き続き表示されます。

答え1

/etc/apt/apt.conf.d ファイルで指定した Dpkg::Options 設定が無視される理由はいくつかあります。

Dpkg::Options 設定をサポートしていない apt バージョンを使用している可能性があります。Dpkg::Options 設定は apt バージョン 1.1.0 で導入されたため、古いバージョンを使用している場合、この設定は無視されます。

Dpkg::Options 設定は、別の設定ファイルの設定によって上書きされる場合があります。apt は複数の場所から設定ファイルを読み取り、後のファイルの設定が前の設定を上書きする場合があります。たとえば、Dpkg::Options {"--force-confnew"}; という行を含むファイル /etc/apt/apt.conf.d/99force-confold がある場合、この設定は、以前の設定ファイルで指定した --force-confold 設定を上書きします。

Dpkg::Options 設定は、実行している特定のパッケージまたは操作には適用されない場合があります。Dpkg::Options 設定は、パッケージのインストールまたはアップグレード時に dpkg が構成ファイルを処理する方法に影響しますが、パッケージの削除やパッケージ キャッシュの更新などの他の操作には適用されない場合があります。

最新バージョンの apt を使用していて、Dpkg::Options 設定が別の設定ファイルによって上書きされていない場合は、実行しようとしている操作に --force-confold オプションが適用できない可能性があります。代わりに --force-confdef オプションを指定して、変更された設定ファイルのデフォルト バージョンを dpkg が使用するように強制することができます。

また、DEBIAN_FRONTEND=noninteractive 設定では、apt 使用時にすべての対話型プロンプトが抑制されるわけではないことにも注意してください。抑制されるのは、特定のパッケージのインストール中に質問したり設定オプションを設定したりするために使用される debconf システムに特に関連するプロンプトだけです。debconf に関連しない対話型プロンプトが表示されている場合は、この設定では抑制されません。

関連情報