1

My problem is that I need to install a modern, recent version of cairo & pixman on CentOS 5.6 to support an application. CentOS 5's native version of cairo is very old (1.2.4) and incompatible with the application, yet I don't have the option of running it on a more recent distro.

I also don't have the option of just installing from source directly on the server in a local directory - I need to build an RPM for it to be deployed by an operations team.

As far as I can tell, my only option is to configure & package the newer versions of cairo & pixman to install to a non-system prefix (/opt, perhaps) and then set my application's environment library paths to include this location. However, I'm not an expert in Linux's shared library system.

Is there a way of packaging & installing a newer version of a shared library in such a way that it does not conflict with or overwrite the native version, yet applications can be configured to require the newer version?

1 Answer 1

1

You could install mock, grab a SRPM from Fedora, and rebuild with mock without modifying the SRPM on CentOS, and then install the RPM one of two ways:

  • $ rpm --prefix=/opt/folder package-version.rpm
  • $ yum --installroot=/opt/folder localinstall package-version.rpm
1
  • 1
    Thanks, this was helpful. Unfortunately the approach didn't work because cairo 1.10 refuses to build at all on Centos 5.6. I gave up and built a relocatable RPM from cario 1.8 sources (which is sufficient for my needs) which does build on CentOS 5.6.
    – grendel
    Sep 2, 2011 at 15:32

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .