修复对 Ubuntu 22.04 的损坏依赖 - 神秘的 libnvidia-nscq 不允许更新或安装现有软件包

修复对 Ubuntu 22.04 的损坏依赖 - 神秘的 libnvidia-nscq 不允许更新或安装现有软件包

我有 Ubuntu 22.04 和 Nvidia 515.86.01(专有),以及 CUDA 工具包和 cuDNN。

nvidia/515.86.01, 5.15.0-53-generic, x86_64

三周假期后,我回来了,想要安装一些工具(例如 Evince)。我很惊讶地发现,apt-get由于一个神秘的原因,与软件包安装或升级相关的任何内容都不起作用libnvidia-nscq

Reading package lists... 
Done Building dependency tree...
Done Reading state information...
Done You might want to run 'apt --fix-broken install' to correct these. 
The following packages have unmet dependencies:  libnvidia-nscq-510 : Depends: libnvidia-nscq-515 but it is not installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

据我所知

  • NSCQ是一个NVswitch,这是Nvidia关于服务器和GPU的东西
  • 510版本是一个过渡包

运行dpkg -l *nvidia*返回以下内容(除其他外)

iU  libnvidia-nscq-510                  515.86.01-0ubuntu0.22.04.1 amd64        Transitional package for libnvidia-nscq-515
in  libnvidia-nscq-515                  <none>                     amd64        (no description available)

我无法弄清楚这种 NSCQ 依赖性从何而来。另外,510 依赖于 515 是相当奇怪的,但也许我误解了这一行。

apt-cache depends libnvidia-nscq-515
libnvidia-nscq-515
  Conflicts: <libnvidia-nscq>
    libnvidia-nscq-450
    libnvidia-nscq-470
    libnvidia-nscq-525
  Replaces: <libnvidia-nscq>
    libnvidia-nscq-450
    libnvidia-nscq-470
    libnvidia-nscq-515
    libnvidia-nscq-525

我既不能跑apt-get upgrade,也不能apt-get autoremove,也不能apt-get install <package>。我确实apt-get clean删除了缓存的包,然后使用apt-get update.

如果我要删除 Nvidia 驱动程序和 CUDA 工具包,我非常确定它会破坏我的机器学习设置(PyTorch 和 TensorFlow)。当涉及到使用哪个版本的驱动程序/CUDA/cuDNN 时,这些工具非常繁琐。

更新:

根据评论中的要求:

apt policy libnvidia-nscq-515

libnvidia-nscq-515:
  Installed: (none)
  Candidate: 515.86.01-0ubuntu0.22.04.1
  Version table:
     515.86.01-0ubuntu0.22.04.1 500
        500 http://de.archive.ubuntu.com/ubuntu jammy-updates/restricted amd64 Packages
        500 http://security.ubuntu.com/ubuntu jammy-security/restricted amd64 Packages
     515.48.07-0ubuntu0.22.04.2 500
        500 https://ppa.launchpadcontent.net/canonical-kernel-team/ppa/ubuntu jammy/main amd64 Packages

答案1

这种转变有点令人困惑,因为在 22.04 中,libnvidia-nscq-510是在多元宇宙中,但libnvidia-nscq-515在限制中。要成功升级,您需要启用受限存储库。

答案2

现在,我能够通过手动安装所需的包来解决这个问题(如果在适当的时候出现一些随机问题,我不会感到惊讶)/var/cache,失败的 APT 显示了该包:

sudo dpkg -i --force-overwrite /var/cache/apt/archives/libnvidia-nscq-515_515.86.01-0ubuntu0.22.04.1_amd64.deb

我没有收到任何错误,并且升级/安装其他软件包(与上述软件包无关),没有任何明显的问题。

相关内容