apt-get 卸载过程中出现“无法找到包”错误

Jes*_*han 5 package-management nvidia dpkg cuda

我正在尝试通过运行来清除旧的 CUDA 安装

sudo apt-get purge nvidia-*
Run Code Online (Sandbox Code Playgroud)

但我得到了错误

E: Unable to locate package nvidia-diag-driver-local-repo-ubuntu1604-390.46_1.0-1_amd64.deb
E: Couldn't find any package by glob 'nvidia-diag-driver-local-repo-ubuntu1604-390.46_1.0-1_amd64.deb'
E: Couldn't find any package by regex 'nvidia-diag-driver-local-repo-ubuntu1604-390.46_1.0-1_amd64.deb'
Run Code Online (Sandbox Code Playgroud)

安装完成后,我之前删除了 deb 文件。我尝试重新下载 .deb 文件并dpkg -i在其上运行,但这也不能解决错误。

dpkg -l | grep nvidia

ii  nvidia-390                                      390.48-0ubuntu0~gpu16.04.3                   amd64        NVIDIA binary driver - version 390.48
ii  nvidia-390-dev                                  390.48-0ubuntu0~gpu16.04.3                   amd64        NVIDIA binary Xorg driver development files
rc  nvidia-diag-driver-local-repo-ubuntu1604-390.46 1.0-1                                        amd64        nvidia-diag-driver-local repository configuration files
ii  nvidia-modprobe                                 390.46-0ubuntu1                              amd64        Load the NVIDIA kernel driver and create device files
ii  nvidia-opencl-icd-390                           390.48-0ubuntu0~gpu16.04.3                   amd64        NVIDIA OpenCL ICD
ii  nvidia-prime                                    0.8.2                                        amd64        Tools to enable NVIDIA's Prime
ii  nvidia-settings                                 396.18-0ubuntu0~gpu16.04.1                   amd64        Tool for configuring the NVIDIA graphics driver
Run Code Online (Sandbox Code Playgroud)

dpb*_*dpb 11

您正在对目录中的当前文件进行globbing。而不是你正在运行的,尝试:

sudo apt-get purge nvidia-\*
# or...
sudo apt-get purge 'nvidia-*'
Run Code Online (Sandbox Code Playgroud)

,告诉我这样做的主要线索是这样的:您试图删除名为像包blah.debapt-get purge输出。当然包都是不正常的命名方式...

要了解我的意思,请检查ls -l您的当前目录。您应该会看到匹配的 .deb 文件。如果您的当前目录中没有这些文件,则“nvidia-*”将原封不动地传递给apt-get purge命令。

要记住的好规则:最好用单引号保护您的参数,'以防止意外的 shell globbing 和其他扩展。