• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 646
  • Last Modified:

Installing the GIMP on Linux RHES

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 www.freedesktop.org, 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 ftp.gtk.org, 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 ftp://ftp.gtk.org/.
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
  • 4
  • 3
  • 3
1 Solution
> 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)
klukacAuthor Commented:
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 http://www.rpm.org/RPM-HOWTO/build-it.html 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 ftp://ftp.gtk.org/pub/gtk/v2.4/glib-2.4.8.tar.gz
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.
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.
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

> 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.
klukacAuthor Commented:
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.
> 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.
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?
klukacAuthor Commented:
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/libjavaplugin_oji.so: 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.  
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.
klukacAuthor Commented:
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.  
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

  • 4
  • 3
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now