MHWD, please stop breaking dependencies!

Hello Manjaro-Forum,

I’m currently struggling to figure out, how mhwd (or by extension, the graphical tool based on it) is supposed to be able to update Nvidia Graphics drivers.

When I try to run sudo mhwd -i pci video-nvidia-450xx I get the following error:

Has lib32 support: true
Sourcing /var/lib/mhwd/db/pci/graphic_drivers/nvidia-450xx/MHWDCONFIG
Processing classid: 0300
Sourcing /var/lib/mhwd/scripts/include/0300
Processing classid: 0302
checking dependencies...
error: failed to prepare transaction (could not satisfy dependencies)
:: removing nvidia-440xx-utils breaks dependency 'nvidia-utils' required by cuda
:: removing nvidia-440xx-utils breaks dependency 'nvidia-utils' required by nvtop
:: removing nvidia-440xx-utils breaks dependency 'nvidia-utils' required by python-pycuda
Error: pacman failed!

In other topics on this forum, people usually recommend to just remove the packages that depend on nvidia-utils, use mhwd to upgrade the driver and reinstall all previously removed packages.

The problem with that solution for me is, that as a deep learning researcher, I have lots of packages depending on nvidia-utils.
Trying to remove CUDA alone would break dependencies for python-pycuda, python-tensorflow-opt-cuda, tensorflow-opt-cuda, magma and python-pytorch-opt-cuda - and by extension everything that is depending on tensorflow or pytorch.

Nearly my complete software development stack would be required to be removed and reinstalled, which is a pretty scary thing.
The basic reason for useing a package manager is to not have to do this stuff.

I came from Archlinux, where I simply updated my NVIDIA-Driver using pacman and the nvidia package.
If mhwd isn’t capable of doing this, it’s essentially faulty in my opinion.

So, I understand, that there will be pretty much no other way around reinstalling all the stuff that depends on the NVIDIA-Driver or just stay on the old driver. Maybe I set up something wrong, when using mhwd.
To prevent having to do this again, whenever I want to upgrade the driver, I would like to switch to some rolling nvidia package instead - this way I wouldn’t need mhwd anymore and could just use pacman.
Does some option for this exist?

mhwd didnt break dependencies…
your extra packages cuda nvtop python-pycuda are all deps that are blocking mhwd because it wont forcibly remove packages that other packages (unrelated to mhwd) rely on.
(though … I kinda have a feeling that the force flag might work…)
As you mention theres also some threads on this…
But … you could also do a generally unadvisable thing and skip deps:

sudo pacman -Rdd nvidia-440xx-utils

(and continue on your way)

1 Like