Menginstal driver nvidia pada 18.04

31

semua. Saya mencoba untuk memperbaiki sistem saya sehingga saya dapat menginstal driver nvidia tetapi tampaknya macet karena beberapa alasan. Saya telah mencoba secara manual menghapus file yang diunduh dari

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

... untuk membiarkan mereka mengunduh lagi tetapi tidak berhasil. Adakah yang mencoba menginstal driver-driver itu pada 18.04 belakangan ini?

~$ 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)
Jarl Arntzen
sumber
Coba bersihkan seluruh cache dengan sudo apt-get cleandan coba lagi.
Karl Richter
setelah sudo apt-get cleanhal yang sama masih terjadi pada saya
Pim Heijden

Jawaban:

75

Menemukan perintah ini di forum ubuntu, bekerja sangat baik dengan saya:

Menjalankan:

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

Perintah pertama akan menghapus semua paket yang dialihkan dari nvidia-340. Jika Anda memiliki versi nvidia lainnya "mengalihkan" ubahlah; baca kode kesalahan untuk mengetahui versi mana yang mengalihkan.

Sumber: https://ubuntuforums.org/showthread.php?t=2388026&p=13761809#post13761809 pujian untuk stutteringp0et2 :)

Lucas Serafim
sumber
2
Jika Anda tidak menggunakan Ubuntu dalam bahasa Inggris, ada perubahan yang harus Anda ubah nomornya awk '{print $3}'menjadi sesuatu yang lain, misalnya saya harus mengubahnya awk '{print $2}'. Atau Anda dapat mengubah lokal ke Bahasa Inggris ( for FILE in $(LANG=en dpkg-divert --list | grep nvidia-340 | awk '{print $3}'); do dpkg-divert --remove $FILE; done).
Petr R.
2
Anda telah menyelamatkan saya dari penderitaan saya, saya telah membuat akun di sini hanya untuk
mengungguli
14

Inilah jawaban lengkapnya di forum lain

Premis dasar dari jawabannya adalah:

  1. Anda memiliki dependensi lama yang ingin Anda hapus
  2. Anda ingin membersihkan kekacauan
  3. Anda ingin menginstal driver baru

Saya berasumsi Anda memiliki cr * p dari driver 340 diinstal - yang merupakan masalah saya

  1. hapus dependensi lama

    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. membersihkan kekacauan - tergantung pada kekacauan yang telah Anda instal, cari tahu jika tidak berhasil;)

    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. instal driver yang direkomendasikan baru

    ubuntu-drivers devices
    nvidia-settings
    

Saran saya adalah:
jangan bermain-main dengan pengaturan di driver cr * ppy ini hanya untuk memeriksa jika diinstal :)

Jake Grabowski
sumber
3
Tolong jangan menyarankan dpkg --force-alltanpa alasan yang bagus! Aborsi yang dijumpai pada kesalahan dimaksudkan untuk melindungi integritas sistem manajemen paket dan tidak boleh ditekan tanpa berpikir atau peduli! -1
David Foerster
Ini bekerja. Saya harus berkomentar: saya mendeteksi masalah itu muncul ketika layar 4k digunakan - maka Anda memiliki masalah boot. Bagaimana saya mendeteksi: ganti monitor lama dan boot dengan mudah
Vic Nicethemer
Saya melakukan # 1 dan kemudian sudo apt install -fdan sudo apt upgrade. bekerja.
ICE
Mengapa jawaban ini hampir sama dengan jawaban Lucas Serafim?
Pim Heijden
6

Saya memecahkan masalah dengan menghapus pengalihan nvidia-340. semoga saya tidak perlu menggunakan nvidia-340. Berikut ini adalah contohnya:

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

Anda dapat terus menghapus setiap kali Anda memiliki konflik.

youbaji
sumber
Terima kasih banyak! Pada awalnya, sepertinya itu tidak berfungsi, tetapi jika kita terus mencoba dan menghapus, akhirnya itu terpecahkan. Terima kasih lagi.
Gaurav Gandhi
Terima kasih banyak Saya tidak dapat mengatasi masalah ini tanpa mengetahui bahwa saya dapat memodifikasi daftar dpkg-divert untuk nvidia-340 junk. You rock
Mikis
2

Saya akan menjalankan apt auto-clean dan melihat apakah itu yang saya pikirkan, paket yang berantakan.

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

sunting: untuk menjawab pertanyaan Anda yang lain, ketika saya menginstal 18,04 suatu hari 390 berfungsi dengan baik, tetapi pergi ke 396 agak "menyenangkan". Ini memperbaikinya untuk saya.

Andrew Schott
sumber
Terima kasih banyak. Ini sejauh yang saya dapatkan .: (Saya pikir saya mungkin akan melakukan instal ulang bersih): ~ $ sudo apt upgrade Membaca daftar paket ... Selesai Membangun pohon dependensi Membaca informasi keadaan ... Selesai Anda mungkin ingin menjalankan 'apt - install-fix-broken 'untuk memperbaikinya. Paket-paket berikut memiliki dependensi yang tidak terpenuhi. libnvidia-ifr1-390: Tergantung: libnvidia-gl-390 tetapi tidak diinstal libnvidia-ifr1-390: i386: Tergantung: libnvidia-gl-390: i386 tetapi tidak diinstal nvidia-driver-390: Tergantung: libnvidia- gl-390 (= 390.48-0ubuntu3) tetapi tidak diinstal ....
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

Jalankan ini dulu,

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

Kemudian instal dari ppa,

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

ini bekerja untuk saya di Ubuntu 18,04 LTS

Vishwaprabhakar Singh
sumber
Nvidia-driver-390 ada di repositori Ubuntu 18.04 default, jadi apa gunanya menambahkan PPA?
karel