Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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?

share|improve this question

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
share|improve this answer
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 '11 at 15:32

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.