安装Cuda工具包时出错: 发现已存在驱动程序的软件包管理器安装

我正在使用Ubuntu 16和Cuda toolkit 10.2进行工作。
我正在使用安装文件:cuda_10.2.89_440.33.01_linux.run。
我知道我需要删除之前安装的某些东西,但不确定具体是什么。
非常感谢任何建议。

2为什么您希望需要移除之前安装的软件包?那个软件包是什么?您安装的是哪个Ubuntu版本,16.04还是16.10?您是否在使用虚拟化技术,如果是的话,使用的是哪个软件包?请点击[编辑]并将这些重要信息添加到您的问题中,以便我们能够获得所有所需的事实。请不要使用添加评论功能。 - K7AAY
2我刚收到了同样的消息。以防万一有人想知道,在“找到驱动程序”之后,消息中会说类似于“强烈建议您中止操作”。这就解释了“需要移除先前安装的软件包”的原因。 - shmim
4个回答

如果您只想将CUDA工具包安装到/usr/local目录下,请运行以下命令:
sudo sh ./cuda_10.2.<spec>.run --toolkit --silent --override

如果你也需要Nvidia驱动程序,你可以尝试Albino Cordeiro提供的答案。
运行dpkg -l | grep Nvidia,然后使用sudo apt purge ...就可以解决问题了。
警告:上述操作将卸载你当前的Nvidia驱动程序。

在Ubuntu 18.04中遇到了这个确切的问题。经过一些搜索,我的解决方案如下:

  1. 如果你确定你的驱动程序版本与你要安装的cuda-toolkit版本匹配,请参考@domainxz的答案,在安装工具包时添加--toolkit参数,不用担心nvidia驱动程序。 请查看this链接以获取兼容性信息(滚动到CUDA Driver表)。

  2. 如果你希望CUDA为你处理兼容性问题,你需要卸载当前的驱动程序。 按照官方文档中的说明操作。 在重新启动后进入文本界面后,卸载之前的Nvidia驱动程序并运行cuda runfile。对于Ubuntu 18.04,我所做的并且有效的方法是:

    sudo apt-get remove --purge nvidia\*
    sudo apt-get autoremove
    sudo sh cuda-*.run --silient --override

官方文档实际上非常详细...只要确保按照每一步骤进行操作,你应该没问题。


我成功解决了我的问题。我管理着大量相同的服务器,通常使用一个.run文件(cuda_10.2.89_440.33.01_linux.run)来安装Cuda工具包。在这个特定的服务器上,我之前做了一些实验,忘记了我是如何以不同的方式安装了先前版本的Cuda(使用sudo apt install命令)。运行dpkg -l | grep Nvidia命令,然后再运行sudo apt purge ...命令就解决了问题。

9你是指 - dpkg -l | grep nvidia 吗? - Rohit Dhankar
3清除什么?... - Ahmad
1卸载CUDA,这样您就可以使用.run文件安装新版本。 - Albino Cordeiro
4我得到了一个包含25行的列表(例如,nvidia-cuda-dev,libnvidia-common-440...),你是指全部清除吗? - sAguinaga
1就我个人而言,那就是我所做的。 - Albino Cordeiro

进入了rootm与
$ sudo su

那么

# for FILE in $(dpkg-divert --list | grep nvidia-340 | awk '{print $3}'); do dpkg-divert --remove $FILE; done

那么

# apt --fix-broken install