首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解决Ubuntu和GIMP之间的包冲突?

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

Ask Ubuntu用户
提问于 2018-12-02 14:37:11
回答 3查看 2.4K关注 0票数 8

在Ubuntu18.04(肉桂)中,包cpp-7完全依赖于包gcc-7-base的版本7.3.0-27ubuntu1~18.04

代码语言:javascript
复制
$ 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

代码语言:javascript
复制
$ apt-cache show libgfortran4
Package: libgfortran4
...
Depends: gcc-7-base (= 7.3.0-16ubuntu3), libc6 (>= 2.27), libgcc1, libquadmath0

如果我已经安装了另一个版本的软件包,libgfortran4将不会安装:

代码语言:javascript
复制
$ 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

cpp-7位于ubuntu-desktop的依赖关系图中。libgfortran4位于gimp的依赖关系图中。这不意味着没有人可以从Ubuntu18.04上的存储库中安装GIMP吗?如果我错了,请纠正我,但我当然不能。

为了使这件事更加令人恼火,apt-cache showpkg展示了两个不同版本的gcc-7-base来自同一个存储库,并且具有相同的MD5哈希:

代码语言:javascript
复制
$ 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-7libgfortran4,接受另一个版本的gcc-7-base是可以的,因为它是完全相同的代码?我需要让包装维护人员(S)参与进来吗?

编辑:几天前,我发布了一个关于这个主题的问题。目前的问题是,我在这段时间内所做的工作的结果缩小了。

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

代码语言:javascript
复制
$ 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用于更新,

代码语言:javascript
复制
# deb-src http://us.archive.ubuntu.com/ubuntu/ bionic-updates main restricted

但没有任何评论或未评论的更新,这只是deb。我应该加一行吗?

代码语言:javascript
复制
deb http://us.archive.ubuntu.com/ubuntu/ bionic-updates main restricted

编辑:添加

代码语言:javascript
复制
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中安装。谢谢大家!

EN

回答 3

Ask Ubuntu用户

回答已采纳

发布于 2018-12-02 15:17:12

这类问题通常由一个简单的apt update解决。

让我们看看为什么在麦迪逊数据库中查询可用的18.04版本的gcc-7-baselibgfortran4

代码语言:javascript
复制
$ 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存储库之间的这种不同步有两个常见的原因。

  1. 用户最近禁用了-updates存储库。很容易在/etc/apt/Sourcees.list或您的软件和源代码控制面板中检查和修复。
  2. 用户已经有一段时间没有运行apt update来刷新(更新)apt的本地数据库,该数据库包含两个来源的可用包。这也是一个简单的解决办法。

您的文件/etc/apt/source. that应该有一些镜像和源的组合,这些镜像和源的总和如下:

代码语言:javascript
复制
deb [mirror URL] bionic main
deb [mirror URL] bionic-updates main
deb [mirror URL] bionic-security main

可选的universemultiverserestricted repos可以包含在相同的行中。

票数 10
EN

Ask Ubuntu用户

发布于 2018-12-02 15:46:54

另一种选择是安装GIMP的snap版本。我意识到有些人不喜欢快照,但对于普通Linux用户来说,这可能是一个更好的解决方案。

代码语言:javascript
复制
sudo snap install gimp
票数 3
EN

Ask Ubuntu用户

发布于 2018-12-03 09:14:01

除了接受的答案:如果您只启用了默认源和最新的包列表(apt update),并且仍然遇到类似gimp这样的基本包上的冲突,那么报告一个bug。这是一些东西,哪些应该由包维护人员来修复,哪些可能对他来说很容易修复。它也可能影响更多的人,而不仅仅是你。这样的错误时有发生,但是维护人员需要知道。

当然,您应该确保您的配置和包状态不是以前的问题,因为如果您已经从第三方存储库获得gimp (或它的一些依赖项),那么ubuntu维护人员就无法帮助您。

票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1097914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档