Installing the GIMP on Linux RHES

Posted on 2005-04-14
Last Modified: 2013-11-13
This question has evolved from one I started in another forum, so I guess I'll just copy my comments here:
I'm trying to install the GIMP, but it's much tougher than I had imagined.  The prerequisites to install are:

1. recent version of pkg-config.
I didn't have pkg-config so I went to, downloaded and installed pkgconfig-0.17.1.tar.gz
2.  GTK+ version 2.4.4 or better.  
rpm -qa gtk* on my RHES shows this:

with all the installs required for the GIMP, almost none of which I could find in rpms, it's possible that these results are wrong...the last two entries look like they conflict, so let me know if this looks right

3.  GLib 2.4.5
An rpm query shows I have glibc-2.3.2-95.30
I couldn't find a more recent rpm, so I went to, downloaded
and installed glib-2.4.7.tar.gz
I saw no errors on install, but I'm now reading that installing source code over an rpm is a problem.  I get this rpm on rpm -qa glib*:
So my install of the tar file didn't work, but I'm not sure what it did do or what to check for.  

4.  Pango 1.4.0  
I have pango-1.2.5-5, and downloaded pango-1.8.1.tar.gz
when I went to install it, among other errors that I may have resolved (by installing freetype-2.1.9 and fontconfig-2.3.0, in that order), I now get:
configure: error:
*** Glib 2.5.7 or better is required. The latest version of
*** Glib is always available from
again proof that my glibc tarfile update was either not installed or incorrectly installed

The last 4 sets of requirements for installing GIMP are a moot point, since I don't want to crash my OS in the process.  Pls advise on how to proceed on this, thanks
Question by:klukac
    LVL 38

    Expert Comment

    > gtk2-engines-2.2.0-2
    > gtk2-2.2.4-15
    You need to upgrade gtk2-engines.

    > glib-1.2.10-11.1
    Please uninstall this version.
    rpm -e glib-1.2.10-11.1
    rpm -ta glib-2.4.7.tar.gz   <=== generate binary rpm
    And install the binary rpm

    > Glib 2.5.7 or better is required
    Either download and install glib-2.5.7
    Or download and install pango-1.4.0 (not pango-1.8.1)

    Author Comment

    Thanks very much.

    I started where I understood your instructions, at glib:
    rpm -e --nodeps glib-1.2.10-11.1 worked

    rpm -ta glib-2.4.8.tar.gz was unrecognized, so I did some research,
    downloaded and installed rpmbuild, tried
    rpmbuild -ta glib-2.4.8.tar.gz and got these errors:
    error: Name field must be present in package: (main package)
    error: Version field must be present in package: (main package)
    error: Release field must be present in package: (main package)
    error: Summary field must be present in package: (main package)
    error: Group field must be present in package: (main package)
    error: License field must be present in package: (main package)

    I then went to and wrote glib-2.4.8.spec to correct these errors, as follows:

    Name: glib
    Version: 2.4.8
    Release: 8
    Summary: A gnu library used by the GIMP Tool Kit (GTK)
    Group: System Environment/Libraries
    License: Unknown
    A library with lots of dependencies, one of them being the GIMP
    I got it from
    and copied the tarfile to /var/lib/pub, in case I need a source folder

    This leaves out everything the website recommends for spec files unless it pertains to my error output, except for the description.  I wasn't sure about the release #, so I copied the last digit from the version #, and couldn't find any license info either.  So my first question is, if I need a spec file, is this the right way to do it?

    My second question is, should I now try:
    rpm -ba glib-2.4.8.spec
    as the rpm website recommends, or build the rpm some other way? I'm concerned that I haven't provided enough data in the spec file for a correct build. Your solution looks easier to implement, but I only found the -ta option in the rpmbuild (not rpm) man pages, and I don't want to screw this up.

    My third question concerns how to upgrade the gtk2 engine.  If I rpm -e gtk2-engines-2.2.0-2, should I also remove gtk-engines-0.12-2.0?
    That leaves part of my gtk files in place, so installing gtk+-2.4.14 source from the ftp download site would probably mess things up.  Here again I'll probably need to build an rpm to solve the problem.
    If I build a gtk+-2.4.14.rpm and run rpm -Uvh gtk+-2.4.14.rpm, it shouldn't overwrite my gtk2-2.2.4-15 file, which looks more recent. Let me know if this is correct, and the easiest way to build an rpm, or whatever the next step should be, thanks.
    LVL 7

    Accepted Solution

    Unless you have a specific desire to run the latest/greatest version of Gimp (and many more headaches, such as those you're encountering), use the RedHat ES pre-built RPM for Gimp.

    gimp 1.2.3-20 is available for RedHat ES v3 and gimp 2.0.5 for ES v4.  You can probably download source-RPM's from one distro and rebuild it for the other, though you may need to upgrade other packages as well.

    To answer your questions:

    The "release" number is a counter for this specific RPM package, i.e. release 1 of the RPM, release 2, etc.  It is independent of the software version, it's an RPM package revision.  That way if you finally get the spec how you want it, you can look and see which release ...

    License should be GPL

    You have the header for the spec file, but you're missing the compile instructions.  This is where it starts getting messy.  rpmbuild -ta assumes that there's a spec file inside the tarball.  rpmbuild -ba assumes you're building from a spec file and tarball independently.  Either way, it looks to the spec file for the ./configure, make, etc. stuff.  The RedHat SRPM's contain spec files, if you decide you want to try rolling your own...  do "rpm -i package.srpm", and it will install the tarball/spec/etc. to the proper (necessary) locations in /usr/src/redhat/SPECS/ and /usr/src/redhat/SOURCES/

    Older versions of rpm contained the rpmbuild functionality in the rpm command.  Newer versions have separated it into the 'rpmbuild' command.  You should have the rpm-build package installed.

    gtk+ and gtk2 are different package names, and hence, different packages.  Unless their spec files specify that one obsoletes the other, both will live concurrently.

    I strongly disadvise going down the path of starting to build from source for system-wide, etc... it's almost always a messy road.  If possible, sign up for a demo account on RHN.  This may require an activation key, which is included with purchased copies of RedHat.  Last time I checked, they allowed you a demo entitlement (lets you download packages via up2date, and use the RHN website) if you complete a survey once every 30 or 60 days.  If you don't/can't get access to RHN, then use RedHat's FTP site, download the rpm packages, and use rpmbuild --rebuild to compile it into a binary RPM (output is in /usr/src/redhat/RPMS/i386/).  Or use a RedHat ES-alike distro such as CentOS, which is based on recompiled RedHat Source RPM's that has had the trademarks removed to comply with RedHat's licensing/redistribution terms.
    LVL 38

    Expert Comment

    > I only found the -ta option in the rpmbuild (not rpm) man pages, and I don't want to screw this up.
    Well, RedHat separated rpm to 2 parts: rpm and rpmbuild in later release (redhat 9 ?).
    So "rpmbuild -ta" is the right one for RHEL 3.0.

    > rpm -e --nodeps glib-1.2.10-11.1 worked
    To remove a rpm package, --nodeps is higly NOT recommended.

    Please reinstalled glib-1.2.10-11.1 back an then run
    rpm -e glib-1.2.10-11.1
    to check the dependencies first.
    Make sure all the dependencies are clear (either remove them or upgrade those dependencies).

    For upgrade the package with dependencies, you can download all the newer version of those dependencies and do
    rpm -Fvh *.rpm
    at the same time.

    This is a repeat and try-and -error process. It will take time to settle down those dependencies issue.

    The reason I recommend you use
    rpmbuild -ta *.tar.gz
    is this way you can keep track of all the packages by rpm.
    Compiling the source code will be installed under /usr/local by default and it doesn't update the RPM database.

    Author Comment

    I was getting ready to completely reload my system when I got your messages, thanks very much.  I was able to reinstall  glib-1.2.10-11.1 from redhat (also verified the dependencies but decided to install gimp 1.2.3-20.1 rather than remove remove the glib and build rpms from source). GIMP looks like it's working, thanks macker!
    There is one puzzling problem which I can't figure out - after I removed the glib with the nodeps option, logout from the gnome desktop skips the confirmation screen, even after reinstalling the library. As soon as I select Log Out from the gnome menu, my monitor blacks out and then reverts to the login screen.
    I went to /var/log/gdm and to my home directory .xsession-errors, but the log files aren't logging anything, just repeating a standard XF86 blurb with a reference to bugzilla. My .xsession shows nothing, and neither does /var/log/messages.  I don't know what script is invoked when selecting the Log Out option, or what options are invoked with the script, but it would be helpful to know that, since I could compare it with my other redhat system to see if there's a difference.  Also, I don't want this problem to create further ones down the road, so if you've seen this before let me know, thanks.
    LVL 38

    Expert Comment

    > after I removed the glib with the nodeps option
    Did you resolve the dependency issue before you remove glib with --nodeps?
    Otherwise, you might break other packages which depends on glib-1.2.10-11.1.
    In this case, you need to install glib-1.2.10-11.1 back again.
    LVL 7

    Expert Comment

    You might try ctrl-alt-f1 to switch to a text console, see if there's any messages from the X server being dumped that aren't going to .xsession-errors.  Does it fail to confirm logout just for that user, or for all users?

    Author Comment

    The failure to confirm from a windows logout applies to all users.  After switching to a text console I typed logout and saw no errors print to screen.

    I have fewer xsession errors on this system than on my other redhat, but then this one is supported :) Most of the xsession-error output pertains to my opera browser, which I'm using because it has some interesting features.  The only error on this machine is this one:
    opera: /usr/lib/opera/plugins/ undefined symbol: PR_EnterMonitor
    Curious that it mentions the monitor, but I once changed the font size in some Opera config files, so it may pertain to that.  
    LVL 7

    Expert Comment

    Hmm.   Very odd.  I'll see if I can reproduce this on a test box (probably tomorrow) and let you know.  Be curious to know what causes it, and how to fix it.

    Author Comment

    Thanks! I noticed that .qt folders were missing from my user accounts, so I got the qt rpm and ran an update.  A .qt preference folder showed up for the account I normally use, but there's no effect on the logout. I did get rid of the opera xsession error, by removing one of the files from the opera plugin directory.  

    Write Comment

    Please enter a first name

    Please enter a last name

    We will never share this with anyone.

    Featured Post

    How to run any project with ease

    Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
    - Combine task lists, docs, spreadsheets, and chat in one
    - View and edit from mobile/offline
    - Cut down on emails

    One of the most frequently asked questions on EE in the "Windows Installer" zone is how to eliminate self-triggered installation of some product.  The problem occurs when, suddenly, whenever a certain application is launched, or even when a folder i…
    The purpose of this article is to show how we can create Linux Mint virtual machine using Oracle Virtual Box. To install Linux Mint we have to download the ISO file from its website i.e. Once you open the link you will see …
    Learn several ways to interact with files and get file information from the bash shell. ls lists the contents of a directory: Using the -a flag displays hidden files: Using the -l flag formats the output in a long list: The file command gives us mor…
    Learn how to find files with the shell using the find and locate commands. Use locate to find a needle in a haystack.: With locate, check if the file still exists.: Use find to get the actual location of the file.:

    759 members asked questions and received personalized solutions in the past 7 days.

    Join the community of 500,000 technology professionals and ask your questions.

    Join & Ask a Question

    Need Help in Real-Time?

    Connect with top rated Experts

    10 Experts available now in Live!

    Get 1:1 Help Now