Multiple versions of a shared library on CentOS

Multiple versions of a shared library on CentOS

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

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

相关内容