我正在尝试在 arch linux 中安装 Gimp 2.9。
遵循来自的指示这个网站(我很难理解),我尝试gimp-devel
通过yaourt安装。但是,我收到错误报告target not found: gimp-devel
。
如果我尝试安装gimp-git
,我会收到大量错误:
error: failed to commit transaction (conflicting files)
python-markupsafe: /usr/lib/python3.6/site-packages/MarkupSafe-0.23-py3.6.egg-info/PKG-INFO exists in filesystem
python-markupsafe: /usr/lib/python3.6/site-packages/MarkupSafe-0.23-py3.6.egg-info/SOURCES.txt exists in filesystem
python-markupsafe: /usr/lib/python3.6/site-packages/MarkupSafe-0.23-py3.6.egg-info/dependency_links.txt exists in filesystem
python-markupsafe: /usr/lib/python3.6/site-packages/MarkupSafe-0.23-py3.6.egg-info/not-zip-safe exists in filesystem
python-markupsafe: /usr/lib/python3.6/site-packages/MarkupSafe-0.23-py3.6.egg-info/top_level.txt exists in filesystem
python-markupsafe: /usr/lib/python3.6/site-packages/markupsafe/__init__.py exists in filesystem
python-markupsafe: /usr/lib/python3.6/site-packages/markupsafe/__pycache__/__init__.cpython-36.pyc exists in filesystem
python-markupsafe: /usr/lib/python3.6/site-packages/markupsafe/__pycache__/_compat.cpython-36.pyc exists in filesystem
python-markupsafe: /usr/lib/python3.6/site-packages/markupsafe/__pycache__/_constants.cpython-36.pyc exists in filesystem
python-markupsafe: /usr/lib/python3.6/site-packages/markupsafe/__pycache__/_native.cpython-36.pyc exists in filesystem
python-markupsafe: /usr/lib/python3.6/site-packages/markupsafe/__pycache__/tests.cpython-36.pyc exists in filesystem
python-markupsafe: /usr/lib/python3.6/site-packages/markupsafe/_compat.py exists in filesystem
python-markupsafe: /usr/lib/python3.6/site-packages/markupsafe/_constants.py exists in filesystem
python-markupsafe: /usr/lib/python3.6/site-packages/markupsafe/_native.py exists in filesystem
python-markupsafe: /usr/lib/python3.6/site-packages/markupsafe/_speedups.c exists in filesystem
python-markupsafe: /usr/lib/python3.6/site-packages/markupsafe/_speedups.cpython-36m-x86_64-linux-gnu.so exists in filesystem
python-markupsafe: /usr/lib/python3.6/site-packages/markupsafe/tests.py exists in filesystem
Errors occurred, no packages were upgraded.
有没有更好的方法在 arch 上安装 Gimp 2.9?或者有办法纠正我的gimp-git
错误吗? (我假设删除指定的文件将允许安装继续。)
答案1
首先,不要删除冲突的文件!他们可能拥有的通过另一个包裹;你可以检查一下pkgfile
。
正如杰森所说,最好使用包管理器。但是,就您而言,我认为 pacman 或 AUR 都无法解决该问题。我已经使用 Arch 好几年了,所以我下面的说法可能是错误的...但 pacman (GIMP 2.8) 中的 GIMP 依赖项似乎与 AUR (GIMP 2.9) 中的依赖项发生冲突。换句话说,那些从 AUR 成功构建 GIMP 2.9 的人可能有一些依赖项,如果它的依赖项也从 AUR 安装,而你没有。这是包裹里的一个错误。这些依赖项可能没有在 AUR GIMP 包中明确显示,因为开发人员可能没有意识到他们需要这样做。当软件包不是内置的时就会发生这种情况整理房间。所以基本上,这是臭名昭著的DLL地狱。
那么,至于解决方案...
- 更改您的 Linux 发行版
- 使用替代的隔离包管理器,例如 Nix。
- 使用容器。
改变你的发行版
第一个选择可能会陷入有争议的领域,但事实并非如此。不同的 Linux 发行版有不同的管理版本策略。例如,Arch 和 Gentoo 都是滚动发布,但不同的是Gentoo有两个不同的分支:stable和unstable。相比之下,Arch只有stable(pacman); AUR 不是一个分支,而更像是一个试验场。继续我的例子,当你使用不稳定的 portage 分支运行 Gentoo 时,一切你得到的是来自不稳定的分支。 (是的,您可以使用包屏蔽来进行挑选,但我通常在这里说)。与稳定相同。相比之下,当您开始使用 AUR 时,Arch 基本上将稳定与不稳定混合在一起,当这些依赖关系图发生冲突时,您最终会陷入困境。
话虽如此,我绝不推荐 Gentoo,也不是任何其他特定的发行版(尽管这是我使用的,因此也是最熟悉的)。我只是使用它最接近的表兄弟来比较发布策略,因为这在选择发行版时很重要。如果您想运行尖端软件,那么您需要一个可以让您轻松运行的发行版,因为从技术上讲,您可能会遇到比普通软件更频繁的问题。稳定的发行版。
使用替代包管理器
至于使用替代包管理器,我会提到 Nix,因为我知道它可以完成我所建议的操作,即独立于现有包管理器 (pacman) 安装包。
当您使用 Nix 安装软件包时,它会与其所有依赖项一起安装。然而,重要的关键是安装是独立于现有的包管理器进行的;甚至与通过 Nix 安装的其他软件包隔离。这将解决冲突,因为尼克斯根本就不存在任何冲突。缺点是您最终会重复安装各种软件包。例如,当您安装富使用 Nix,它将安装 glibc,即使您已经通过 pacman 安装了它。
这次,我在 Nix 中没有看到 GIMP 2.9。所以你必须自己创建包;可能是基于 2.8 包。
使用容器
与 Nix 等包管理器类似,使用 Docker 等容器,您可以单独运行 GIMP 2.9;及其所有依赖项并且没有冲突。这是使用 GIT master 分支中的 GIMP 的图像:https://hub.docker.com/r/jarfil/gimp-git/