Installazione dei driver nvidia su 18.04


31

tutti. Sto cercando di riparare il mio sistema in modo da poter installare i driver nvidia ma sembra bloccato per qualche motivo. Ho provato a rimuovere manualmente i file scaricati

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

... per poterli scaricare di nuovo ma senza risultati. Qualcuno ha provato a installare quei driver su 18.04 di recente?

~$ 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)

Prova a pulire l'intera cache con sudo apt-get cleane riprova.
Karl Richter,

dopo sudo apt-get cleanche succede ancora la stessa cosa per me
Pim Heijden il

Risposte:


75

Ho trovato questo comando nei forum di Ubuntu, ha funzionato molto bene con me:

Correre:

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

Il primo comando rimuoverà tutti i pacchetti deviati da nvidia-340. Se hai un'altra versione di nvidia "deviante" cambiarla; leggi il codice di errore per sapere quale versione sta deviando.

Fonte: https://ubuntuforums.org/showthread.php?t=2388026&p=13761809#post13761809 complimenti per la balbuziep0et2 :)


2
Se non usi Ubuntu in inglese, c'è una modifica in cui dovrai cambiare il numero in awk '{print $3}'qualcos'altro, ad esempio ho dovuto cambiarlo awk '{print $2}'. In alternativa, è possibile modificare le impostazioni internazionali in inglese ( for FILE in $(LANG=en dpkg-divert --list | grep nvidia-340 | awk '{print $3}'); do dpkg-divert --remove $FILE; done).
Petr R.

2
Mi hai salvato dalla mia agonia, ho fatto un account qui solo per
votare

14

Ecco la risposta completa in un altro forum

La premessa di base della risposta è:

  1. hai vecchie dipendenze che vuoi rimuovere
  2. vuoi pulire il casino
  3. vuoi installare un nuovo driver

Presumo che tu abbia installato cr * p dal driver 340 - che era il mio problema

  1. rimuovere le vecchie dipendenze

    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. clean mess - dipende dal disordine che hai installato, scoprilo se non risolve il problema;)

    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. installa i nuovi driver consigliati

    ubuntu-drivers devices
    nvidia-settings
    

Il mio consiglio è:
non giocare con le impostazioni in questo driver cr * ppy solo per verificare se installato :)


3
Per favore, non suggerire dpkg --force-allsenza motivo! Gli aborti riscontrati in caso di errore hanno lo scopo di proteggere l'integrità del sistema di gestione dei pacchetti e non devono essere soppressi senza pensarci o preoccuparci! -1
David Foerster,

Questo funziona Devo commentare: ho rilevato che il problema si presenta quando viene utilizzato il display 4k - quindi hai problemi di avvio. Come ho rilevato: ricollegare il vecchio monitor e si è avviato facilmente
Vic Nicethemer,

Ho fatto il numero 1 e poi sudo apt install -fe sudo apt upgrade. lavorato.
ICE

Perché questa risposta è quasi uguale alla risposta di Lucas Serafim?
Pim Heijden,

6

Ho risolto il problema rimuovendo la deviazione di nvidia-340. spero di non averne bisogno nvidia-340. Di seguito è riportato un esempio:

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

Puoi continuare a rimuovere ogni volta che hai un conflitto.


Grazie mille! All'inizio sembra che non funzioni, ma se continuiamo a provare e rimuovere, alla fine si risolve. Grazie ancora.
Gaurav Gandhi,

Grazie enormi! Non sono riuscito a superare questo problema senza sapere che avrei potuto modificare l'elenco dpkg-divert per la spazzatura nvidia-340. Fai rock
Mikis il

2

Vorrei eseguire apt clean-clean e vedere se è quello che penso sia, un pacchetto incasinato.

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

modifica: per rispondere alla tua altra domanda, quando ho installato il 18.04 l'altro giorno 390 ha funzionato bene, ma andare a 396 è stato un po '"divertente". Questo mi ha risolto.


Molte grazie. Questo è quanto ho ottenuto .: (Penso che potrei fare una reinstallazione pulita): ~ $ sudo apt upgrade Lettura degli elenchi dei pacchetti ... Fatto Creazione dell'albero delle dipendenze Lettura delle informazioni sullo stato ... Fatto Potresti voler eseguire 'apt - -fix-broken install 'per correggerli. I seguenti pacchetti hanno dipendenze non soddisfatte. libnvidia-ifr1-390: dipende: libnvidia-gl-390 ma non è installato libnvidia-ifr1-390: i386: dipende: libnvidia-gl-390: i386 ma non è installato nvidia-driver-390: dipende: libnvidia- gl-390 (= 390.48-0ubuntu3) ma non è installato ....
Jarl Arntzen

.... Recommends: libnvidia-gl-390:i386 (= 390.48-0ubuntu3) E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).
Jarl Arntzen,

1

Esegui prima questo,

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

Quindi installalo da ppa,

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

questo ha funzionato per me su Ubuntu 18.04 LTS


Nvidia-driver-390 è nei repository Ubuntu 18.04 predefiniti, quindi qual è lo scopo di aggiungere un PPA?
karel
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.