如何在不卸载 64 位库的情况下安装 Steam?

如何在不卸载 64 位库的情况下安装 Steam?

我见过很多关于在 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>

相关内容