在执行时sudo apt upgrade
,我收到以下错误(或警告,不确定它是什么):
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
libnvidia-cfg1-440 libnvidia-compute-440 libnvidia-compute-440:i386 libnvidia-decode-440 libnvidia-decode-440:i386 libnvidia-encode-440 libnvidia-encode-440:i386
libnvidia-extra-440 libnvidia-fbc1-440 libnvidia-fbc1-440:i386 libnvidia-gl-440 libnvidia-gl-440:i386 libnvidia-ifr1-440 libnvidia-ifr1-440:i386
nvidia-compute-utils-440 nvidia-driver-440 nvidia-kernel-common-440 nvidia-kernel-source-440 nvidia-utils-440 xserver-xorg-video-nvidia-440
0 upgraded, 0 newly installed, 0 to remove and 20 not upgraded.
我找到了解决方案(运行sudo apt install <package-name>
)。我还发现了为什么会这样。这是因为新版本有未满足的依赖关系。
但我怀疑这样做是否安全sudo apt install <package-name>
,或者系统会在几天内处理这个问题。如果是这样,那么需要多少天才能自行解决这个问题?
编辑1:
我当前的 Nvidia 驱动程序是 440。
答案1
您看到此消息通常有四个原因:
升级过程需要添加包:使用
--with-new-pkgs upgrade
。如果没有这个,apt upgrade
就不会添加或删除新的包。升级过程需要消除包:仔细检查您的 apt 配置,哪些软件包将被删除,分析可能的后果,检查您的备份……然后:
apt full-upgrade
。将添加或删除完成升级所需的软件包。apt full-upgrade
只有在 中有坏的存储库时才会很危险/etc/apt/sources.list*
。最好知道 会full-upgrade
升级所有软件包,但是使用默认存储库应该没问题。不是使用full-upgrade
可能很危险,因为您可能会错过安全更新。来源apt full-upgrade
可以删除和添加软件包,但实际上并不危险。如果您的 sources.list 文件有问题,任何软件包安装命令都可能造成严重损害!常规命令apt upgrade
将安装任何启用的软件源中的任何软件包;full-upgrade
这种方式并不唯一。来源相关包裹被标记为滞留:(
sudo apt-mark showmanual | grep nvidia
例如)列出的软件包中有一个是apt upgrade
? 列出的问题软件包。在这种情况下,应该分析是谁/为什么这些软件包被这样标记。例如,我有一个问题
flatpak
,通过添加其 PPA 从 1.11.1 移至 1.14.4 进行了修复。出于某种原因,flatpak 标记为被阻止xdg-desktop-portal
(Flatpak 和 Snap 的桌面集成门户)。取决于不可用的软件包或版本:这可能是暂时的问题,也可能是适当的错误配置。
其他说明
不确定如何使用
full-upgrade
?试试用--dry-run
。来自apt 手册:-s
,,,,,,:无操作;根据当前系统状态模拟将要发生的事件,但实际上不会改变系统--simulate
。--just-print
--dry-run
--recon
--no-act
dist-upgrade
不会更新整个发行版(如do-release-upgrade
)。这是用词不当。full-upgrade
等价于. 避免使用dist-upgrade
.
有时sudo ubuntu-drivers install
可能会尝试降级您的 NVIDIA 驱动程序。我不确定为什么。