1

I am trying to install Gimp 2.9 in arch linux.

Following instructions from this site (which I can hardly understand), I have attempted to install gimp-devel via yaourt. However, I receive an error reporting target not found: gimp-devel.

If I attempt to install gimp-git, I receive a large number of errors:

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.

Is there a better way to install Gimp 2.9 on arch? Or is there a way to fix my gimp-git errors? (I am presuming that removing the files specified will allow installation to continue.)

  • Don't attempt to install packages behind pacman's back: wiki.archlinux.org/index.php/… – jasonwryan Jan 23 '17 at 0:49
  • What does pacman -Qo /usr/lib/python3.6/site-packages/MarkupSafe-0.23-py3.6.egg-info/PKG-INFO show? – Ry- Jan 23 '17 at 3:48
-3

Firstly, don't remove the conflicting files! They are probably owned by another package; you can check with pkgfile.

As Jason said, it's best to utilize the package manager. However, in your case, I don't think the problem is solvable with pacman nor AUR. It's been years since I've used Arch, so I could be wrong in saying the following... but it seems like the GIMP dependencies in pacman (GIMP 2.8) are in conflict with the dependencies in AUR (GIMP 2.9). In other words, those who have built GIMP 2.9 successfully from AUR probably have some if its dependencies also installed from AUR, and you don't. That's a mistake in the package. Those dependencies are probably not being made explicit in the AUR GIMP package because the devs probably haven't realized they need to do so. That happens when packages are not built in a clean room. So basically, it's the infamous DLL hell.

So, as for solutions...

  1. Change your Linux distro
  2. Use an alternative isolated package manager, such as Nix.
  3. Use a container.

Changing your distro

The first option may be leaning into controversial territory, but it's not meant as so. Different Linux distros have different strategies for managing releases. For example, Arch and Gentoo are both rolling-release, but the difference is Gentoo has two different branches: stable and unstable. In contrast, Arch has only stable (pacman); AUR is not a branch but rather more like a testing ground. Continuing my example, when you run Gentoo with the unstable portage branch, everything you get is from the unstable branch. (Yes, you can do cherry-picking with package masking, but I'm generally speaking here). Same with stable. In contrast, with Arch when you start using AUR you're basically mixing stable with unstable, and when those dependency graphs conflict you end up with your dilemma.

Having said all that, I'm by no means recommending Gentoo, nor any other particular distro (although that is what I use and therefore most familiar with). I'm simply using it's closest... cousin to compare the release strategy because that's important when choosing a distro. If you want to run bleeding-edge software, then you need a distro that allows you to do so with minimal fuss, given that technically you may have more frequent issues than with a stable distro.

Using an alternative package manager

As for using an alternative package manager, I will speak of Nix because it's the one I know which can do what I'm suggesting, with is to install packages in isolation from your existing package manager (pacman).

When you install a package with Nix, it is installed along with all its dependencies. However the important key is that the installation(s) happens in isolation from your existing package manager; and even in isolation from other packages installed via Nix. That would solve the conflicts because with Nix there simply aren't any. The downside is that you'll end up with redundant installations of various packages. For example, when you install foo using Nix, it will install glibc, even though you already have it installed via pacman.

Al this time, I don't see GIMP 2.9 in Nix. So you'd have to create the package yourself; possibly by basing it on the 2.8 package.

Using a container

Similar to a package manager such as Nix, with a container such as Docker you can run GIMP 2.9 in isolation; with all of its dependencies and without conflicts. Here's an image which uses GIMP from the GIT master branch: https://hub.docker.com/r/jarfil/gimp-git/

  • 2
    In contrast, Arch has only stable (pacman); AUR is not a branch but rather more like a testing ground. No, Arch has core, extra, and community, with testing (core + extra) and community-testing (community). AUR is for user-contributed packages and there aren’t issues expected purely by nature of using AUR packages. – Ry- Jan 23 '17 at 3:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.