我见过很多关于在 64 位上安装 steam 的答案,但所有答案都涉及安装libnvidia-gl-450:i386
,这最终会替换其他软件所依赖的 64 位库。有没有办法同时获得两者?
答案1
sudo apt-get -o Dpkg::Options::="--force-overwrite" install -f libnvidia-common-450
尝试运行这个命令这是一个救生员为了很多人
还有这个——
sudo apt-get -o Dpkg::Options::="--force-overwrite" install -f libnvidia-gl-450:i386
答案2
我建议你简单地安装这些软件包,你可以将它们并排放置,就像我一样
$ dpkg -l | grep libnvidia-gl-
ii libnvidia-gl-440:amd64 450.119.03-0ubuntu0.20.04.1 amd64 Transitional package for libnvidia-gl-450
ii libnvidia-gl-450:amd64 460.91.03-0ubuntu0.20.04.1 amd64 Transitional package for libnvidia-gl-460
ii libnvidia-gl-460:amd64 460.91.03-0ubuntu0.20.04.1 amd64 NVIDIA OpenGL/GLX/EGL/GLES GLVND libraries and Vulkan ICD
ii libnvidia-gl-460:i386 460.91.03-0ubuntu0.20.04.1 i386 NVIDIA OpenGL/GLX/EGL/GLES GLVND libraries and Vulkan ICD
注意:安装libnvidia-gl-xxx
,然后nvidia-driver-xxx
答案3
免责声明:仍然不确定细节。该库仅包含模块及其安装文件。因此,我想我会回答这两个问题。
A.如何在不删除反依赖的情况下获取Lib,以及
B.如何同时加载两个模块。
A。
Apt 的一个方便的功能是,对于大多数模块,它允许您使用 来下载源代码而不是二进制文件apt-src
。您可以将此功能与dpkg-deb
从源代码包构建二进制文件的包一起使用,以便将库放入正确的位置而无需“安装”它们。它们将不受 dpkg 的监督,但对于您来说,这是一件好事(假设这是您要求的)。
执行此操作的命令如下:
apt source libnvidia-gl-450:i386 <---- Get the source
dpkg-deb --build
但是,我已经这样做了,并检查了其中的文件。它只是驱动程序和安装文件。似乎没有一个实际的库/api需要依赖包。(本来希望看到OpenGL实现,但我没有看到。也许只是命名约定不好?过一会儿我会检查一下控件。这是双重答案的部分原因。)
在继续之前,请注意 Nouveau 和 Nvidia 驱动程序是可以互换的。有些人对其中一种或另一种深信不疑,但它们在所有相同情况下都可以工作(直到它们不工作……一些应用程序过去曾遇到过与 Nvidia 驱动程序相关的问题。)
B.
总结
如果还没有检查,请检查 /etc/modprobe.d。删除功能可能来自内部文件。
即使卸载其中一个驱动程序,您仍然拥有这两个驱动程序。如果需要,您应该能够同时加载它们。
记住顺序很重要它们是否会同时加载。如果您阅读 的手册页modprobe.d
,您会注意到,当加载模块时,会运行一个脚本,无论 中是否存在脚本modprobe.d
。如果加载的模块没有脚本,则会运行模块中包含的别名命令。
这些脚本包含一组特殊命令(子集)。其中包括安装/加载依赖项、删除/卸载依赖项的命令,甚至在发出加载命令时运行特殊命令或脚本来代替加载。
就我们的情况而言,这意味着几件事:
1.) 有问题的模块只会在它自己的加载时间尝试卸载,因此如果另一个模块尚未加载,它将不会被加载。虽然删除仍然是可能的,但我认为在加载时删除竞争模块会有点过分(尽管也发生过更奇怪的事情)。
2.) 除非脚本通过命令在某处调用了一段无法访问的代码,否则这些模块的加载时行为是完全且易于配置的。如果它们设置了删除命令,您可以将其删除。如果 中没有脚本modprobe.d
,您可以使用 创建一个sudo touch <filename>
并添加依赖项。
虽然你可能不必这样做。首先尝试加载
$ modprobe <Nvidia-package>
$ modprobe <Nouveau-package>
如果这不起作用
$ modprobe <Nouveau-package>
$ modprobe <Nvidia-package>