gcc 和 cpp 依赖于 Ubuntu 19.10 中的可卸载软件包

gcc 和 cpp 依赖于 Ubuntu 19.10 中的可卸载软件包

升级到 Eoan 后,我有一些软件包被保留下来,无法升级。这一切似乎都归结cppgcc

$ 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

答案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检查过可用性。

相关内容