Ubuntu

無人值守升級覆蓋 Allowed-Origins

  • August 5, 2018

我正在嘗試設置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";

也沒有工作。

可以簡單地註釋掉 中的行50unattended-updates,但是,如果可以的話,我真的很想保留原始文件。

在對 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

引用自:https://serverfault.com/questions/924538