Ubuntu 16.04:gcc-5-base 损坏

Ubuntu 16.04:gcc-5-base 损坏

在 Ubuntu 16.04 上我遇到了问题gcc-5-基础包裹:

user@laptop:~$ sudo apt install libgfortran3
The following packages have unmet dependencies:
 libgfortran3 : Depends: gcc-5-base (= 5.4.0-6ubuntu1~16.04.11) but 5.5.0-12ubuntu1~16.04 is to be installed
E: Unable to correct problems, you have held broken packages.

不保留包裹:dpkg --get-selection | grep hold不返回任何内容。

无法应用自动修复:

user@laptop:~$ sudo apt -f install
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

重新安装说一切正常(但当然不是):

user@laptop:~$ sudo apt install gcc-5-base
gcc-5-base is already the newest version (5.5.0-12ubuntu1~16.04).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

无需清理依赖项:

user@laptop:~$ sudo apt-get --purge autoremove
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded

我认为问题出现在从 14.04 升级到 16.04 时:我使用过这些命令修复 libstdc++,之后do-release-upgrade

还有其他提示吗?

谢谢。

答案1

从问题描述来看,问题已经非常清楚了。

您的问题是:

libgfortran3 是您想要安装的。
=>=> 但它需要 gcc-5-base (= 5.4.0-6ubuntu1~16.04.11)
.. .. ..=>=> 但 gcc-5-base (5.5.0-12ubuntu1~16.04) 可用。

看,问题是,要安装 libgfortran3,您需要(确切地说,因为 = 符号)5.4.0-6ubuntu1~16.04.11,但此版本不可用。可用的是:5.5.0-12ubuntu1~16.04,它无法满足依赖性(因为条件是完全匹配)。所以什么都没有安装。

由于什么都没有发生,您的安装基础也是正确的,并且处于正确的状态。但是包装已经损坏。

解决方案

首先下载 libgfortran3 的 deb

 sudo apt download libgfortran3
 sudo dpkg -i --force-depends libgfortran [your version] .deb

首先下载 libgfortan3-版本.deb 到你的密码。

接下来,修改 /var/lib/dpkg/status 让 dpkg 闭嘴。

 /var/lib/dpkg/status
  • 编辑 /var/lib/dpkg/status
  • 查找依赖关系损坏的软件包
  • 编辑 Depends: 行以停止软件包抱怨。

找到以下行:

Package: libgfortan3

接下来编辑行 Depends (上一行后面几行)

调整:

Depends: gcc-5-base (= 5.4.0-6ubuntu1~16.04.11)

到:

Depends: gcc-5-base (>= 5.4.0-6ubuntu1~16.04.11)

这应该可以解决问题。

答案2

我使用 解决了这个问题sudo apt install gcc-5-base=5.4.0-6ubuntu1~16.04.11。这删除了很多东西,对我来说也是一个关键的包:xubuntu-desktop

但重新安装它并sudo apt install xubuntu-desktop解决了其他损坏的依赖关系后,我就能sudo install libgfortran3成功了。

感谢大家。

相关内容