Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

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
add comment

1 Answer

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
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 '11 at 15:32
add comment

Your Answer

 
discard

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.