在Ubuntu18.04(肉桂)中,包cpp-7完全依赖于包gcc-7-base的版本7.3.0-27ubuntu1~18.04:
$ aptitude why gcc-7-base
i cpp-7 Depends gcc-7-base (= 7.3.0-27ubuntu1~18.04)同时,包libgfortran4完全依赖于同一包gcc-7-base的版本7.3.0-16ubuntu3:
$ apt-cache show libgfortran4
Package: libgfortran4
...
Depends: gcc-7-base (= 7.3.0-16ubuntu3), libc6 (>= 2.27), libgcc1, libquadmath0如果我已经安装了另一个版本的软件包,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 installedcpp-7位于ubuntu-desktop的依赖关系图中。libgfortran4位于gimp的依赖关系图中。这不意味着没有人可以从Ubuntu18.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这意味着(再次,如果我错了,请纠正我),它们是完全相同的代码。因此,这里没有实际的依赖冲突,只有一个标签。
这是如何发生的,我该如何解决?例如,我是否可以告诉cpp-7或libgfortran4,接受另一个版本的gcc-7-base是可以的,因为它是完全相同的代码?我需要让包装维护人员(S)参与进来吗?
编辑:几天前,我发布了一个关于这个主题的问题。目前的问题是,我在这段时间内所做的工作的结果缩小了。
编辑:这些是我的活动源:
$ 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有一个评论的deb-src用于更新,
# deb-src http://us.archive.ubuntu.com/ubuntu/ bionic-updates main restricted但没有任何评论或未评论的更新,这只是deb。我应该加一行吗?
deb http://us.archive.ubuntu.com/ubuntu/ bionic-updates main restricted?
编辑:添加
deb http://us.archive.ubuntu.com/ubuntu/ bionic-updates main restricted在我的/etc/apt/sources.list文件中,$ sudo apt-get update工作了。GIMP按预期在$ sudo apt-get install gimp中安装。谢谢大家!
发布于 2018-12-02 15:17:12
这类问题通常由一个简单的apt update解决。
让我们看看为什么在麦迪逊数据库中查询可用的18.04版本的gcc-7-base和libgfortran4。
$ 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您可以看到libgfortran4是仿生(非更新)版本,并且具有仿生(非更新)依赖关系。另一方面,gcc-7-base使用较新的仿生更新依赖项.
在单个系统上,基存储库与其对应的-updates存储库之间的这种不同步有两个常见的原因。
apt update来刷新(更新)apt的本地数据库,该数据库包含两个来源的可用包。这也是一个简单的解决办法。您的文件/etc/apt/source. that应该有一些镜像和源的组合,这些镜像和源的总和如下:
deb [mirror URL] bionic main
deb [mirror URL] bionic-updates main
deb [mirror URL] bionic-security main可选的universe、multiverse和restricted repos可以包含在相同的行中。
发布于 2018-12-02 15:46:54
另一种选择是安装GIMP的snap版本。我意识到有些人不喜欢快照,但对于普通Linux用户来说,这可能是一个更好的解决方案。
sudo snap install gimp发布于 2018-12-03 09:14:01
除了接受的答案:如果您只启用了默认源和最新的包列表(apt update),并且仍然遇到类似gimp这样的基本包上的冲突,那么报告一个bug。这是一些东西,哪些应该由包维护人员来修复,哪些可能对他来说很容易修复。它也可能影响更多的人,而不仅仅是你。这样的错误时有发生,但是维护人员需要知道。
当然,您应该确保您的配置和包状态不是以前的问题,因为如果您已经从第三方存储库获得gimp (或它的一些依赖项),那么ubuntu维护人员就无法帮助您。
https://askubuntu.com/questions/1097914
复制相似问题