背景:我购买了 NVIDIA 显卡并尝试安装其驱动程序。一路上我搞砸了,现在我在 Cinnamon 备份模式下运行我的计算机(我有 Ubuntu,但我删除了 Unity 并将其替换为 Cinnamon)。我想从头开始(在此之前,我使用的是酷睿 i3,没有显卡)。
问题:当我输入时,sudo dpkg -l | grep -i nvidia
我会得到一个结果列表:
但当我输入时,sudo apt-get remove --purge nvidia-*
它说我没有找到匹配项。
我尝试了其他几种不同的方法,得到了类似的结果。再次,我想通过删除所有不必要的文件来重新开始。
如何删除所有不必要的 nvidia 文件?
答案1
它在这里不是特别有用(您可以按照注释修复转义),但在您想要搜索整行的情况下dpkg -l
,您可以通过类似的东西运行它awk
,然后apt-get purge
以最小的条件进入:
sudo apt-get purge $(dpkg -l | awk '$2~/nvidia/ {print $2}')
这应该会在执行任何操作之前提示您,但为了以防万一,您可以使用以下命令进行测试:
apt-get -s purge $(dpkg -l | awk '$2~/nvidia/ {print $2}')
答案2
问题是*
你的 shell 正在扩展它前它被传递到apt-get
.您的当前目录中可能有一个文件或目录,其名称以 开头,nvidia-
并且正在传递给apt-get
.为了显示:
$ ls -l
-rw-r--r-- 1 terdon terdon 0 Jul 16 17:22 nvidia-foo
$ sudo apt-get -s purge nvidia-*
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package nvidia-foo
这是因为实际运行的内容是sudo apt-get -s purge nvidia-foo
sincenvidia-*
扩展为nvidia-foo
before传递给apt-get
.这就是为什么你应该总是引用你的 glob:
$ sudo apt-get -s purge 'nvidia-*'
答案3
如果您只能访问 GRUB:
- 重启你的电脑
Advanced options for Ubuntu
在 GRUB 引导菜单中选择- 选择
Ubuntu ..... (recovery mode)
dpkg
在恢复菜单中选择修复损坏的软件包(这将停止 nvidia 进程,以便我们可以卸载)。选择是。完成后按 ENTER(即使发现问题)- 选择
root
(在恢复菜单中拖放到 root shell 提示) - 输入您的根密码
- 类型:
apt-get remove --purge nvidia-*
- 如果完成,输入:
reboot
- 照常启动,现在应该进入 Ubuntu 登录屏幕