这个问题涉及到臭名昭著的“以下软件包已被保留”消息,然而,我不是询问如何 (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
不,不是。你不能做你所要求的事。