Syllo/nvtop

[Ubuntu < 22.04] apt install nvtop breaks / requires another nvidia driver

XuCpeng opened this issue · 42 comments

Ubuntu 19.10
After I upgraded the Nvidia driver to 440, I can no longer use nvtop and can't install it.
Is there any solution other than downgrading the driver?

(base) admin01@admin01-ubuntu:~$ sudo apt install nvtop
[sudo] password for admin01: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 nvtop : Depends: libnvidia-compute-418 but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
Syllo commented

Hello,
This is a dependency added by the ubuntu team.
There is a bug report opened for ubuntu (bug 1835630) to relax this dependency, but this has not yet been addressed apparently.

Confirming, this issue also exists on Ubuntu 20.04, driver version 455.38

Confirming, this issue also exists on Ubuntu 20.04, driver version 455.38

Agree, I have the same issue on Ubuntu 20.04, driver version 455.38.

Have the same problem and my driver version is 455 too

mfrr commented

Same issue here. Ubuntu 20.04.1, Driver Version: 455.38

Fellow Ubuntu users: Please log in to launchpad and click the "Does this bug affect you?" link near the top on Ubuntu#1835630.

As this bug is specific to the Ubuntu packaging, Launchpad is the place where its package maintainers will track it, not here on GitHub.

Same problem here with 460.32.03 driver on ubuntu 20.04.1 with 3090 gpu.
However,
You can install nvtop other way around.
go to https://github.com/Syllo/nvtop and follow the instructions in
"Distribution Specific Installation Process" -> "older"

Same issue here. Ubuntu 20.04.2, Driver Version: 460.32.03, CUDA 11.2 with 3090 gpu.

Confirming with 460 also, 1070 Ti

DnzJS commented

Same issue. Driver version:460.39. CUDA Ver. 11.2 with GTX970

Same issue. Driver version:460.39. CUDA Ver. 11.2 with GTX970

Same here. Using Driver Version: 460.32.03, CUDA version 11.2 with GeForce GTX 1080 Ti on Ubuntu 20.04.

Same issue.

Driver version: 460.67
CUDA version: 11.2
GPU: GeForce RTX 2060

Same.

Driver version: 460.67
CUDA version: 11.2
GPU: GeForce RTX 3070
Ubuntu 20.04

Also note: this dependency caused aptitude pm tool to uninstall all my currently installed correct nvidia drivers.

Confirmed! Ubuntu 20.04 + drivers 465

Issue persists as well.

Ubuntu 20.04
GTX 960M
Nvidia driver 450.119.04
CUDA v11.1

Syllo commented

Yes, the Ubuntu packagers did not fix it yet. I don't know what takes them so long.

With the recent changes to how NVML is handled, the libnvidia-ml is not linked at compile time anymore.
This change should hopefully remove all dependencies related to the nvidia driver and fix the Ubuntu package at the same time.

So as soon as I create a new release, push it into Debian, and Ubuntu pulls the update, this problem should be fixed.

Syllo commented

Update on this issue: waiting on the Debian maintainer to push the update to Debian testing.
I believe that after the introduction into testing, the Ubuntu part is mostly automated so the fix should hopefully arrive soon™.

So August 27th, and... just upgraded to nVidia-470, broke ntop for me. On Ubuntu 20.04.3.

Any chance we can just get a repo/PPA for this to side-step Canonical's package pipeline here or something? Or what's going on here? nvtop is mad useful for resource monitoring during my workflow and such.

Exactly, we need a separate repository. I don't want to build it from source every time the driver is upgraded

the same problem exists if you use nvidia.com repos with ubuntu, thus i use this little helper:

#!/bin/bash
# due to the nature of this software, it will get built into a binary deb package
# then installed, and marked hold
#
# in case later versions of nvtop are needed update them at the src package repo
# used in this installer

dkms status | grep nvidia || (
	echo no nvidia drivers found
	exit 1
)

# check if called binaries are available
for a in dget dpkg-source debuild dpkg apt-mark; do
    hash $a >/dev/null
    if [ ! $? -eq 0 ]; then
        echo $a not found
        exit 1
    fi
done

cd /usr/src/
dget http://sid.ethz.ch/debian/nvtop/nvtop_1.2.1-0.1.dsc
dpkg-source -x nvtop_*1.2.1*.dsc
cd nvtop-*1.2.1*/
debuild
cd ..
dpkg -i nvtop*1.2.1*.deb
apt-mark hold nvtop

Repackaging/rebuilding defeats the whole point of a package repo...

@BloodyIron then show me the binary that works with all nvidia binary drivers...

linux kernel modules with -dkms are also built at install time. and i also have a bunch of #!/usr/bin/tcc -run scripts with interpreted C. nothing wrong with that.

Syllo commented

Good news, the latest version entered debian testing after a delay due to the release of the latest debian stable.

I am not familiar with the process of getting the update to reach ubuntu, and cannot find any information on that with a simple search. So my guess is wait and see?

@Syllo the question is, will the next driver update break it again? And will they ever be in sync?

I don't know how much hassle that is, but is there a way to set a separate build target "Ubuntu" (if it's even any different) and host it on a specialized PPA?

I any case, thanks for the great tool you're developing and maintaining!

Syllo commented

The package dropped the dependency to the nvidia driver (see the debian package page) starting with this version.
Hence, there shouldn't be any issues with the ubuntu package being pinned to a specific driver version anymore.

Great news indeed! So now we just wait till it makes it into the ubuntu repositories

I'm on Ubuntu 20.04.3 and my repos are still serving 1.0.0 :( any ideas on what options there are? (besides compiling or packaging myself)

I am now able to install nvtop via sudo apt install nvtop but I am now getting the below error when I try to run nvtop

Impossible to initialize nvidia nvml : Driver/library version mismatch

Just attempted install with sudo apt install nvtop.

Output:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 nvtop : Depends: libnvidia-compute-418 but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

This is obviously a known issue, so just posting on the off chance that it helps someone.

Not to pile on here but I'm also still getting this bug. :(

RTX 3090, Ubuntu 20.04, Driver version 495.46

same here, driver version 470.57.02

Downloaded the deb, unpacked it, dropped it in path, wors fine for me on Ubuntu 20.

yes this linked deb worked for me, not sure why apt isn't installing that version

Using driver version : 470 with cuda 11.4.
Nvtop required 418 for the apt package
Directly build using instruction for older version installation on official repo and follow the instructions in
"Distribution Specific Installation Process" -> "older"

I installed it with compiling nvtop and works fine with 510.60.02 3090 FE

I'm still getting the same problem

pop-os: 20.04 LTS
GTX 1650
driver nvidia 510.54

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 nvtop : Depends: libnvidia-compute-418 but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
Syllo commented

@Jefferson-Lopes For Ubuntu < 22.04 and derivatives, or for AMD support, please follow the manual install.

sudo add-apt-repository ppa:flexiondotorg/nvtop
sudo apt install nvtop
sudo add-apt-repository ppa:flexiondotorg/nvtop
sudo apt install nvtop

thank you! I solved it using this method
RTX 4070, Ubuntu 20.04, Driver version 535.86.05

I used this code.

sudo apt-get install libncurses5-dev libncursesw5-dev -y
sudo apt-get install libudev-dev libsystemd-dev -y
sudo apt-get install libdrm-dev -y

rm -rf nvtop
git clone https://github.com/Syllo/nvtop.git
mkdir -p nvtop/build && cd nvtop/build
cmake .. -DNVIDIA_SUPPORT=ON -DAMDGPU_SUPPORT=ON -DINTEL_SUPPORT=ON
make

sudo make install
cd ../..
rm -rf nvtop

This bug is fixed in Ubuntu 22.04 and above, and unlikely to be fixed upstream in 20.04. This issue should probably be closed.

sudo add-apt-repository ppa:flexiondotorg/nvtop
sudo apt install nvtop

感谢!已解决!Ubuntu20.04,显卡驱动版本:525.147.05