NVIDIA 440.64 32-bit libraries package breaks 64-bit driver package

9,898

Solution 1

If anyone is interested, I looked a little bit deeper and found out that I add two sources for NVIDIA drivers, one being the graphic-drivers ppa and the other one being CUDA repos. The version in CUDA repos (440.64.00-0ubuntu1, against 440.64-0ubuntu0~0.18.04.2 in the ppa) was the main candidate for installation but no 32-bit libraries were provided. Thus the only problem was trying to install a different version of the 32-bit libraries.

What I did was purge all NVIDIA packages, disable temporarily the CUDA repo and reinstall everything. Now the updates from the CUDA repo are kept back because there is no candidate to update the 32-bit library to that version, but everything is working fine.

STEPS

  • Remove NVIDIA drivers and libraries:

    $ sudo apt-get purge nvidia-* libnvidia-*
    
  • Disable CUDA repo, either rename cuda.list in /etc/apt/sources.list.d or comment out its content:

    $ sudo nano /etc/apt/sources.list.d/cuda.list
    #deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 /
    
  • Update and check candidate version:

    $ sudo apt-get update
    $ apt-cache policy nvidia-driver-[version] libnvidia-gl-[version]:i386
    

    mine with both sources enabled looks like this, if you disable the CUDA repo they should display the same version table and the same candidate version:

    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
    
  • Reinstall driver and manually install 32-bit libraries if necessary:

    $ sudo apt-get install nvidia-driver-[version]
    $ sudo apt-get install libnvidia-gl-[version]:i386
    
  • You can enable the CUDA repo, the new updates will be kept back as long as there is no compatible new version of the 32-bit libraries.

Solution 2

I had this trouble running Steam too - here's what I ended up with thanks to Sneppy's Answer

# clean out those nvidia packages
# dpkg and awk are used to find and list the packages to remove
# this may not be perfect, but it works well and worked for me
sudo apt purge $(dpkg -l | awk '{print $2}' | grep nvidia)

# add the i386 architecture
sudo dpkg --add-architecture i386
sudo apt update

# install needed packages
sudo apt-get install nvidia-driver-440 libnvidia-gl-440:i386

# restart the system to ensure everything is reloaded nicely
#sudo reboot
Share:
9,898
Sneppy
Author by

Sneppy

Updated on September 18, 2022

Comments

  • Sneppy
    Sneppy over 1 year

    I was running a Ubuntu 18.04 installation with NVIDIA 440.59 proprietary driver (GTX 970) up to a few minutes ago. Then I decided to upgrade manually to 440.64 even if apt kept it back, and now Steam does not start anymore because, as I discovered later, it relies on NVIDIA 32-bit libraries.

    Problem is, installing the OpenGL 32-bit libraries breaks the other packages:

    -@-:~$ 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])
    

    I have to assume that this was not happening with 440.59 since I was able to launch steam and run my OpenGL/CUDA programs. Any way to force it to install those libraries? Alternatively, is it possible to revert to 440.59, or do I have to downgrade to 435/430? The drivers were installed from the graphics-driver ppa.