スクリプト更新中のconffileプロンプト

スクリプト更新中のconffileプロンプト

apt-get update && apt-get upgrade -y毎週複数のサーバーで実行されるスクリプトがあります。

/etc/ssh/sshd_configDebian 9でテストしたときに、以下のスクリーンショットのように変更された設定ファイルを保持するか、管理者バージョン()をインストールするかどうかを尋ねるメッセージが表示されます。パッケージ構成...構成ファイルの変更

私の質問は:メッセージを表示したくない場合は、コマンドに何を含める必要がありますか?必要な動作は、ローカル構成ファイルを維持し、アップグレードを続行することです。

私は試した:

  • --force-yesに追加するapt-get upgrade
  • 順序がわからないので、アップグレードコマンドの前後にオプションを追加してください。

    apt-get -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade
    
  • コンテンツを使用して作成/etc/apt/apt.conf.d/local:

    Dpkg::Options {
        "--force-confdef";
        "--force-confold";
    }
    
  • 編集する/etc/dpkg/dpkg.conf

    force confdef,confold
    

私が試したことは何もプロンプトを表示せず、次に何をしようとするのかわかりません。

私の試みのほとんどは、このStackExchangeの投稿に基づいています。構成ファイルの無人アップグレードと修正、このパッケージを紹介しましたunattended-upgrades。私たちは現在これを使用していませんが、これがDebianで毎週更新/アップグレードを実行する正しい方法であるかどうかを調べてみましょう。

ありがとうございます!

答え1

DEBIAN_FRONTENDを非対話型に設定してください。例えば

export DEBIAN_FRONTEND=noninteractive
apt-get update && apt-get upgrade -y

man 7 debconf詳細については、次を参照してください。

非対話型

これがアンチフロントエンドです。それはあなたと全く対話せず、すべての質問に基本的な答えを残します。ルートにエラーメッセージを送信することもできますが、それはすべてです。さもなければ、完全に静かで目に見えないので、自動化されたインストールのための完璧なフロントエンドになります。

このフロントエンドを使用し、質問に対する基本的な回答ではなく回答が必要な場合は、debconfデータベースをプロビジョニングする必要があります。以下のセクションを参照してください。無人パッケージのインストール詳細については。

関連情報