I've seen lots of answers for installing steam on 64-bit, but all of them involve installing
libnvidia-gl-450:i386, which ends up replacing my 64-bit libraries that other software depends on. Is there any way to get both?
I suggest you simply install the packages, you can have them side by side, as I have
$ 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
Disclaimer: Still not sure of the details. The lib just contains the modules, along with their installation files. Therefore, I guess I will answer both questions.
A. How to get the Lib without deleting the anti-dependencies, and
B. How to load both modules at the same time.
One handy feature of Apt is that it lets you down load, for most modules, the source instead of the binaries with
apt-src. You can use this with
dpkg-deb a package for building binaries from source packages, to get the libraries into the proper location without "installing" them. They will not be under dpkg supervision, but in your case, that is a good thing (assuming that is what you were asking for).
The commands to do this are as follows:
apt source libnvidia-gl-450:i386 <---- Get the source dpkg-deb --build
However, I did this already and inspected the files within. It is just drivers and installation files. There doesn't seem to be an actual library / api for which a package would need a dependency. (Expected to see an OpenGL implementation, but I didn't. Maybe it is just bad naming conventions? I will check the control after a while. This is part of the reason for the double answer..)
Before you go any further, take note that Nouveau and Nvidia drivers are interchangeable. Some swear by one or the other, but they both work in all the same situations (until they don't.. some applications have had trouble with Nvidia drivers in the past.)
Check /etc/modprobe.d if you haven't already. The delete functionality is possibly / likely coming from a file inside.
You still have both drivers, even if one is unloaded. You should be able to load them both simultaneously, if needed.
Keep in mind the order does matter as to whether or not they will both load simultaneously. If you read the man-page for
modprobe.d, you'll notice that when a module is loaded, a script is run, whether or not a script is present in the
modprobe.d. If a script is not present for the module being loaded, an alias command contained within the module is run.
These scripts contain (a subset of) a special set of commands. Among these are commands to install / load dependencies, delete / unload dependencies, and even run a special command or script instead of loading when the load command is issued.
For our context, this means a couple of things:
1.) The offending module only tries to unload at it's own load time, so if the other is not yet loaded, it will not yet be loaded. While a delete would still be possible, I would think that deleting the competition on load would be a bridge too far (although stranger things have happened.)
2.) Unless the script calls an inaccessible piece of code somewhere via command, the load-time behavior of these modules is completely and easily configurable. If they set a remove command, you can erase it. If there is no script in
modprobe.d, you can make one with
sudo touch <filename> and add dependencies.
Although you may not have to do that. First try loading with
$ modprobe <Nvidia-package> $ modprobe <Nouveau-package>
and if that doesn't work
$ modprobe <Nouveau-package> $ modprobe <Nvidia-package>