web-dev-qa-db-ja.com

無人-アップグレードは許可されたオリジンをオーバーライドします

Unattended-Upgrade::Allowed-Originsを設定して、セキュリティ更新のみが許可されるようにしようとしています。これは、後のapt.conf.d構成で、デフォルトの50unattended-upgrades構成をデフォルトのままにして、オーバーライドするだけで実行したいと思います。

私の99-unattended-upgradesでは、次のように設定しています。

// Only allow security Origin
Unattended-Upgrade::Allowed-Origins {
  "${distro_id}:${distro_codename}-security";
};

ただし、これは、apt-config dumpを実行すると、既存の構成と(完全に削除するのではなく)マージのように見えます。デフォルト設定が表示されます。

また、次のように設定してみました。

Unattended-Upgrade::Allowed-Origins "${distro_id}:${distro_codename}-security";

また、動作しませんでした。

I could50unattended-updatesの行をコメントアウトするだけですが、可能であれば元のファイルを元の状態のままにしておきたいと思います。

2
patrickdavey

Aptソースコードを少し掘り下げてからapt-confのマニュアルページを調べたところ、方法があることがわかりました。

[...]#clearは、構成ツリーの一部を消去するために使用されます。指定された要素とそのすべての子孫が消去されます。 (これらの行もセミコロンで終わる必要があることに注意してください。)

#clearコマンドは、リストまたはスコープ全体を削除する唯一の方法です。スコープを再度開く(または::を追加して以下で説明する構文を使用する)と、以前に書き込まれたエントリがオーバーライドされることはありません。オプションは、新しい値をオプションにアドレス指定することによってのみオーバーライドできます。リストとスコープはオーバーライドできず、クリアされるだけです。

だからこれはあなたが望むものを手に入れるでしょう:

#clear Unattended-Upgrade::Allowed-Origins;
// Only allow security Origin
Unattended-Upgrade::Allowed-Origins {
  "${distro_id}:${distro_codename}-security";
};

https://manpages.debian.org/testing/apt/apt.conf.5.en.html

2
silmaril