51 votes

Installation des pilotes nvidia sur 18.04

Tous. J'essaie de réparer mon système pour pouvoir installer les pilotes nvidia mais il semble se bloquer pour une raison ou une autre. J'ai essayé de supprimer manuellement les fichiers téléchargés de

/var/cache/apt/archives/libnvidia-gl-390_390.48-0ubuntu3_i386.deb
/var/cache/apt/archives/libnvidia-gl-390_390.48-0ubuntu3_amd64.deb

... afin de les laisser télécharger à nouveau, mais en vain. Est-ce que quelqu'un a essayé d'installer ces pilotes sur 18.04 dernièrement ?

~$ sudo apt --fix-broken install
[sudo] password for jarl: 
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:
  lib32gcc1 libc6-i386
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
  libnvidia-gl-390 libnvidia-gl-390:i386
The following NEW packages will be installed
  libnvidia-gl-390 libnvidia-gl-390:i386
0 to upgrade, 2 to newly install, 0 to remove and 4 not to upgrade.
3 not fully installed or removed.
Need to get 0 B/29,1 MB of archives.
After this operation, 147 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
(Reading database ... 214344 files and directories currently installed.)
Preparing to unpack .../libnvidia-gl-390_390.48-0ubuntu3_i386.deb ...
diversion of /usr/lib/i386-linux-gnu/libGL.so.1 to /usr/lib/i386-linux-gnu/libGL.so.1.distrib by nvidia-340
dpkg-divert: error: mismatch on package
  when removing 'diversion of /usr/lib/i386-linux-gnu/libGL.so.1 by libnvidia-gl-390'
  found 'diversion of /usr/lib/i386-linux-gnu/libGL.so.1 to /usr/lib/i386-linux-gnu/libGL.so.1.distrib by nvidia-340'
dpkg: error processing archive /var/cache/apt/archives/libnvidia-gl-390_390.48-0ubuntu3_i386.deb (--unpack):
 new libnvidia-gl-390:i386 package pre-installation script subprocess returned error exit status 2
Preparing to unpack .../libnvidia-gl-390_390.48-0ubuntu3_amd64.deb ...
diversion of /usr/lib/x86_64-linux-gnu/libGL.so.1 to /usr/lib/x86_64-linux-gnu/libGL.so.1.distrib by nvidia-340
dpkg-divert: error: mismatch on package
  when removing 'diversion of /usr/lib/x86_64-linux-gnu/libGL.so.1 by libnvidia-gl-390'
  found 'diversion of /usr/lib/x86_64-linux-gnu/libGL.so.1 to /usr/lib/x86_64-linux-gnu/libGL.so.1.distrib by nvidia-340'
dpkg: error processing archive /var/cache/apt/archives/libnvidia-gl-390_390.48-0ubuntu3_amd64.deb (--unpack):
 new libnvidia-gl-390:amd64 package pre-installation script subprocess returned error exit status 2
Errors were encountered while processing:
 /var/cache/apt/archives/libnvidia-gl-390_390.48-0ubuntu3_i386.deb
 /var/cache/apt/archives/libnvidia-gl-390_390.48-0ubuntu3_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

115voto

path Points 41

J'ai trouvé cette commande sur les forums ubuntu, elle a très bien fonctionné avec moi :

Exécutez :

LC_MESSAGES=C dpkg-divert --list '*nvidia-340*' | sed -nre 's/^diversion of (.*) to .*/\1/p' | xargs -rd'\n' -n1 -- sudo dpkg-divert --remove
sudo apt --fix-broken install

La première commande supprimera tous les paquets détournés de nvidia-340 . Si vous avez une autre version de nvidia qui "dévie", changez-la ; lisez le code d'erreur pour savoir quelle version dévie.

Source : https://ubuntuforums.org/showthread.php?t=2388026&p=13761809#post13761809 Bravo à stutteringp0et2 :)

18voto

Jake Grabowski Points 189

Voici le réponse complète dans un autre forum

Le principe de base de la réponse est le suivant :

  1. vous avez d'anciennes dépendances que vous souhaitez supprimer
  2. vous voulez nettoyer le désordre
  3. vous souhaitez installer un nouveau pilote

Je suppose que vous avez installé le pilote 340, ce qui était mon problème.

  1. supprimer les anciennes dépendances

    LC_MESSAGES=C dpkg-divert --list '*nvidia-340*' | sed -nre 's/^diversion of (.*) to .*/\1/p' | xargs -rd'\n' -n1 -- sudo dpkg-divert --remove
  2. nettoyer le désordre - cela dépend du désordre que vous avez installé ; si ce n'est pas le cas, il faut sortir de la boîte ;)

    sudo dpkg --force-all -P nvidia-390 nvidia-compute-utils-390 nvidia-dkms-390 nvidia-prime nvidia-settings nvidia-opencl-icd-340 nvidia-opencl-icd-384 nvidia-kernel-source-390 nvidia-kernel-common-390 libnvidia-cfg1-390 libnvidia-common-390 libnvidia-compute-390 libnvidia-decode-390 libnvidia-encode-390  libnvidia-fbc1-390 libnvidia-ifr1-390
    sudo apt purge --autoremove '*nvidia*'
    sudo apt-get update
    sudo apt-get upgrade
  3. installer les nouveaux pilotes recommandés

    ubuntu-drivers devices
    nvidia-settings

Mon conseil est le suivant :
ne pas jouer avec les paramètres de ce pilote minable, juste pour vérifier s'il est installé :)

10voto

youbaji Points 101

J'ai résolu le problème en supprimant le divert de nvidia-340. j'espère que je n'aurai pas besoin d'utiliser nvidia-340 . Voici un exemple :

dpkg-divert --package nvidia-340 --remove /usr/lib/i386-linux-gnu/libGL.so.1

Vous pouvez continuer à retirer des documents chaque fois que vous avez un conflit.

3voto

Exécutez d'abord ceci,

Solution #for FILE in $(dpkg-divert --list | grep nvidia-340 | awk '{print $3}'); do dpkg-divert --remove $FILE; done

Ensuite, installez-le à partir de ppa,

sudo add-apt-repository ppa:graphics-drivers/ppa 
sudo apt update 
sudo apt install nvidia-390

cela a fonctionné pour moi sur Ubuntu 18.04 LTS

2voto

Andrew Schott Points 31

Je lancerais apt auto-clean et je verrais si c'est ce que je pense, un paquet qui a foiré.

sudo apt auto-clean
sudo apt update
sudo apt upgrade
sudo apt install nvidia-driver-390 libvulkan1

edit : pour répondre à votre autre question, lorsque j'ai installé la version 18.04 l'autre jour, la version 390 fonctionnait bien, mais le passage à la version 396 était un peu "amusant". Ceci a réglé le problème pour moi.

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