如何防止Ubuntu上NVIDIA驱动自动升级?

问题描述 投票:0回答:3

我昨晚在我的 Ubuntu 工作站上训练模型,然后今天早上醒来看到了这条消息:

Failed to initialize NVML: Driver/library version mismatch

显然 NVIDIA 系统驱动程序已自动更新,现在我需要重新启动机器才能使用我的 GPU...如何阻止 NVIDIA 自动更新?

tensorflow ubuntu pytorch nvidia nvidia-docker
3个回答
13
投票

如果这是因为无人值守升级(可能),那么您应该将 NVIDIA 驱动程序添加到其黑名单中。将

nvidia-
libnvidia-
添加到
/etc/apt/apt.conf.d/50unattended-upgrades
,如下所示:

Unattended-Upgrade::Package-Blacklist {
        "nvidia-";
        "libnvidia-";
        ...
}

如果您在

apt list --installed | grep nv

的输出中看到任何其他 NVIDIA 驱动程序名称,请考虑添加其他行

1
投票

我想我也遇到过同样的问题。这是因为 Ubuntu 上所谓的无人值守升级。

解决方案1:检查更改的包并恢复更新

检查 apt 历史日志

less /var/log/apt/history.log

然后你就可以看到哪些包发生了变化。使用

apt
aptitude
恢复更改。

解决方案2:禁用无人值守升级

使用this指南禁用无人值守升级。请考虑此解决方案是否适合您,因为在此更改后您必须手动安装安全更新。

解决方案3:保留特定包裹

使用this指南了解如何保存某些包裹。阅读上面提到的 apt 历史记录来确定您必须搁置哪些软件包。可能是 CUDA 相关的包,例如

nvidia-cuda-toolkit
。很难说,因为您的帖子中缺少一些信息。你可以像这样看到所有nvidia相关的包

dpkg -l *nvidia*

我希望我的解决方案至少有一个适合您:)

附注你必须改变标题。 NVIDIA 不会自行升级您系统上的任何内容。 Ubuntu 是给你带来麻烦的那个;)


-1
投票

如果您检查您的

/var/log/dpkg.log
,您会发现它会在清晨自动升级您的
nvidia*
libnvidia*
软件包,如屏幕截图所示。禁用此功能的更积极的方法是
sudo apt remove unattended-upgrades
参考

© www.soinside.com 2019 - 2024. All rights reserved.