7 votes

En essayant de supprimer un package, il se plaint de dépendances non satisfaites

Sur Ubuntu 18.04, j'ai quelques problèmes avec mon installation de CUDA, alors j'aimerais désinstaller CUDA et recommencer à zéro.

Donc, j'ai essayé ce qui suit :

sudo apt remove cuda

Mais cela a ensuite affiché ce qui suit :

Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies.
 cuda-libraries-dev-10-1 : Depends: libcublas-dev (>= 10.2.1.243) but it is not going to be installed
 cuda-samples-10-1 : Depends: libcublas-dev (>= 10.2.1.243) but it is not going to be installed
 cuda-visual-tools-10-1 : Depends: libcublas-dev (>= 10.2.1.243) but it is not going to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

Je suis très confus par cela. Il semble me dire que cuda-libraries-dev-10-1, cuda-samples-10-1 et cuda-visual-tools-10-1 dépendent tous de libcublas-dev, avec une version d'au moins 10.2.1.243. Et ensuite, il dit que cette version de libcublas-dev ne va pas être installée. Mais j'essaie de désinstaller CUDA, pas de l'installer. Par conséquent, pourquoi mon système se soucie-t-il du fait que certains des packages fournis avec CUDA ont des dépendances non satisfaites, alors que j'essaie de supprimer ces packages de toute façon ?

Je peux comprendre que si j'essayais d'installer cuda-libraries-dev-10-1, cuda-samples-10-1 ou cuda-visual-tools-10-1, ce message aurait du sens. Mais si j'essaie de les supprimer, pourquoi est-ce important s'ils ont des dépendances non satisfaites ?


Mise à jour

Comme suggéré, j'ai également exécuté :

apt --fix-broken install

Cela a alors affiché :

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following packages were automatically installed and are no longer required:
  g++-6 libaccinj64-9.1 libcublas9.1 libcudart9.1 libcufft9.1 libcufftw9.1 libcuinj64-9.1 libcurand9.1 libcusolver9.1 libcusparse9.1 libnppc9.1 libnppial9.1 libnppicc9.1
  libnppicom9.1 libnppidei9.1 libnppif9.1 libnppig9.1 libnppim9.1 libnppist9.1 libnppisu9.1 libnppitc9.1 libnpps9.1 libnvblas9.1 libnvgraph9.1 libnvrtc9.1 libnvtoolsext1 libnvvm3
  libstdc++-6-dev libthrust-dev libvdpau-dev nvidia-cuda-dev nvidia-cuda-doc nvidia-cuda-gdb nvidia-opencl-dev nvidia-profiler nvidia-visual-profiler ocl-icd-opencl-dev
  opencl-c-headers
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
  libcublas-dev
The following NEW packages will be installed
  libcublas-dev
0 to upgrade, 1 to newly install, 0 to remove and 62 not to upgrade.
83 not fully installed or removed.
Need to get 0 B/38.9 MB of archives.
After this operation, 109 MB of additional disk space will be used.
Do you want to continue? [Y/n] y

Get:1 file:/var/cuda-repo-10-1-local-10.1.243-418.87.00  libcublas-dev 10.2.1.243-1 [38.9 MB]
(Reading database ... 211122 files and directories currently installed.)
Preparing to unpack .../libcublas-dev_10.2.1.243-1_amd64.deb ...
Unpacking libcublas-dev (10.2.1.243-1) ...
dpkg: error processing archive /var/cuda-repo-10-1-local-10.1.243-418.87.00/./libcublas-dev_10.2.1.243-1_amd64.deb (--unpack):
 trying to overwrite '/usr/lib/x86_64-linux-gnu/libcublas_static.a', which is also in package nvidia-cuda-dev 9.1.85-3ubuntu1
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Errors were encountered while processing:
 /var/cuda-repo-10-1-local-10.1.243-418.87.00/./libcublas-dev_10.2.1.243-1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Mise à jour

Comme suggéré dans les commentaires, j'ai ensuite essayé d'exécuter :

sudo apt full-upgrade

Cela a affiché ce qui suit :

Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies.
 cuda-libraries-dev-10-1 : Depends: libcublas-dev (>= 10.2.1.243) but it is not installed
 cuda-samples-10-1 : Depends: libcublas-dev (>= 10.2.1.243) but it is not installed
 cuda-visual-tools-10-1 : Depends: libcublas-dev (>= 10.2.1.243) but it is not installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

C'est exactement le même affichage que lorsque j'ai exécuté sudo apt remove cuda.


Mise à jour

Comme suggéré dans les commentaires, j'ai exécuté grep -r deb /etc/apt/sources.list /etc/apt/sources.list.d. Cela a donné la sortie suivante :

/etc/apt/sources.list:#deb cdrom:[Ubuntu 18.04.3 LTS _Bionic Beaver_ - Release amd64 (20190805)]/ bionic main restricted
/etc/apt/sources.list:deb http://gb.archive.ubuntu.com/ubuntu/ bionic main restricted
/etc/apt/sources.list:# deb-src http://gb.archive.ubuntu.com/ubuntu/ bionic main restricted
/etc/apt/sources.list:deb http://gb.archive.ubuntu.com/ubuntu/ bionic-updates main restricted
/etc/apt/sources.list:# deb-src http://gb.archive.ubuntu.com/ubuntu/ bionic-updates main restricted
/etc/apt/sources.list:deb http://gb.archive.ubuntu.com/ubuntu/ bionic universe
/etc/apt/sources.list:# deb-src http://gb.archive.ubuntu.com/ubuntu/ bionic universe
/etc/apt/sources.list:deb http://gb.archive.ubuntu.com/ubuntu/ bionic-updates universe
/etc/apt/sources.list:# deb-src http://gb.archive.ubuntu.com/ubuntu/ bionic-updates universe
/etc/apt/sources.list:deb http://gb.archive.ubuntu.com/ubuntu/ bionic multiverse
/etc/apt/sources.list:# deb-src http://gb.archive.ubuntu.com/ubuntu/ bionic multiverse
/etc/apt/sources.list:deb http://gb.archive.ubuntu.com/ubuntu/ bionic-updates multiverse
/etc/apt/sources.list:# deb-src http://gb.archive.ubuntu.com/ubuntu/ bionic-updates multiverse
/etc/apt/sources.list:deb http://gb.archive.ubuntu.com/ubuntu/ bionic-backports main restricted universe multiverse
/etc/apt/sources.list:# deb-src http://gb.archive.ubuntu.com/ubuntu/ bionic-backports main restricted universe multiverse
/etc/apt/sources.list:# deb http://archive.canonical.com/ubuntu bionic partner
/etc/apt/sources.list:# deb-src http://archive.canonical.com/ubuntu bionic partner
/etc/apt/sources.list:deb http://security.ubuntu.com/ubuntu bionic-security main restricted
/etc/apt/sources.list:# deb-src http://security.ubuntu.com/ubuntu bionic-security main restricted
/etc/apt/sources.list:deb http://security.ubuntu.com/ubuntu bionic-security universe
/etc/apt/sources.list:# deb-src http://security.ubuntu.com/ubuntu bionic-security universe
/etc/apt/sources.list:deb http://security.ubuntu.com/ubuntu bionic-security multiverse
/etc/apt/sources.list:# deb-src http://security.ubuntu.com/ubuntu bionic-security multiverse
/etc/apt/sources.list.d/cuda.list:deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 /
/etc/apt/sources.list.d/cuda-10-0-local-10.0.130-410.48.list:deb file:///var/cuda-repo-10-0-local-10.0.130-410.48 /
/etc/apt/sources.list.d/cuda-10-1-local-10.1.243-418.87.00.list:deb file:///var/cuda-repo-10-1-local-10.1.243-418.87.00 /

6voto

Mortezaaa Points 161

J'avais le même problème. Cela m'a sauvé (remplacez par la version de votre paquet):

sudo dpkg -i --force-overwrite /var/cache/apt/archives/libcublas-dev_10.2.1.243-1_amd64.deb

Et ensuite:

sudo apt --fix-broken install

3voto

nobody Points 4233

dpkg: erreur de traitement de l'archive /var/cuda-repo-10-1-local-10.1.243-418.87.00/./libcublas-dev_10.2.1.243-1_amd64.deb (--unpack): tentative d'écrasement de « /usr/lib/x86_64-linux-gnu/libcublas_static.a », qui se trouve aussi dans le paquet nvidia-cuda-dev 9.1.85-3ubuntu1 dpkg-deb : erreur : le sous-processus paste a été tué par le signal (pipe cassé)

2 Packages, qui ont le même fichier

sudo mv usr/lib/x86_64-linux-gnu/libcublas_static.a usr/lib/x86_64-linux-gnu/libcublas_static.a.bak

Ensuite

sudo dpkg --configure -a 

Si cela fonctionne, essayez de purger à nouveau cuda

1voto

Mattio Points 817

Dépaquetage de libcublas-dev (10.2.1.243-1) ... dpkg : erreur de traitement de l'archive /var/cuda-repo-10-1-local-10.1.243-418.87.00/./libcublas-dev_10.2.1.243-1_amd64.deb (--unpack) : tentative de remplacement de « /usr/lib/x86_64-linux-gnu/libcublas_static.a », qui est aussi dans le paquet nvidia-cuda-dev 9.1.85-3ubuntu1

Expliquons un peu cette erreur : Vous avez deux paquets qui sont incompatibles car chacun tente de fournir le même fichier. Les deux paquets sont libcublas-dev (de CUDA) et nvidia-cuda-dev (d'Ubuntu).

Le fichier qu'ils essaient tous les deux de fournir est /usr/lib/x86_64-linux-gnu/libcublas_static.a

Vous avez plusieurs options.

  1. Vous pouvez renoncer à CUDA, désinstaller les paquets CUDA et supprimer les dépôts CUDA.

  2. Vous pouvez désinstaller le paquet NVIDIA. NE supprimez PAS les dépôts Ubuntu.

  3. Vous pouvez utiliser l'option --force-overwrite de dpkg pour faire fonctionner ensemble les deux paquets normalement incompatibles. Vous n'avez donc pas besoin de désinstaller ou de supprimer quoi que ce soit.

    sudo apt install --force-overwrite libcublas-dev

    L'utilisation de --force doit être faite avec prudence. Cela pourrait causer des problèmes futurs avec les mises à jour, les suppressions ou d'autres actions sur les paquets. Assurez-vous de noter dans vos propres notes que vous avez dû utiliser --force-overwrite pour installer les paquets CUDA et NVIDIA ensemble.

0voto

chainwork Points 311

Dans la documentation de CUDA pour Suppression de l'ensemble d'outils CUDA 10.1 et du pilote, il est documenté que vous devez utiliser la commande suivante :

$ sudo apt-get --purge remove "*cublas*" "cuda*"

Lorsque vous utilisez sudo apt-get --purge remove cuda, vous utilisez les paquets meta et le système commencera à essayer de résoudre les paquets. Cela a fonctionné pour moi car je l'installais sur Ubuntu 20.04

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X