APT無人アップグレード、ユーザー対話不要

APT無人アップグレード、ユーザー対話不要

Debianサーバーを更新するためにクローンジョブを設定していますが、潜在的な問題があります。 Terminalを使用してアップグレードしようとすると、apt -y upgradeこのオプションがある場合でも、-y一部のパッケージはAPTが設定されているときにncursesプロンプト(またはY / I / N / O / D / Zプロンプト)を表示し、常にRandomオプションを残します。基本的に。私のコンピュータの前に座っているのではなく、cronを介してコマンドを実行し、ユーザーの対話のための方法がない場合、これらの問題をどのように回避できますか?

ベストアンサー1

私は、デスクトップ/ノートブック/サーバーを実行するときに一般的な状況で無人アップグレードを使用するようにStephen Kittの提案に同意します。
無人アップグレードを待たずにカスタムAmazonマシンイメージ(AMI)を構築するスクリプトでこれを処理する方法は次のとおりです。これはUbuntu 16.xと20.xで低レベルのコマンドを使用していますが、apt-getDebianでも動作すると思います。

たとえば、 grub 更新が新しい conf ファイルを受け入れるか、古いファイルを保持するように求めるメッセージをトリガーできる「dist-upgrade」コマンドは次のとおりです。

DEBIAN_FRONTEND=noninteractive \
  apt-get -y \
    -o DPkg::Options::="--force-confold" \
    -o DPkg::Options::="--force-confdef" \
    dist-upgrade

読みやすいようにコマンドを複数行に分けました。
環境変数の設定は、DEBIAN_FRONTEND=noninteractiveY/I/N/O/D/Z の回答を求めるメッセージを表示しない要素の 1 つです。もう一つの要因は、dpkg必要なオプションを明確に指定することです。
そして--force-confold4つの--force-confdefオプションですdpkg--force-confdefパッケージがデフォルトジョブを定義している場合は、デフォルトアクションが選択されます。デフォルト値が定義されていない場合、--force-confold古いバージョンが選択されるか、--force-confnew新しいバージョンが選択されます。
私のユースケースでは、以前のバージョンが必要です。

さらなる議論と詳細については、以下を参照してください。前の質問

おすすめ記事