如何解决 Ubuntu 和 GIMP 之间的包冲突?

Dar*_*rks 8 package-management gimp gcc 18.04

在 Ubuntu 18.04 (Cinnamon) 中,软件包完全cpp-7取决于7.3.0-27ubuntu1~18.04软件包的版本gcc-7-base

$ aptitude why gcc-7-base
i   cpp-7 Depends gcc-7-base (= 7.3.0-27ubuntu1~18.04)
Run Code Online (Sandbox Code Playgroud)

同时,包完全libgfortran4取决于7.3.0-16ubuntu3相同包的版本gcc-7-base

$ apt-cache show libgfortran4
Package: libgfortran4
...
Depends: gcc-7-base (= 7.3.0-16ubuntu3), libc6 (>= 2.27), libgcc1, libquadmath0
Run Code Online (Sandbox Code Playgroud)

libgfortran4如果我已经安装了其他版本的软件包,则不会安装:

$ sudo apt-get install libgfortran4
...
The following packages have unmet dependencies:
 libgfortran4 : Depends: gcc-7-base (= 7.3.0-16ubuntu3) but 7.3.0-27ubuntu1~18.04 is to be installed
                Depends: libquadmath0 but it is not going to be installed
Run Code Online (Sandbox Code Playgroud)

cpp-7在 的依赖图中ubuntu-desktoplibgfortran4在 的依赖图中gimp。这是否意味着没有人可以从 Ubuntu 18.04 上的存储库安装 GIMP? 如果我错了,请纠正我,但我当然不能。

更令人抓狂的是,这apt-cache showpkg表明两个不同版本的gcc-7-base来自同一个存储库并具有相同的 MD5 哈希值:

$ apt-cache showpkg gcc-7-base
Package: gcc-7-base
Versions: 
7.3.0-27ubuntu1~18.04 (/var/lib/dpkg/status)
 Description Language: 
                 File: /var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_bionic_main_binary-amd64_Packages
                  MD5: b6e93638a6d08ea7a18929d7cf078e5d
...
7.3.0-16ubuntu3 (/var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_bionic_main_binary-amd64_Packages)
 Description Language: 
                 File: /var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_bionic_main_binary-amd64_Packages
                  MD5: b6e93638a6d08ea7a18929d7cf078e5d
Run Code Online (Sandbox Code Playgroud)

意思是(再次,如果我错了,请纠正我)它们是完全相同的代码。所以,这里没有实际的依赖冲突,只有一个标签。

这是怎么发生的,我该如何解决?例如,有没有办法告诉我cpp-7或者libgfortran4可以接受 的另一个版本gcc-7-base,因为它是完全相同的代码?我需要让包维护者参与吗?

编辑:前几天我张贴一个问题关于这一主题。当前的问题是我在此期间所做工作的缩小结果。

编辑:这些是我的活动来源:

$ grep -Ev '(^#|^ *$|deb-src)' /etc/apt/sources.list /etc/apt/sources.list.d/*
/etc/apt/sources.list:deb http://us.archive.ubuntu.com/ubuntu/ bionic main restricted
/etc/apt/sources.list:deb http://us.archive.ubuntu.com/ubuntu/ bionic universe
/etc/apt/sources.list:deb http://us.archive.ubuntu.com/ubuntu/ bionic multiverse
/etc/apt/sources.list:deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main
/etc/apt/sources.list.d/keybase.list:deb http://prerelease.keybase.io/deb stable main
/etc/apt/sources.list.d/keybase.list.save:deb http://prerelease.keybase.io/deb stable main
/etc/apt/sources.list.d/vscode.list~:deb [arch=amd64] http://packages.microsoft.com/repos/vscode stable main
Run Code Online (Sandbox Code Playgroud)

有评论deb-src更新,

# deb-src http://us.archive.ubuntu.com/ubuntu/ bionic-updates main restricted
Run Code Online (Sandbox Code Playgroud)

但没有评论或取消评论更新只是deb. 我应该添加一行吗

deb http://us.archive.ubuntu.com/ubuntu/ bionic-updates main restricted
Run Code Online (Sandbox Code Playgroud)

?

编辑:添加

deb http://us.archive.ubuntu.com/ubuntu/ bionic-updates main restricted
Run Code Online (Sandbox Code Playgroud)

到我的/etc/apt/sources.list文件,然后$ sudo apt-get update工作。GIMP 按预期安装$ sudo apt-get install gimp。谢谢你们!

use*_*733 10

这种问题通常由一个简单的apt update.

让我们通过查询 madison 数据库中可用的 18.04 版本gcc-7-baselibgfortran4.

$ rmadison gcc-7-base
 gcc-7-base | 7.3.0-16ubuntu3       | bionic         | amd64, arm64, armhf, i386, ppc64el, s390x
 gcc-7-base | 7.3.0-27ubuntu1~18.04 | bionic-updates | amd64, arm64, armhf, i386, ppc64el, s390x

$ rmadison libgfortran4
 libgfortran4 | 7.3.0-16ubuntu3       | bionic         | amd64, arm64, armhf, i386, ppc64el, s390x
 libgfortran4 | 7.3.0-27ubuntu1~18.04 | bionic-updates | amd64, arm64, armhf, i386, ppc64el, s390x
Run Code Online (Sandbox Code Playgroud)

您可以看到这libgfortran4是仿生(非更新)版本,并且具有仿生(非更新)依赖性。gcc-7-base,另一方面使用较新的仿生更新依赖项。

基本存储库与其在单个系统上的相应 -updates 存储库之间出现这种不同步的常见原因有两个。

  1. 用户最近禁用了 -updates 存储库。很容易在 /etc/apt/sources.list 或您的软件和源控制面板中检查和修复。

  2. 用户只是有apt update一段时间没有运行来刷新(更新)apt 的本地数据库,其中包含来自两个来源的可用软件包。这也很容易解决。

你的文件 /etc/apt/sources.list 应该有一些镜像和源的组合,加起来:

deb [mirror URL] bionic main
deb [mirror URL] bionic-updates main
deb [mirror URL] bionic-security main
Run Code Online (Sandbox Code Playgroud)

可选的universemultiverserestrictedrepos 可以包含在同一行中。