Ubuntu18.04 で apt upgrade が失敗
概要
定期的に apt upgrade
を実行しているのですが、今日に限って急に失敗。
とりあえず upgradeができるまでは成功したので手順を書いておきます
ながれ
こんな感じで対応しました
ことのはじまり
apt upgrade に失敗
$ sudo apt upgrade パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 これらを直すためには 'apt --fix-broken install' を実行する必要があるかもしれません。 以下のパッケージには満たせない依存関係があります: libglvnd-dev : 依存: libglvnd0 (= 1.0.0-2ubuntu2.1) しかし、1.0.0-2ubuntu2.2 はインストールされています 依存: libglvnd-core-dev (= 1.0.0-2ubuntu2.1) しかし、1.0.0-2ubuntu2.2 はインストールされています 依存: libegl1 (= 1.0.0-2ubuntu2.1) しかし、1.0.0-2ubuntu2.2 はインストールされています 依存: libgles2 (= 1.0.0-2ubuntu2.1) しかし、1.0.0-2ubuntu2.2 はインストールされています 依存: libgl1 (= 1.0.0-2ubuntu2.1) しかし、1.0.0-2ubuntu2.2 はインストールされています 依存: libglx0 (= 1.0.0-2ubuntu2.1) しかし、1.0.0-2ubuntu2.2 はインストールされています 依存: libopengl0 (= 1.0.0-2ubuntu2.1) しかし、1.0.0-2ubuntu2.2 はインストールされています E: 未解決の依存関係です。'apt --fix-broken install' を実行してみてください (または解法を明示してください)。
言われたとおり apt --fix-broken
$ sudo apt --fix-broken install パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 依存関係を解決しています ... 完了 以下のパッケージが自動でインストールされましたが、もう必要とされていません: linux-headers-4.15.0-30 linux-headers-4.15.0-30-generic linux-image-4.15.0-30-generic linux-modules-4.15.0-30-generic linux-modules-extra-4.15.0-30-generic これを削除するには 'sudo apt autoremove' を利用してください。 以下の追加パッケージがインストールされます: libgles1 libglvnd-dev 以下のパッケージが新たにインストールされます: libgles1 以下のパッケージはアップグレードされます: libglvnd-dev アップグレード: 1 個、新規インストール: 1 個、削除: 0 個、保留: 53 個。 14.6 kB 中 0 B のアーカイブを取得する必要があります。 この操作後に追加で 66.6 kB のディスク容量が消費されます。 続行しますか? [Y/n] y (データベースを読み込んでいます ... 現在 276241 個のファイルとディレクトリがインストールされています。) .../libgles1_1.0.0-2ubuntu2.2_amd64.deb を展開する準備をしています ... libgles1:amd64 (1.0.0-2ubuntu2.2) を展開しています... dpkg: アーカイブ /var/cache/apt/archives/libgles1_1.0.0-2ubuntu2.2_amd64.deb の処理中にエラーが発生しました (--unpack): '/usr/lib/x86_64-linux-gnu/libGLESv1_CM.so.1' を上書きしようとしています。これはパッケージ nvidia-340 340.106-0ubuntu3 にも存在します .../libglvnd-dev_1.0.0-2ubuntu2.2_amd64.deb を展開する準備をしています ... libglvnd-dev:amd64 (1.0.0-2ubuntu2.2) で (1.0.0-2ubuntu2.1 に) 上書き展開しています ... dpkg: アーカイブ /var/cache/apt/archives/libglvnd-dev_1.0.0-2ubuntu2.2_amd64.deb の処理中にエラーが発生しました (--unpack): '/usr/lib/x86_64-linux-gnu/libGLESv1_CM.so' を上書きしようとしています。これはパッケージ nvidia-340 340.106-0ubuntu3 にも存在します 処理中にエラーが発生しました: /var/cache/apt/archives/libgles1_1.0.0-2ubuntu2.2_amd64.deb /var/cache/apt/archives/libglvnd-dev_1.0.0-2ubuntu2.2_amd64.deb E: Sub-process /usr/bin/dpkg returned an error code (1)
パッケージ nvidia-340 340.106-0ubuntu3 にも存在します
これが問題なんだな。
$ sudo apt list nvidia-340 一覧表示... 完了 nvidia-340/bionic,now 340.106-0ubuntu3 amd64 [インストール済み]
よし、このパッケージを消しちゃお。
ほんとに消していいかは不明だけど、だめだったら入れ直せばええやろ!ガハハ!
apt で消せなかったので dpkg で直接処すよ
apt
、aptitude
で最初は消そうと思ったんですがなんかエラーが出てだめでした。
なので dpkg
で直接やってしまいます
$ sudo dpkg -l | grep nvidia-340 ii nvidia-340 340.106-0ubuntu3 amd64 NVIDIA binary driver - version 340.106 ~$ sudo dpkg -r nvidia-340 (データベースを読み込んでいます ... 現在 276240 個のファイルとディレクトリがインストールされています。) nvidia-340 (340.106-0ubuntu3) を削除しています ... Stopping nvidia-persistenced nvidia-persistenced: no process found Done. Removing all DKMS Modules Done.
なんかたくさん出てきたけどうまくいったみたい。
fix-broken 再チャレンジ
$ sudo apt --fix-broken install パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 依存関係を解決しています ... 完了 以下のパッケージが自動でインストールされましたが、もう必要とされていません: libcuda1-340 libxnvctrl0 linux-headers-4.15.0-30 linux-headers-4.15.0-30-generic linux-image-4.15.0-30-generic linux-modules-4.15.0-30-generic linux-modules-extra-4.15.0-30-generic nvidia-settings screen-resolution-extra これを削除するには 'sudo apt autoremove' を利用してください。 以下の追加パッケージがインストールされます: libgles1 libglvnd-dev 以下のパッケージが新たにインストールされます: libgles1 以下のパッケージはアップグレードされます: libglvnd-dev アップグレード: 1 個、新規インストール: 1 個、削除: 0 個、保留: 53 個。 14.6 kB 中 0 B のアーカイブを取得する必要があります。 この操作後に追加で 66.6 kB のディスク容量が消費されます。 続行しますか? [Y/n] y (データベースを読み込んでいます ... 現在 275959 個のファイルとディレクトリがインストールされています。) .../libgles1_1.0.0-2ubuntu2.2_amd64.deb を展開する準備をしています ... libgles1:amd64 (1.0.0-2ubuntu2.2) を展開しています... .../libglvnd-dev_1.0.0-2ubuntu2.2_amd64.deb を展開する準備をしています ... libglvnd-dev:amd64 (1.0.0-2ubuntu2.2) で (1.0.0-2ubuntu2.1 に) 上書き展開しています ... libgles1:amd64 (1.0.0-2ubuntu2.2) を設定しています ... libglvnd-dev:amd64 (1.0.0-2ubuntu2.2) を設定しています ... libc-bin (2.27-3ubuntu1) のトリガを処理しています ...
成功!
apt upgrade
にも成功!
いちおう 消したパッケージを復旧しておく
$ sudo apt install nvidia-340/bionic パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 'nvidia-340' のバージョン '340.106-0ubuntu3' (Ubuntu:18.04/bionic [amd64]) を選択しました 以下のパッケージが自動でインストールされましたが、もう必要とされていません: linux-headers-4.15.0-30 linux-headers-4.15.0-30-generic linux-image-4.15.0-30-generic linux-modules-4.15.0-30-generic linux-modules-extra-4.15.0-30-generic これを削除するには 'sudo apt autoremove' を利用してください。 以下のパッケージが新たにインストールされます: nvidia-340 アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。 51.9 MB のアーカイブを取得する必要があります。 この操作後に追加で 274 MB のディスク容量が消費されます。 取得:1 http://jp.archive.ubuntu.com/ubuntu bionic/restricted amd64 nvidia-340 amd64 340.106-0ubuntu3 [51.9 MB] 51.9 MB を 31秒 で取得しました (1,651 kB/s) 以前に未選択のパッケージ nvidia-340 を選択しています。 (データベースを読み込んでいます ... 現在 275967 個のファイルとディレクトリがインストールされています。) .../nvidia-340_340.106-0ubuntu3_amd64.deb を展開する準備をしています ... 'nvidia-340 による /usr/lib/x86_64-linux-gnu/libGL.so.1 から /usr/lib/x86_64-linux-gnu/libGL.so.1.distrib への退避 (divert)' を追加しています 'nvidia-340 による /usr/lib/i386-linux-gnu/libGL.so.1 から /usr/lib/i386-linux-gnu/libGL.so.1.distrib への退避 (divert)' を追加しています 'nvidia-340 による /usr/lib/x86_64-linux-gnu/libGL.so から /usr/lib/x86_64-linux-gnu/libGL.so.distrib への退避 (divert)' を追加しています 'nvidia-340 による /usr/lib/i386-linux-gnu/libGL.so から /usr/lib/i386-linux-gnu/libGL.so.distrib への退避 (divert)' を追加しています 'nvidia-340 による /usr/lib/x86_64-linux-gnu/libEGL.so.1 から /usr/lib/x86_64-linux-gnu/libEGL.so.1.distrib への退避 (divert)' を追加しています 'nvidia-340 による /usr/lib/i386-linux-gnu/libEGL.so.1 から /usr/lib/i386-linux-gnu/libEGL.so.1.distrib への退避 (divert)' を追加しています 'nvidia-340 による /usr/lib/x86_64-linux-gnu/libEGL.so から /usr/lib/x86_64-linux-gnu/libEGL.so.distrib への退避 (divert)' を追加しています 'nvidia-340 による /usr/lib/i386-linux-gnu/libEGL.so から /usr/lib/i386-linux-gnu/libEGL.so.distrib への退避 (divert)' を追加しています 'nvidia-340 による /usr/lib/x86_64-linux-gnu/libGLESv2.so から /usr/lib/x86_64-linux-gnu/libGLESv2.so.distrib への退避 (divert)' を追加しています 'nvidia-340 による /usr/lib/i386-linux-gnu/libGLESv2.so から /usr/lib/i386-linux-gnu/libGLESv2.so.distrib への退避 (divert)' を追加しています 'nvidia-340 による /usr/lib/x86_64-linux-gnu/libGLESv2.so.2 から /usr/lib/x86_64-linux-gnu/libGLESv2.so.2.distrib への退避 (divert)' を追加しています 'nvidia-340 による /usr/lib/i386-linux-gnu/libGLESv2.so.2 から /usr/lib/i386-linux-gnu/libGLESv2.so.2.distrib への退避 (divert)' を追加しています nvidia-340 (340.106-0ubuntu3) を展開しています... dpkg: アーカイブ /var/cache/apt/archives/nvidia-340_340.106-0ubuntu3_amd64.deb の処理中にエラーが発生しました (--unpack): '/usr/lib/x86_64-linux-gnu/libGLESv1_CM.so' を上書きしようとしています。これはパッケージ libglvnd-dev:amd64 1.0.0-2ubuntu2.2 にも存在します 処理中にエラーが発生しました: /var/cache/apt/archives/nvidia-340_340.106-0ubuntu3_amd64.deb E: Sub-process /usr/bin/dpkg returned an error code (1)
だめみたい。
まえっか。ガハハ!
その後
nvidia パッケージで問題が起きてるっていう警告は出ていますが
再起動、問題なく動きました。
しばらく様子見・・・
moremagic
2018-09-29