安装nvidia-opencl-icd-367会破坏软件包管理器


14

我正在使用图形驱动程序 ppa。今天我得到了一个更新对话框,其中说我可以将我的nvidia驱动程序更新为367.18(〜gpu16.04.6)。我像每次一样开始更新,但是失败了

Failed to get unit file state for var-lib-snapd-lib-gl.mount

重新启动后,我的图形驱动程序损坏了,我被迫进入恢复模式。

通常,当我的Nvidia驱动程序损坏时,我只需将其卸载并 sudo apt purge nvidia*重新安装即可。

在恢复模式下执行此操作将卸载所有nvidia-opencl-icd-367软件包,但软件包由于上述错误而失败。

尝试手动卸载此软件包会导致以下错误:

在此处输入图片说明 在此处输入图片说明


更新@ 20160605-解决方案:

遵循以下V ideonauth的回答即可解决此问题。请完成所有步骤,并确保sudo apt purge nvidia*成功删除 NVIDIA的所有内容且没有问题通过重新安装驱动程序之后,确保重新启动sudo apt install nvidia-367

这将使您的驱动程序重新工作。

如果这样做没有帮助,请尝试手动删除所有旧的xorg配置,sudo rm /etc/X11/xorg.conf* && sudo rm /etc/X11/xorg.conf然后再次重新安装驱动程序sudo apt install nvidia-367 --reinstall

如果仍然不能重新登录(典型错误:已输入登录屏幕->密码,请按Enter->返回登录屏幕),请尝试通过从Windows XP切换到文本控制台再次完全删除Nvidia驱动程序。使用Ctrl+ Alt+进行F1登录屏幕,使用您的帐户名和密码登录,在控制台中从此处下载适用于您显卡的驱动程序,并停止lightdm:

sudo service lightdm

使用以下命令安装Nvidia的二进制驱动程序 sudo ./NVIDIA-VERSION...

并重新启动系统:

sudo reboot now

系统:

Ubuntu 16.04 64位

Linux 4.4.0-22


1
我遇到了和您一样的问题,但使用了nvidia-340。!我使用了Videonauth的方法2,最后遇到了另外的麻烦:由于libcuda1-340错误而无法安装nvidia-361。libcuda1-340无法删除。我以与nvidia-opencl-icd-340相同的方式强制擦除libcuda1。之后,nvidia-361安装正常。感谢Videonauth的激进方法!
ipse lute

我可以确认这个问题。到目前为止,我看到了一种方法:为Nvidia禁用ppa-repo。
ipeacocks

如果您的问题已通过答案解决,请不要重复问题中的步骤。相反,请接受答案并投票。如果您想建议更改答案,请单击其下方的编辑链接以建议更改。
David Foerster,2016年

Answers:


17

可以解决此问题(今天早上我也遇到了同样的麻烦),您有两种方法:

1.启动板团队通过电子邮件向我提出的干净方法:

要解决此问题,您可以首先按切换到文本控制台Ctrl+ Alt+ F1,然后使用停止你的显示管理器sudo systemctl stop <displaymanager>,其中lightdmgdmsddm,或者你使用了哪些其它的显示管理器。

停止X可清除卸载失败,使您可以使用成功升级到〜gpu16.04.6,该版本不再包含有缺陷的补丁程序sudo apt upgrade。此时,您可以运行sudo systemctl reboot以重新引导系统,这将使系统恢复正常功能。

如果您仍然收到错误提示

Unit var-lib-snapd-lib-gl.mount not loaded.

您可以通过运行来解决此问题

sudo touch /lib/systemd/system/var-lib-snapd-lib-gl.mount && sudo systemctl daemon-reload

尝试重复升级之前。升级完成后,进行清理运行

sudo touch /lib/systemd/system/var-lib-snapd-lib-gl.mount

2.今天早上我通过强行强制彻底清除来解决此问题:

要变通解决此问题,您可以先按Ctrl+ Alt+ 切换到文本控制台F1,然后通过重新启动

sudo apt-get remove --purge nvidia*

其次是

sudo dpkg --remove --force-all nvidia-opencl-icd-367`

然后sudo apt-get autoremove是一个sudo apt-get clean,然后是一个sudo apt-get remove --purge nvidia

现在,它仍然要提到你不能删除然后切换到任何包/var/lib/dpkg/info,找到名为文件<packagename>.prerm<packagename>.postinst并且<packagename>.postrm,所有这些文件将执行以下(提防这不是明智的方法,以消除东西):

sudo su
> <packagename>.prerm
> <packagename>.postinst
> <packagename>.postrm
exit

完成此操作后,请照常开始删除

sudo apt-get remove <packagename>

这样做直到所有东西都被清除,然后

sudo apt-get update && sudo apt-get dist-upgrade

然后再次重新安装nvidia驱动程序,该驱动程序现在应该已经修复

sudo apt-get install nvidia-367

谢谢,我能够按照您的第二个建议完全卸载Nvidia驱动程序。我仍然不在桌面上(“典型”登录->返回登录屏幕问题),当前我正在尝试安装NVIDIA二进制驱动程序(生成正常工作的新x11.conf)
Flatron

1
很高兴我可以帮忙:)今天早上我遇到了这个问题,并且很难解决,直到找到解决方法。已经通过电子邮件向PPA小组发送了电子邮件,建议的解决方案是从他们那里获得的,第二个解决方案是我今天早上做的修复工作。
Videonauth

完美,只有Linux麻烦才是图形驱动程序。
几乎没有Edgers PPA的

1
我团结一致,遇到了同样的问题,并使用了正常的图形驱动程序团队ppa,因此我从您的问题中删除了edgers标记,所有这些均来自于上游,打包和推送的错误补丁。
Videonauth

谢谢。触摸就成功了。如果仅由于缺少一些明显不重要的文件而导致这种致命的失败,这是很愚蠢的吗?
二元异常
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.