18.04에 nvidia 드라이버 설치


31

모든. nvidia 드라이버를 설치할 수 있도록 시스템을 수정하려고하는데 어떤 이유로 막히는 것 같습니다. 다운로드 한 파일을 수동으로 제거하려고했습니다.

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

... 다시 다운로드 할 수 있지만 소용이 없습니다. 최근에 18.04에 해당 드라이버를 설치 한 적이 있습니까?

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

전체 캐시를 정리하고 sudo apt-get clean다시 시도하십시오.
Karl Richter

이후 sudo apt-get clean같은 일 여전히 나를 위해 일
핌 Heijden

답변:


75

우분투 포럼 에서이 명령을 찾았으며 나와 매우 잘 작동했습니다.

운영:

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

첫 번째 명령은에서 전환 된 모든 패키지를 제거합니다 nvidia-340. 다른 nvidia 버전 "전환"이있는 경우 변경하십시오. 오류 코드를 읽고 어떤 버전이 전환되는지 알 수 있습니다.

출처 : https://ubuntuforums.org/showthread.php?t=2388026&p=13761809#post13761809 stutteringp0et2에 대한 kudos :)


2
영어로 Ubuntu를 사용하지 않으면 숫자를 awk '{print $3}'다른 것으로 변경해야합니다 (예 :로 변경해야 함) awk '{print $2}'. 또는 로캘을 영어 ( for FILE in $(LANG=en dpkg-divert --list | grep nvidia-340 | awk '{print $3}'); do dpkg-divert --remove $FILE; done) 로 변경할 수 있습니다 .
Petr R.

2
당신은 내 고통에서 저를 저장 한, 그냥 upvote에 여기에 계정을 만들었어요
Primusa

14

다른 포럼전체 답변입니다.

답의 기본 전제는 다음과 같습니다.

  1. 제거하려는 오래된 종속성이 있습니다.
  2. 당신은 엉망을 청소하고 싶어
  3. 새 드라이버를 설치하고 싶습니다

나는 당신이 설치된 340 드라이버에서 cr * p를 가지고 있다고 가정합니다.

  1. 오래된 의존성을 제거

    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. 깨끗한 엉망-당신이 설치 한 엉망에 따라 상자 밖으로 작동하지 않으면 그것을 찾으십시오.)

    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. 새로운 권장 드라이버 설치

    ubuntu-drivers devices
    nvidia-settings
    

내 조언은 :
이 cr * ppy 드라이버에서 설정이 있는지 확인하지 않고 설치하지 마십시오 :)


3
dpkg --force-all아무 이유없이 제안하지 마십시오 ! 오류 발생시 발생하는 낙태는 패키지 관리 시스템의 무결성을 보호하기위한 것으로 생각이나주의없이 억제해서는 안됩니다! -1
David Foerster

작동합니다. 나는 논평해야한다 : 나는 4k 디스플레이를 사용할 때 문제가 발생한다는 것을 감지했다. 그러면 부팅 문제가있다. 어떻게 감지 : 오래된 모니터를 다시 연결하고 쉽게 부팅
Vic Nicethemer

그때 나는 1 등을했다 sudo apt install -f하고 sudo apt upgrade. 일했다.
ICE

이 답변이 Lucas Serafim의 답변과 거의 같은 이유는 무엇입니까?
Pim Heijden

6

nvidia-340의 전환을 제거하여 문제를 해결했습니다. 잘만되면 나는 사용할 필요가 없다 nvidia-340. 다음은 예입니다.

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

충돌이있을 때마다 계속 제거 할 수 있습니다.


정말 감사합니다! 처음에는 작동하지 않는 것처럼 보이지만 계속 시도하고 제거하면 결국 해결됩니다. 다시 감사합니다.
Gaurav Gandhi

큰 감사합니다! nvidia-340 정크에 대한 dpkg-divert 목록을 수정할 수 있다는 것을 모르면이 문제를 해결할 수 없었습니다. 당신은 바위
Mikis

2

나는 적절한 자동 청소를 실행하고 그것이 엉망인 패키지인지 생각합니다.

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

편집 : 다른 질문에 대답하기 위해, 다른 날에 18.04를 설치했을 때 390은 정상적으로 작동했지만 396로가는 것은 약간 재미있었습니다. 이것은 나를 위해 그것을 고쳤다.


고마워 이것은 내가 가진 한입니다. -fix-broken install '을 수정하십시오. 다음 패키지는 충족되지 않은 종속성이 있습니다. libnvidia-ifr1-390 : 의존 함 : libnvidia-gl-390이지만 설치되지 않음 libnvidia-ifr1-390 : i386 : 의존 함 : libnvidia-gl-390 : i386이지만 설치되지 않음 nvidia-driver-390 : 의존 함 : libnvidia- GL-390 (= 390.48-0ubuntu3)하지만 설치되어 있지 않습니다 ....
얄 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

이것을 먼저 실행하십시오.

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

그런 다음 ppa에서 설치하십시오.

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

이것은 Ubuntu 18.04 LTS에서 나를 위해 일했습니다.


nvidia-driver-390은 기본 Ubuntu 18.04 리포지토리에 있으므로 PPA를 추가하는 시점은 무엇입니까?
karel
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.