在 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
成功了。
感谢大家。