web-dev-qa-db-fra.com

Installation des pilotes nvidia sur 18.04

tout. J'essaie de réparer mon système pour pouvoir installer les pilotes nvidia, mais il semble rester bloqué pour une raison quelconque. 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. Quelqu'un a-t-il essayé d'installer ces pilotes le 18.04 récemment?

~$ 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)
25
Jarl Arntzen

Trouvé cette commande sur les forums Ubuntu, a très bien fonctionné avec moi:

Courir:

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 packages déviés de nvidia-340. Si vous avez une autre version de nvidia "déviation", changez-la; lisez le code d'erreur pour savoir quelle version est en train d'être déviée.

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

53
Lucas Serafim

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

La prémisse de base de la réponse est:

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

Je suppose que vous avez cr * p du pilote 340 installé - 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 gâchis - en fonction du gâchis que vous avez installé, trouvez-le s'il ne fonctionne pas immédiatement;)

    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 de nouveaux pilotes recommandés

    ubuntu-drivers devices
    nvidia-settings
    

Mon conseil est:
ne joue pas avec les paramètres de ce pilote cr * ppy uniquement pour vérifier s’il est installé :)

11
Jake Grabowski

J'ai résolu le problème en supprimant le détournement de nvidia-340. j'espère que je n'ai 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 à supprimer chaque fois que vous avez un conflit.

6
youbaji

Je voudrais lancer apt auto-clean et voir si c'est ce que je pense qu'il est, un paquet 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, quand j’ai installé 18.04 l’autre jour, 390 marchait bien, mais aller en 396 était un peu "amusant". Cela a résolu le problème pour moi.

2
Andrew Schott

Exécuter ceci en premier,

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

Puis 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

1