卸载Nvidia CUDA Toolkit并安装新版本

我在Ubuntu 14.04上安装了CUDA 5.5软件包(该版本不支持此版本的Ubuntu),但我做得不好。
我想删除之前安装的内容并安装新的CUDA 6.5工具包,
在终端中输入以下命令:dpkg -l | grep -i nvidia
我得到以下输出:
ii  bbswitch-dkms                                         0.8-1~trustyppa1                                    all          Interface for toggling the power on NVIDIA Optimus video cards
ii  bumblebee                                             3.2.1-90~trustyppa1                                 amd64        NVIDIA Optimus support
ii  bumblebee-nvidia                                      3.2.1-90~trustyppa1                                 amd64        NVIDIA Optimus support using the proprietary NVIDIA driver
ii  libcublas5.5:amd64                                    5.5.22-3ubuntu1                                     amd64        NVIDIA CUDA BLAS runtime library
ii  libcuda1-331                                          331.38-0ubuntu7.1                                   amd64        NVIDIA CUDA runtime library
ii  libcudart5.5:amd64                                    5.5.22-3ubuntu1                                     amd64        NVIDIA CUDA runtime library
ii  libcufft5.5:amd64                                     5.5.22-3ubuntu1                                     amd64        NVIDIA CUDA FFT runtime library
ii  libcufftw5.5:amd64                                    5.5.22-3ubuntu1                                     amd64        NVIDIA CUDA FFTW runtime library
ii  libcuinj64-5.5:amd64                                  5.5.22-3ubuntu1                                     amd64        NVIDIA CUDA INJ runtime library (64-bit)
ii  libcurand5.5:amd64                                    5.5.22-3ubuntu1                                     amd64        NVIDIA CUDA Random Numbers Generation runtime library
ii  libcusparse5.5:amd64                                  5.5.22-3ubuntu1                                     amd64        NVIDIA CUDA Sparse Matrix runtime library
ii  libnppc5.5:amd64                                      5.5.22-3ubuntu1                                     amd64        NVIDIA Performance Primitives core runtime library
ii  libnppi5.5:amd64                                      5.5.22-3ubuntu1                                     amd64        NVIDIA Performance Primitives for image processing runtime library
ii  libnpps5.5:amd64                                      5.5.22-3ubuntu1                                     amd64        NVIDIA Performance Primitives for signal processing runtime library
ii  libnvtoolsext1:amd64                                  5.5.22-3ubuntu1                                     amd64        NVIDIA Tools Extension
ii  libnvvm2:amd64                                        5.5.22-3ubuntu1                                     amd64        NVIDIA CUDA Compiler NVVM runtime library
ii  nvidia-331                                            331.38-0ubuntu7.1                                   amd64        NVIDIA binary driver - version 331.38
ii  nvidia-cuda-dev                                       5.5.22-3ubuntu1                                     amd64        NVIDIA CUDA development files
ii  nvidia-cuda-doc                                       5.5.22-3ubuntu1                                     all          NVIDIA CUDA and OpenCL documentation
ii  nvidia-cuda-gdb                                       5.5.22-3ubuntu1                                     amd64        NVIDIA CUDA GDB
ii  nvidia-cuda-toolkit                                   5.5.22-3ubuntu1                                     amd64        NVIDIA CUDA toolkit
ii  nvidia-libopencl1-331                                 331.38-0ubuntu7.1                                   amd64        NVIDIA OpenCL Driver and ICD Loader library
ii  nvidia-nsight                                         5.5.22-3ubuntu1                                     amd64        NVIDIA Nsight Eclipse Edition
ii  nvidia-opencl-dev:amd64                               5.5.22-3ubuntu1                                     amd64        NVIDIA OpenCL development files
ii  nvidia-opencl-icd-331                                 331.38-0ubuntu7.1                                   amd64        NVIDIA OpenCL ICD
ii  nvidia-profiler                                       5.5.22-3ubuntu1                                      amd64        NVIDIA Profiler for CUDA and OpenCL
ii  nvidia-settings                                       331.20-0ubuntu8                                     amd64        Tool for configuring the NVIDIA graphics driver
ii  nvidia-visual-profiler                                5.5.22-3ubuntu1                                     amd64        NVIDIA Visual Profiler
ii  primus

我只想删除安装最新的CUDA工具包所需的内容。像bumblebee这样的软件包,我希望保持原样。
为了完成这个任务,我应该删除哪些软件包?哪些软件包不应该被删除?
9个回答

这种方法将完全删除Cuda:
简单地删除/usr/local/cuda-5.0中的CUDA文件。
高级

仅卸载nvidia-cuda-toolkit

sudo apt-get remove nvidia-cuda-toolkit

卸载nvidia-cuda-toolkit及其依赖项

sudo apt-get remove --auto-remove nvidia-cuda-toolkit

清除配置/数据

sudo apt-get purge nvidia-cuda-toolkit 或者 sudo apt-get purge --auto-remove nvidia-cuda-toolkit

此外,如果存在的话,请删除/opt/cuda~/NVIDIA_GPU_Computing_SDK文件夹,并从~/.bash_profile文件中删除export PATH=$PATH:/opt/cuda/binexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/cuda/lib:/opt/cuda/lib64这两行。


2这对我来说并没有删除文件。实际上,似乎通常的删除并没有清理剩余的内核模块... - e-sushi
@marbel 有没有更好的方法? - Nathan majicvr.com
@marbel,你能解释一下为什么我们不应该使用apt-get吗? - Nagabhushan S N
@marbel说“这是一个糟糕的回答”或者“去谷歌一下”,这种回应是我见过最糟糕的。如果这是一个糟糕的回答,那么请解释一下你为什么这样认为!顺便说一句,你觉得人们是怎么到这里来的?是通过谷歌搜索的,我的朋友。 - Azim
你可以在NVIDIA论坛上找到一些答案。这里的“解决方案”经常改变,很难找到可靠的信息。对我来说,当时的解决方法是重新安装操作系统,我是在NVIDIA论坛上得到的这个建议。 - marbel

为了移除cuda,Nvidia准备了一个文件(我假设这是一种标准方法)。您需要将目录更改为cuda的路径,默认情况下为/usr/local/cuda-x.y/bin;其中x.y是您的cuda版本,您可以使用以下命令来完成:(我有cuda 9.0=x.y
 cd /usr/local/cuda-9.0/bin

在这个目录中有一个名为uninstall_cuda_9.0.pl的文件(请注意cuda版本是9.0),所以运行uninstall_cuda_9.0.pl来彻底从您的系统中移除cuda!
chmod +x uninstall_cuda_9.0.pl
sudo ./uninstall_cuda_9.0.pl

一旦输入密码,cuda文件将被删除。(这可能需要几分钟的时间)
注意:如何确定已在您的Ubuntu系统上安装了哪个cuda? 通过使用命令“nvcc”,您可以在“nvcc”结果的最后一行看到我的cuda版本为“9.0”。
nvcc --version

结果将会是这样的:
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:03_CDT_2017
Cuda compilation tools, release 9.0, V9.0.176 

请注意,上述方法只在正确设置了$PATH变量的情况下有效。如果您的nvcc命令无法正常工作,请使用以下命令在终端中查找cuda版本。
ls /usr/local/ | grep cuda

更新

我在我的系统上安装了Cuda 10.2,看起来没有uninstall_cuda_x.x.pl这个文件,但是NVIDIA把这个文件替换成了同一目录下的cuda-uninstaller文件。


24对我来说,这个sudo ./uninstall_cuda_9.0.pl文件不存在,应该怎么办? - kRazzy R
1在11.2版本中,似乎在“bin”文件夹中也找不到“cuda-uninstaller”。 - Silicomancer
1对于CUDA 11.2来说,根据安装指南,它应该位于/usr/local/cuda-11.2/bin/cuda-uninstaller(即在bin文件夹中)。但是我自己找不到它。 请参考https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#choose-installation-method的第2.8节。 - Tare

确保您使用的安装CUDA工具包的方法。这个回答适用于使用deb文件安装cuda的人。我不知道这对于.run文件是否有效。

sudo apt-get autoremove --purge cuda 

这可以清除cuda工具包。你可以检查文件夹/usr/local/cuda是否已删除。而且这个命令是移除apt安装的应用程序的最佳选择。
但是当你重新安装另一个版本的cuda时,你必须使用:
sudo apt-get install cuda-x.x

版本号必须包含在内。我尝试在卸载了之前的版本后安装另一个版本的CUDA,但发现sudo apt-get install cuda仍然会安装之前的版本。

应该是sudo apt-get install x-x,例如:sudo apt-get install cuda-9-0 - coolscitist
@coolscitist,感谢您的评论。两个都可以。我已经检查过了。 - Moonlight Knight
4不应该是类似于 cuda* 这样的东西吗?例如,运行 $ sudo apt-get --purge remove cuda* - GyuHyeon Choi
@GyuHyeonChoi 好建议。这对你有用吗?如果是的话,那是一个不错的选择。 - Moonlight Knight
谢谢。你回答中的一些小细节帮我节省了时间。 - smerllo
@GyuHyeonChoi 确实有必要使用cuda* - GR4
如何移除cudnn? - mLstudent33
@mLstudent33 我认为这取决于你如何安装它。例如,你可以直接通过 conda install -c anaconda cudnn 安装 cudnn。如果是这样的话,你可以使用 conda uninstall。这是我记得的。 - Moonlight Knight

对于CUDA 10.1或更高版本,请尝试:

sudo /usr/local/cuda/bin/cuda-uninstaller

对于CUDA 10.0,请尝试以下操作:
sudo  /usr/local/cuda/bin/uninstall_cuda_10.0.pl

1CUDA 10.2没有uninstall-cuda*或cuda-uninstaller。至少我找不到它们。 - Bobbi Bennett
1@BobbiBennett 试一下第一个指令 - Panagiotis Simakis
11.2版本中两者均不存在。 - Silicomancer

尝试:

sudo apt-get --purge -y remove 'cuda*'
sudo apt-get --purge -y remove 'nvidia*'
sudo reboot

它会删除所有已安装的CUDA和NVIDIA软件包,然后您可以从https://developer.nvidia.com/cuda-toolkit-archive安装任何您喜欢的特定版本。

1请不要在多个帖子中发布相同的答案。如果问题彼此相似且足够相似以至于可以视为重复,请标记它们为重复,而不是直接复制粘贴相同的答案到多个问题中。 - Thomas Ward
这个缺少了libcublas*。 - Carlo Wood

不应该像在其他答案中建议的那样,手动删除通过apt安装的文件(来自某些ppa或nvidia存储库)。
正确的卸载方法是只卸载cuda并保留您的nvidia驱动程序。
sudo apt purge "libcublas*" "cuda-*" cuda

可能的,因为它们被安装为要求,你也可以清除。
sudo apt purge "nsight-*" nvidia-modprobe

之后,如果你愿意的话,你也可以使用以下命令删除NVIDIA驱动程序:
sudo apt purge "*nvidia*"

当然,如果你是使用Nvidia的.run文件安装的Cuda,那么这个方法不适用;在那种情况下,你可能有一些卸载脚本。

请参考下面的链接,它将帮助您决定您的新安装和旧安装的CUDA是否会发生冲突。如果它们没有冲突,您应该能够保留它们。
如果已经安装了CUDA的版本,您可以执行以下操作:
根据安装方法的不同,直接卸载的方法也会有所不同,无论是运行文件还是deb文件等。
使用以下命令来卸载Toolkit运行文件安装: $ sudo /usr/local/cuda-X.Y/bin/uninstall_cuda_X.Y.pl
使用以下命令来卸载Driver运行文件安装: $ sudo /usr/bin/nvidia-uninstall
使用以下命令来卸载Deb安装: $ sudo apt-get --purge remove Nvidia冲突安装

删除软件包时不会中断(强制方式),因为没有其他方法可以做到。
PKG="something" ## in our case its Nvidia or/and CUDA 
for item in `dpkg -i grep ${PGK} | awk '{print $2}'` ; do dpkg --remove --force-all $item ; done 

它将无问题地删除这些软件包。

这个人真勇敢 :P - Panagiotis Simakis

在我的情况下,我尝试了上述所有解决方案,但它们都没有起作用。 nvcc -V 始终返回版本 11.7。
但最后我发现是因为我的 conda 环境被激活了。
在取消激活 conda 后,nvcc -V 命令就无法工作了。
虽然这是一个愚蠢的经历,但如果有人遇到同样的问题,我还是想分享一下。