18.04'te nvidia sürücülerini yükleme


31

herşey. Sistemimi düzeltmeye çalışıyorum, böylece nvidia sürücülerini yükleyebiliyorum ama bir sebepten dolayı takılıyor gibi görünüyor. İndirilen dosyaları el ile kaldırmayı denedim

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

... tekrar indirmelerine izin vermek için ama boşuna. Son zamanlarda 18.04’e bu sürücüleri yüklemeyi deneyen oldu mu?

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

Tüm önbelleği ile temizlemeye sudo apt-get cleançalışın ve tekrar deneyin.
Karl Richter

sudo apt-get cleanAynı şey hala benim için oluyor sonra
Pim Heijden

Yanıtlar:


75

Bu komutu ubuntu forumlarında buldum, çok iyi çalıştım:

Koşmak:

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

İlk komut, aktarılan tüm paketleri kaldırır nvidia-340. Eğer başka bir "nvidia" versiyonunu kullanıyorsanız, değiştirin; hangi sürümün yönlendirildiğini bilmek için hata kodunu okuyun.

Kaynak: https://ubuntuforums.org/showthread.php?t=2388026&p=13761809#post13761809 kudos to stutteringp0et2 :)


2
Ubuntu'yu İngilizce olarak kullanmazsanız, sayıyı awk '{print $3}'başka bir şeye değiştirmeniz gerekecek bir değişiklik var , örneğin, değiştirmek zorunda kaldım awk '{print $2}'. Veya yerel ayarı ingilizce ( for FILE in $(LANG=en dpkg-divert --list | grep nvidia-340 | awk '{print $3}'); do dpkg-divert --remove $FILE; done) olarak değiştirebilirsiniz.
Petr R.

2
Beni ıstırabımdan kurtardın, burada sadece oy vermek için bir hesap yaptım
Primusa

14

İşte başka bir forumda tam cevap

Cevabın temel öncülü şudur:

  1. kaldırmak istediğiniz eski bağımlılıklar varsa
  2. pisliği temizlemek istiyorsun
  3. yeni sürücü yüklemek istiyorsan

Galiba yüklü 340 sürücünün cr * p'si var - bu benim sorunumdu

  1. eski bağımlılıkları kaldır

    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. temiz karışıklık - kurduğunuz karışıklığa bağlı olarak, kutudan çıkmadığı takdirde öğrenebilirsiniz;)

    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. önerilen yeni sürücüleri yükle

    ubuntu-drivers devices
    nvidia-settings
    

Tavsiyem:
bu cr * ppy sürücülerinde sadece kurulu olup olmadığını kontrol etmek için ayarlarla oynamayın :)


3
Lütfen, dpkg --force-alliyi bir sebep istemeyin! Hatayla karşılaşılan kürtajlar, paket yönetim sisteminin bütünlüğünü korumak içindir ve düşünce veya özen gösterilmeksizin bastırılmamalıdır! -1
David Foerster

Bu çalışıyor. Yorumlamalıyım: 4k ekran kullanıldığında ortaya çıktığını tespit ettim - o zaman önyükleme sorunlarınız oluyor. Nasıl tespit
ettik

# 1 yaptım ve sonra sudo apt install -fve sudo apt upgrade. çalıştı.
ICE

Neden bu cevap neredeyse Lucas Serafim'in cevabıyla aynı?
Pim Heijden

6

Nvidia-340'ın yönünü değiştirerek sorunu çözdüm. umarım kullanmama gerek yoktur nvidia-340. Aşağıdaki bir örnek:

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

Bir çatışma olduğunda ne zaman ortadan kaldırabilirsin?


Bir ton teşekkürler! İlk başta, çalışmıyor gibi görünüyor, ama denemeye ve kaldırmaya devam edersek, sonunda çözülür. Tekrar teşekkürler.
Gaurav Gandhi

Kocaman teşekkürler! Nvidia-340 ıvır zıvır için dpkg-divert listesini değiştirebileceğimi bilmeden bu sorunu çözemedim. Sen rock
Mikis

2

Apt auto-clean 'i çalıştırırdım ve sanırım ne olduğunu sanıyordum, berbat bir paket.

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

düzenleme: diğer sorunuzu yanıtlamak için, geçen gün 18.04'ü kurduğumda 390 iyi çalıştı, ancak 396'ya gitmek biraz "eğlenceli" oldu. Bu benim için düzeltti.


Çok teşekkürler. Bu benim bildiğim kadarıyla: (temiz bir yeniden yükleme yapabilirim sanırım): ~ $ sudo apt upgrade Paket listeleri okunuyor ... Bitti Bağımlılık ağacı oluşturuldu Durum bilgisi okunuyor ... Bitti Çalıştırmak isteyebilirsiniz 'apt - -fix-broken install 'bunları düzeltmek için. Aşağıdaki paketlerin karşılanmayan bağımlılıkları vardır. libnvidia-ifr1-390: Bağımlılar: libnvidia-gl-390 fakat kurulmamış gl-390 (= 390.48-0ubuntu3) fakat kurulmamış ....
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

Önce bunu çalıştır

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

Ardından ppa'dan yükleyin,

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

bu benim için Ubuntu 18.04 LTS'de çalıştı.


Nvidia-driver-390, varsayılan Ubuntu 18.04 depolarında bulunuyor, peki PPA eklemenin amacı nedir?
karel
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.