我想了一下,发现问题出在哪里了,应该是你不懂apt源的priority机制
【 在 snnn (cm) 的大作中提到: 】
: 标 题: ubuntu坑爹的nvidia显卡驱动apt repo
: 发信站: 水木社区 (Wed Dec 29 07:23:39 2021), 站内
:
: Ubuntu的官方repo里有nvidia的显卡驱动。一般来说如果你有需要,装上就行了。
: 但是呢,假如你要做机器学习,一般你还得装cuda。这个时候添加Nvidia的apt repo,并且从那安装。Nvidia不允许别人分发它家的CUDA binary。最恶心的是,如果你要安装CUDNN,还得注册账号并登录。那账号还各种2FA,登录IP验证,邮箱验证。算了,此处略去不表。
:
: 这里要说的问题是:显卡驱动在Ubuntu的官方repo和Nvidia的repo中都有。同样的名字,不同的内容。显卡驱动不仅仅是一个apt包,而是很多包。主包在两边都有,Ubuntu这边的那个主包的依赖包要少一些。Nvidia的那个主包依赖包要多一些。Ubuntu这边的那个主包版本号更新一些。Nvidia很懒,经常忘记把自己新版的驱动发布到自家的apt repo中去。于是问题来了,如果你从Ubuntu拿了最新的显卡驱动的主包,可能会导致它与你已经安装的CUDA不兼容。因为CUDA是从Nvidia的repo来的。Nvidia只是保证它自己的repo内部是一致的。
:
: 所以你有两个选择:
: 1. 不要从Ubuntu的官方repo安装显卡驱动。但是缺点是:你得不到该驱动的安全更新。如果只是自用,安全性要求没那么高,这没什么关系。
: 2. 如果你从Ubuntu的官方repo安装显卡驱动,一定要先卸载干净所有从nvidia repo来的东西。并确保将来一定不从nvidia repo安装显卡驱动。
:
: 再次强调:这两个包虽然名字一样,但是内容不同,依赖包也不同。版本号可能一致可能不一致。
:
:
Last words: top 1原则:对正式生产环境来说永远不要使用多repo。不管是nuget repo还是apt repo还是其它什么。上面所说的内容冲突只是冰山一角。它既然能给你造成稳定性问题,它同样可以给你造成安全性问题。多repo不安全!!!!自建repo自己管理镜像同步才是王道。
:
:
: --
:
: ※ 来源:·水木社区
http://www.mysmth.net·[FROM: 107.139.34.*]
--
FROM 111.203.146.*