Hello Mwm126,
There are a few different ways that should work to solve this problem.
Each one has different levels of effort / benefits so try to read
through all of them before trying one of them.
[1] Build mozilla from source using your current system (glibc 2.1).
Based on notes in the instructions, this should work, but I can't be
sure (without replicating your system). Go first to
http://www.mozilla.org/source.html
to get the source code and
http://www.mozilla.org/build/unix-details.html
which has the detailed build instructions. Page down to see a note on
glibc versions - it indicates a patch is needed for glibc 2.07, but
you are past that version [that's the best clue I can find to show
this should work]. There is also an extensive list of dependencies -
but has links to all of them.
The next two approaches will get you files that can be "put in the
right places", but there are two ways to do that latter step. I'm
labeling these 2a and 2b for that reason.
[2a] Install glibc 2.2 in an alternate root location and move the
non-overlapping files into the proper location on your system. This
may take several steps to accomplish since rpm will "chroot" to the
alternate root location before doing the install steps. For example,
it may be necessary to do a sequence like...
rpm --initdb --root otherroot
rpm -i --force --root otherroot [your glibc 2.2 RPM]
but you may also need other utilities in that "otherroot" directory.
For example, you may need otherroot/bin/sh to run scripts. This has
the advantage of allowing you to get the glibc 2.2 files out of the
RPM package (w/o rebuilding).
[2b] Build glibc 2.2 from source. Download something like...
http://ftp.redhat.com/pub/redhat/linux/7.2/en/os/i386/SRPMS/glibc-2.2.4-13.src.rpm
to get the source. Use
rpmbuild glibc-2.2.4-13.src.rpm
to build the RPM. You should now also have the files in
/usr/src/redhat/BUILD/glibc-2.2.4-13 (or a similar name)
both the source, and build products.
At this point, you need to move the files "into the right place".
Again, there may be more than one way to do this, so we have steps 3a
and 3b. In some ways, 3a may be "better" but might not work and 3b is
certainly "safer".
[3a] Move the products of glibc 2.2 into the standard locations one at
a time until Mozilla works. In this way, you can have a directory with
both
glibc 2.1
glibc 2.2
If Mozilla is built against files using the name "glibc 2.2" (or
similar), this will work. If it is built against files using the name
"glibc 2" (or something similar), it won't work - since I expect you
to keep glibc 2 pointing to the 2.1 versions.
[3b] Move the products of glibc 2.2 into a new location (perhaps a sub
directory of the standard location). Then, create a short script that
does something like (bash example follows):
export LD_LIBRARY_PATH=new-location-goes-here
and/or
export LD_PREFETCH=files-to-override
mozilla
which would override the standard library path (first export command)
or preload certain libraries (which prevent use of the obsolete ones)
before running mozilla. This is "safer" because it does not modify the
standard library files. It is a little more inconvenient, because you
need a helper script for each application that needs this "fix".
Some of the more readable explantions of how the library loading
process works is at
http://www.dwheeler.com/secure-programs/Secure-Programs-HOWTO/dlls.html
which describes how to help secure programs by describing how this
works. At the same site, also check out
http://www.dwheeler.com/program-library/Program-Library-HOWTO/shared-libraries.html
which describes shared libraries in more general terms and has some
script examples beyond the simple one above.
That's five possible approaches to solving this problem. The
combinations of 2/3 will directly answer your question "How can I run
glibc 2.2 on a RedHat 6.2 system", but the first should "meet the
need" of running a new version of Mozilla on a RedHat 6.2 system.
If you run into some rough spots or need a better explanation, please
use a clarification request. You may also get additional information
using search phrases such as
environment variable load dynamic library linux
build mozilla old glibc
and similar choices. I also found some of the build information on the
Mozilla site through the site map and following the various links
provided.
--Maniac |