是否可以配置 apt,以便 apt update 的输出不列出保留的软件包?

是否可以配置 apt,以便 apt update 的输出不列出保留的软件包?

这个问题涉及到臭名昭著的“以下软件包已被保留”消息,然而,我不是询问如何 (1) 禁用分阶段更新(我宁愿坚持“标准”更新周期);或 (2) 手动安装保留的软件包(我知道这是一种不好的做法)。相反,我正在寻找一种配置方法,以便运行apt时返回的“摘要消息”apt update完全忽略保留的软件包(特别是由于分阶段更新而保留的软件包)。

例如,刚才,运行时sudo apt update,我收到以下“底线”消息:

2 packages can be upgraded. Run 'apt list --upgradable' to see them.

随后,我运行sudo apt full-upgrade后发现,两个“可升级”包实际上被保留了下来,升级尝试是多余的:

The following packages have been kept back:
  libruby3.0 ruby3.0
0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.

因此,我正在寻找一种配置 apt 的方法,以便前面提到的“底线”消息apt update会“忽略”保留的软件包,而是报告没有什么可升级的(目前)。

有什么想法吗?据记录,我正在运行 Ubuntu 22.04,尽管我猜想该问题可能也与其他 Ubuntu 版本有关。

澄清: 我所要求的功能已经在 GUISoftware Updater工具中实现(也在 中Synaptic),其中关于可升级软件包的“状态报告”没有将保留的软件包考虑在内。

答案1

在我看来,唯一的解决方法是忽略输出(即最后一行):

# apt update
[...]
2 packages can be upgraded. Run 'apt list --upgradable' to see them.

而是使用以下输出:

# apt-get --dry-run  upgrade | grep 'upgraded\.$'
0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.

答案2

请记住,apt 存储库不会立即更改。当新软件包上传到存储库时,需要时间来上传其依赖项。在此期间,无法安装/升级软件包。

您无法配置此行为。

答案3

不,不是。你不能做你所要求的事。

相关内容