有一个十年前就已回答的问题“以下包裹已被保留:”为什么以及我该如何解决?。
答案围绕以下三个主题而变化:
sudo apt-get --with-new-pkgs upgrade <list of packages kept back> # theme 1
sudo apt-get dist-upgrade # theme 2
sudo apt-get install <list of packages kept back> # theme 3
我对这个问题的理解是;我运行sudo apt-get update; sudo apt-get upgrade
后看到以下输出:
The following packages have been kept back:
coreutils libpulse-dev libpulse-mainloop-glib0 libpulse0 libpulse0:i386
libpulsedsp pulseaudio-utils snapd update-notifier update-notifier-common
0 upgraded, 0 newly installed, 0 to remove and 10 not upgraded.
每次我运行 时都是这样sudo apt-get update; sudo apt-get upgrade
。我不记得每次都是相同的 10 个包还是大约 10 个不同的包。无论如何,我继续尝试前面提到的解决方案:
sudo apt-get --with-new-pkgs upgrade <list of packages kept back> # theme 1
sudo apt-get dist-upgrade # theme 2
这些都不起作用(是的,我确实<list of packages kept back>
用保留的软件包的实际名称替换了它们)。发出这些命令后,我的终端上什么也没有显示。只有两行空白。所以我不得不尝试最后一个选项:
sudo apt-get install <list of packages kept back> # theme 3
这可行,但也存在问题:
- 我必须从终端输出复制/粘贴(我总是忘记终端复制/粘贴快捷键)
- 我的终端中总是有空格、换行符等无法顺利复制/粘贴
- 我自己也会犯错和人为错误
- 这只是一种糟糕的做事方式,你明白我的意思。
有没有干净的方法运行一个命令(或脚本)来通过 apt 升级我的系统?我甚至(喘息)现在会满足于 GUI 升级按钮。每次升级我的任何<list of packages kept back>
系统时,总是有一个升级按钮只是个小小的麻烦。
答案1
这是最近发生的事情分阶段更新。
无需采取任何措施。通常需要几天时间才能确保更新的软件包是安全的。
答案2
包裹被扣留可能有两个原因:
- 该商品正在分阶段发布,因此并非每个人都能同时收到。只需等待,商品最终就会送达。使用以下方式检查包裹状态:
apt-cache policy pulseaudio
pulseaudio:
Installed: 1:15.99.1+dfsg1-1ubuntu2.1
Candidate: 1:15.99.1+dfsg1-1ubuntu2.2
Version table:
1:15.99.1+dfsg1-1ubuntu2.2 500 (phased 70%)
...snip
您可以通过以下方式强制交货:
sudo apt -o APT::Get::Always-Include-Phased-Updates=true upgrade --dry-run
--dry-run
当您检查完该组后,将其删除。
- 软件包已报告严重问题,因此暂时停止交付。apt-cache 策略不会报告分阶段百分比。除非您想帮助调试,否则请等待其重新发布。