NOTE: I’m not going to maintain this post any more (18th April 2016). Now Stretch is the current testing, I’m putting up a new page for the build there. Recent versions of GIMP from git need libmypaint, which adds an extra dependency. Please see this new article for compiling on Stretch.
I compiled GIMP for my Debian Jessie/Sid install last night. I used this marvellous document but there were a couple of errors, so I’m adding this update here. This means that this document is distributed by the same license as the original CC Attribution-Share Alike 3.0 Unported.
At time of writing 2.9.x is actually GIMP 2.9.1
What to do under DEBIAN
Open a terminal window and copy line for line int the window. Press RETURN and watch. The block with all the packages are one line, the “\” tells the system to ignore the line break, so you can copy and paste it in one chunk into your terminal.
Prepare the environment
cd export PREFIX=`echo ~/gimp` export PATH=$PREFIX/bin:$PATH export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig:$PREFIX/share/pkgconfig
Install needed packages
Become superuser, update your system, install, go back to normal user.
su - apt-get update apt-get upgrade apt-get install libtool automake autoconf git-core gettext \ libglib2.0-0 libglib2.0-dev libgtk2.0-0 libgtk2.0-dev ruby \ intltool libtiff5 libtiff5-dev python-dev python-gtk2-dev \ libexif-dev libmng-dev liblcms1-dev libxpm-dev librsvg2-dev \ libwmf-dev libasound2-dev valac xsltproc openexr libexif-dev \ libexif12 libgexiv2-dev libbz2-dev gtk-doc-tools \ libjson-glib-dev exit
There are also some optional packages to help with dependencies:
su - apt-get install libaa1-dev libwebkit-dev libopenexr-dev \ libjasper-dev libgs-dev libpoppler-glib-dev exit
Don’t worry about these for a basic compile though. This should be the last time you need to become root to complete the process.
Get the source
mkdir gimp-build cd gimp-build git clone git://git.gnome.org/babl git clone git://git.gnome.org/gegl git clone git://git.gnome.org/gimp
Generate the make files, compile and install
In the autogen lines a lot of checks are done – watch for warnings and error messages!
cd babl ./autogen.sh --prefix=$PREFIX make make install cd ../gegl ./autogen.sh --prefix=$PREFIX make make install cd ../gimp ./autogen.sh --prefix=$PREFIX --disable-gtk-doc make make install
This gets you gimp-2.9 in the directory ~/gimp/bin . If you have error try to add any missing package and try again. Post a comment on this post if you like.
Keeping GIMP up to date
Don’t delete the source directory. Backup your directory with the working GIMP 2.9. The update can break everything in there…..
You can update easily with:
cd export PREFIX=`echo ~/gimp` export PATH=$PREFIX/bin:$PATH export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig:$PREFIX/share/pkgconfig cd gimp-build cd babl git clean -f git pull --rebase ./autogen.sh --prefix=$PREFIX make make install cd ../gegl git clean -f git pull --rebase ./autogen.sh --prefix=$PREFIX make make install cd ../gimp git clean -f git pull --rebase ./autogen.sh --prefix=$PREFIX make make install
This is fast, because only new and changed stuff is pulled from the servers and compiled.
So that’s it! Enjoy the full range of bit depths, and all the other new work in progress features of the new GIMP.
Hi Gremble’s Beans,
Came across your post re GIMP 2.9 and thought would try out on a clean VM install of Jessie. Worked perfectly and really appreciated the line by line instructions. I now intend to install in my main machine (again Jessie) and wonder if you have come across any problems/conflicts (I run a Mythtv backend on this machine). I do not want to mess up if at all possible. I will also be attempting to install Darktable 1.6.3 (again this has been ok in the VM along with GIMP 2.9)
Appreciate your thoughts and Thank You for the excellent instructions.
I can’t imagine there’d be any conflicts, but you’ve probably given it a try already since I haven’t got back to you for such a long time!
Thanks a lot 😀
Did it on Debian Jessie . . .
I installed a few aditional Packets: libbz2-dev libbz libzip2 libzip-dev libgexiv2-dev
(Don’t know exactly which ones were needed . . . after that it worked just fine)
I’ve added libbz2-dev to the instructions, that is the only necessary library.
Is there a difference of using “echo ~/gimp” versus “$HOME/gimp”? It’s weird, setting variables with “commands” instead of referring directly to the environment variables.
It’s also sort of weird that it seemingly is gimp’s binary/etc folder, not the user’s config folder. So the standard would perhaps be “/opt/gimp” or something, instead of in a random user home folder or in root’s home folder.
The reason to use the users home directory for building is that you are creating a local build, using only the permissions you have as a user. Obviously you need to use root to install packages, but the build happens as your own user. It’s safer.
You also then have much better options for having a globally available version (in say /opt/) and your own current compilation efforts.
Yes you could use “$HOME/gimp” if you liked, but there’s little difference. Use what you want.