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再試行してください。
カールリヒター

sudo apt-get clean同じことが私のためにまだ起こった後
ピムハイデン

回答:


75

Ubuntuのフォーラムでこのコマンドを見つけ、私と非常にうまくいった:

実行:

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 kutters to stutteringp0et2 :)


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)に変更できます。
ペトルR.

2
あなたは私の苦痛から私を救った、私はちょうど賛成するためにここにアカウントを作った
プリムサ

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
デビッドフォースター

これは動作します。コメントする必要があります:4kディスプレイを使用すると問題が発生することを検出しました-起動に問題があります。検出方法:古いモニターを再接続すると簡単に起動します
Vic Nicethemer

私は#1をして、そしてsudo apt install -fそしてsudo apt upgrade。働いた。
ICE

なぜこの答えはルーカス・セラフィムの答えとほぼ同じですか?
ピムハイデン

6

nvidia-340の転換を削除することで問題を解決しました。うまくいけば、使用する必要はありませんnvidia-340。次に例を示します。

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

競合がある場合はいつでも削除を続けることができます。


トンありがとう!最初は、機能していないように見えますが、試行と削除を続ければ、最終的には解決します。再度、感謝します。
ガウラフガンジー

本当にありがとう!nvidia-340ジャンクのdpkg-divertリストを変更できることを知らずに、この問題を乗り越えることはできませんでした。あなたが
揺れる

2

私はapt auto-cleanを実行し、それが私が思うに、混乱したパッケージかどうかを確認します。

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

編集:他の質問に答えるために、先日18.04をインストールしたとき390はうまく動きましたが、396に行くのは少し「楽しい」でした。これは私のためにそれを修正しました。


どうもありがとう。これは私が得た限りです::(クリーンな再インストールを行うかもしれません):〜$ sudo apt upgradeパッケージリストの読み取り...完了依存関係ツリーの構築状態情報の読み取り...完了 'apt- -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)がインストールされていない....
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

これを最初に実行して、

溶液 #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.