Eoanにアップグレードした後、保留されていてアップグレードできないパッケージがあります。すべてはcpp
とgcc
に分類されるようです:
$ Sudo apt install gcc
The following packages have unmet dependencies:
gcc : Depends: cpp (= 4:9.2.1-3.1ubuntu1) but 4:8.3.0-1ubuntu3 is to be installed
Depends: gcc-9 (>= 9.2.1-1~) but it is not going to be installed
$ Sudo apt install gcc-9
The following packages have unmet dependencies:
gcc-9 : Depends: cpp-9 (= 9.2.1-9ubuntu2) but it is not going to be installed
Depends: gcc-9-base (= 9.2.1-9ubuntu2) but 9.2.1-17ubuntu1~18.04.1 is to be installed
$ Sudo apt install gcc-9-base
gcc-9-base is already the newest version (9.2.1-17ubuntu1~18.04.1).
理解するのに十分なほど理解できませんが、これがapt-cache
の出力です。
$apt-cache policy cpp
cpp:
Installed: 4:8.3.0-1ubuntu3
Candidate: 4:9.2.1-3.1ubuntu1
Version table:
4:9.2.1-3.1ubuntu1 500
500 http://archive.ubuntu.com/ubuntu eoan/main AMD64 Packages
*** 4:8.3.0-1ubuntu3 100
100 /var/lib/dpkg/status
$apt-cache policy cpp-9
cpp-9:
Installed: (none)
Candidate: 9.2.1-9ubuntu2
Version table:
9.2.1-9ubuntu2 500
500 http://archive.ubuntu.com/ubuntu eoan/main AMD64 Packages
誰かが私がここで何が起こっているのかを理解するのを手伝ってくれる?デフォルト以外のすべてのリポジトリを無効にしましたが、成功しませんでした。 19.10に付属しているように見えるバージョンのgcc-9(9.2.1-9ubuntu2
)を手動でインストールすることも試みましたが、他のすべてのものが9.2.1-17ubuntu1~18.04.1
を望んでいるため、けがをするのは侮辱だけです。
ここでの根本的な問題は、一部のパッケージがリポジトリで利用可能なバージョンよりも新しいバージョンでインストールされ、それらの多くに重大な依存関係があるため、パージして再インストールするだけではできないということでした。
解決策:これらをアップグレードするにはallこのような1つのモンスター式でSudo apt install lib32gcc1=1:9.2.1-9ubuntu2 lib32stdc++6=9.2.1-9ubuntu2 libasan5=9.2.1-9ubuntu2 libatomic1=9.2.1-9ubuntu2 libcc1-0=9.2.1-9ubuntu2 libgcc1=1:9.2.1-9ubuntu2 libgomp1=9.2.1-9ubuntu2 libitm1=9.2.1-9ubuntu2 liblsan0=9.2.1-9ubuntu2 libstdc++6=9.2.1-9ubuntu2 libtsan0=9.2.1-9ubuntu2 libubsan1=9.2.1-9ubuntu2 libquadmath0=9.2.1-9ubuntu2 ....
など。
その前に、dpkg -r ...
を使用して、この依存関係チェーンに含まれていたパッケージを削除する必要がありましたが、リポジトリからはまったく利用できませんでした。 (これには、依存関係のチェーンを段階的にたどる必要がありました。)apt-cache policy
を使用して、可用性を確認しました。