installing fedora packages on RHEL -- how bad the craziness?

Ryan Lynch ryan.b.lynch at gmail.com
Fri Dec 4 15:34:13 UTC 2009


On Fri, Dec 4, 2009 at 08:31, Martin Airs <camberwell at gmail.com> wrote:
> Could you not install from sources
>
> get poppler.?.?.?.src.rpm
>
> then rpmbuild --rebuild poppler.?.?.?.src.rpm
>
> that should build you a centos rpm


At work, some of my colleagues prefer to compile and install from
source into '/usr/local' for non-distro software. I happen to think
that way of doing things is just a whole lot of extra work for
nothing. Usually, I prefer to use the route that Martin describes:
Rebuild the Fedora SRPM on your CentOS/RH box, and install the
binaries that it outputs.

Usually, libraries will be backwards-compatible, so you don't need to
worry about breaking any existing deps. (This is why most packages
will just express specifically-versioned deps as "Library X, at any
version greater than Y.Z"--future revisions of the library past Y.Z
probably aren't going to remove any functionality or break any
existing expectations.)

But often enough, newer versions of some package will break existing
behavior. Python is a good example of this: Fedora broke older Zope
applications that depended on older Python versions when it moved to
Python 2.6, which raised a small amount of Cain with the users of the
broken Zope apps. (Fedora's official philosophy is that they don't
want to stall their progress, or make extra work for the distro
maintainers, just because some random app developer is too busy to
update his code to use the latest Zope/Python. I happen to think it's
a reasonable stance.)

If you find yourself in the latter situation, you do have the option
of convert the original dependency into a 'compat-' style package,
which moves the older version's installed files into a different path
on the filesystem, so that you can keep both the older and newer
versions installed at the same time. In the case of the Python
2.4->2.6 transition, one of the 3rd-party YUM repos (I think ATRPMs,
but it might be RPMFusion) built a package called 'compat-python24'
that moved the Python installation from '/usr/lib/python' to
'/usr/lib/python24' (and similarly for '/usr/bin', etc.). So 2.6 is
your default Python if you call '/usr/bin/python', but 2.4 is
available if you call '/usr/bin/python24', instead.

But it can be a heck of a lot of work to convert everything, and then
you become responsible for maintaining the 'compat-' package, too. I
think that the extra work is the reason why Fedora doesn't usually
just do this by default. There are exceptions, but only with good
reasons attached.

-Ryan




More information about the fedora-list mailing list