我尝试了在这个网站和其他网站上找到的许多不同的解决方案,例如
sudo apt update && sudo apt upgrade
sudo apt list --upgradeable
sudo apt full-upgrade
sudo apt dist-upgrade
并且不显示包的信息或更新。我也尝试过
aptitude update
并检查了日志,没有显示有关该包的信息。
关于如何识别这个包有什么想法吗?
我目前的猜测是,它可能与该文件有关sources.list
。对此有何评论?
我有 Linux Mint 和最新发行版 Ulyana / Focal。
非常感谢!
答案1
apt upgrade
会告诉你它想做什么,包括包升级;这将包括不会升级的软件包列表:
$ sudo apt upgrade -o APT::Get::Show-Upgraded=true
The following packages were automatically installed and are no longer required:
[any packages which could be auto-removed]
Use 'sudo apt autoremove' to remove them.
The following NEW packages will be installed:
[any packages which will be installed]
The following packages have been kept back:
[any packages which are upgradeable but won’t be upgraded]
The following packages will be upgraded:
[any packages which will be upgraded]
NN upgraded, NN newly installed, NN to remove and NN not upgraded.
Need to get ... of archives.
After this operation, ... of additional disk space will be used.
Do you want to continue? [Y/n]
(替换NN
为反映上面列出的包的四个不同值)。
如果这仍然没有向您显示任何内容,则可能是本地安装了未升级的软件包(但是,apt
可能不想升级它......)。调查这个问题的一个好工具是apt-show-versions
:
sudo apt install apt-show-versions
然后运行
apt-show-versions | grep "No available version in archive"
查看配置的存储库中不可用的包,以及
apt-show-versions | grep upgradeable
查看哪些软件包可以升级(无论是否apt
会升级它们)。
您通常可以了解更多有关为什么该软件包不会通过apt install
使用软件包名称运行来升级。如果其升级会导致另一个包被删除,upgrade
则会跳过它,但full-upgrade
会升级它。
另一种可能性是升级候选者被阻止;特别是在 Linux Mint 上,这可能会发生在snapd
,即默认禁用通过/etc/apt/preferences.d/nosnap.pref
配置文件。
答案2
apt
如果升级一个包需要删除另一个包,通常会这样做。您可以使用以下方式应用升级
apt dist-upgrade
apt
会询问您是否要实际更新软件包,因此您也可以使用它来首先列出软件包。
答案3
/etc/apt/preferences.d/nosnap.pref
就我而言,同样的错误是由于 Linux Mint 软件包安装的文件存在ubuntu-system-adjustments
以禁用snapd
.
注释掉该文件的内容nosnap.pref
或删除该文件可以解决该问题。