NVIDIA 440.64 32 位库包破解 64 位驱动包

Sne*_*ppy 11 nvidia steam 32-bit libraries drivers

几分钟前,我正在运行带有 NVIDIA 440.59 专有驱动程序 (GTX 970) 的 Ubuntu 18.04 安装。然后我决定手动升级到 440.64,即使 apt 保留它,现在 Steam 不再启动,因为,正如我后来发现的,它依赖于 NVIDIA 32 位库。

问题是,安装 OpenGL 32 位库会破坏其他软件包:

-@-:~$ sudo apt-get install libnvidia-gl-440:i386 -s
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  libnvidia-cfg1-440 libnvidia-decode-440 libnvidia-encode-440 libnvidia-fbc1-440 libxnvctrl0 nvidia-compute-utils-440 nvidia-dkms-440
  nvidia-kernel-common-440 nvidia-kernel-source-440 nvidia-prime nvidia-settings nvidia-utils-440 screen-resolution-extra xserver-xorg-video-nvidia-440
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
  libnvidia-gl-440 libnvidia-ifr1-440 nvidia-driver-440 // <====
The following NEW packages will be installed:
  libnvidia-gl-440:i386
0 upgraded, 1 newly installed, 3 to remove and 0 not upgraded.
Remv nvidia-driver-440 [440.64.00-0ubuntu1]
Remv libnvidia-ifr1-440 [440.64.00-0ubuntu1]
Remv libnvidia-gl-440 [440.64.00-0ubuntu1]
Inst libnvidia-gl-440:i386 (440.64-0ubuntu0~0.18.04.2 Proprietary GPU Drivers:18.04/bionic [i386])
Conf libnvidia-gl-440:i386 (440.64-0ubuntu0~0.18.04.2 Proprietary GPU Drivers:18.04/bionic [i386])
Run Code Online (Sandbox Code Playgroud)

我必须假设 440.59 不会发生这种情况,因为我能够启动 Steam 并运行我的 OpenGL/CUDA 程序。有什么方法可以强制它安装这些库?或者,是否可以恢复到 440.59,或者我是否必须降级到 435/430?驱动程序是从图形驱动程序ppa安装的。

Sne*_*ppy 14

如果有人感兴趣,我会更深入地查看并发现我为 NVIDIA 驱动程序添加了两个源,一个是图形驱动程序 ppa,另一个是 CUDA 存储库。CUDA 存储库中的版本(440.64.00-0ubuntu1,反对440.64-0ubuntu0~0.18.04.2在 ppa 中)是安装的主要候选版本,但没有提供 32 位库。因此,唯一的问题是尝试安装不同版本的 32 位库。

我所做的是清除所有 NVIDIA 软件包,暂时禁用 CUDA 存储库并重新安装所有内容。现在来自 CUDA 存储库的更新被保留,因为没有候选者将 32 位库更新到该版本,但一切正常。

脚步

  • 删除 NVIDIA 驱动程序和库:

    $ sudo apt-get purge nvidia-* libnvidia-*
    
    Run Code Online (Sandbox Code Playgroud)
  • 禁用CUDA回购,或者重命名cuda.list/etc/apt/sources.list.d或注释掉的内容:

    $ sudo nano /etc/apt/sources.list.d/cuda.list
    #deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 /
    
    Run Code Online (Sandbox Code Playgroud)
  • 更新并检查候选版本:

    $ sudo apt-get update
    $ apt-cache policy nvidia-driver-[version] libnvidia-gl-[version]:i386
    
    Run Code Online (Sandbox Code Playgroud)

    启用两个源的我的看起来像这样,如果禁用 CUDA 存储库,它们应该显示相同的版本表和相同的候选版本:

    nvidia-driver-440:
    Installed: 440.64-0ubuntu0~0.18.04.2
    Candidate: 440.64.00-0ubuntu1
    Version table:
        440.64.00-0ubuntu1 500
            500 http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64  Packages
    *** 440.64-0ubuntu0~0.18.04.2 500
            500 http://ppa.launchpad.net/graphics-drivers/ppa/ubuntu bionic/main amd64 Packages
            100 /var/lib/dpkg/status
        440.33.01-0ubuntu1 500
            500 http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64  Packages
    libnvidia-gl-440:i386:
    Installed: 440.64-0ubuntu0~0.18.04.2
    Candidate: 440.64-0ubuntu0~0.18.04.2
    Version table:
    *** 440.64-0ubuntu0~0.18.04.2 500
            500 http://ppa.launchpad.net/graphics-drivers/ppa/ubuntu bionic/main i386 Packages
            100 /var/lib/dpkg/status
    
    Run Code Online (Sandbox Code Playgroud)
  • 如有必要,重新安装驱动程序并手动安装 32 位库:

    nvidia-driver-440:
    Installed: 440.64-0ubuntu0~0.18.04.2
    Candidate: 440.64.00-0ubuntu1
    Version table:
        440.64.00-0ubuntu1 500
            500 http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64  Packages
    *** 440.64-0ubuntu0~0.18.04.2 500
            500 http://ppa.launchpad.net/graphics-drivers/ppa/ubuntu bionic/main amd64 Packages
            100 /var/lib/dpkg/status
        440.33.01-0ubuntu1 500
            500 http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64  Packages
    libnvidia-gl-440:i386:
    Installed: 440.64-0ubuntu0~0.18.04.2
    Candidate: 440.64-0ubuntu0~0.18.04.2
    Version table:
    *** 440.64-0ubuntu0~0.18.04.2 500
            500 http://ppa.launchpad.net/graphics-drivers/ppa/ubuntu bionic/main i386 Packages
            100 /var/lib/dpkg/status
    
    Run Code Online (Sandbox Code Playgroud)
  • 您可以启用 CUDA 存储库,只要没有兼容的新版本 32 位库,新的更新就会被保留。