较新的RHEL / CentOS 5.x GLIBC

我遇到了一组开发人员试图将一个二进制应用程序部署到一系列RHEL 5.5和CentOS 5.5服务器的情况。 不幸的是,该应用程序是在另一个平台(Gentoo)上开发的,执行导致GLIBC依赖性错误:

libc.so.6: version `GLIBC_2.7' not found (required by /path/to/application/bin/program.app) 

RHEL / CentOS 5.x在GLIBC 2.5上进行了标准化(使用补丁和补丁,但仍然保持在2.5)

我一直在通过复制单个库并在包装脚本中使用LD_PRELOAD来解决其他库需求。 我的立场是,RHEL意味着在整个支持生命周期中保持二进制兼容性,而且我没有任何好的select来升级系统上这样一个关键的库。 过去,环境主要是Gentoo,所以开发人员习惯于能够零碎地升级软件包而不存在真正的依赖性问题。

我认为正确的解决scheme是重新编译目标系统。 由于应用程序分发的方法,这可能不是一个选项。 还有其他解决scheme或build议吗?

  • 静态链接(-static)
  • 使用rpath。 rpath覆盖默认searchpath(-rpath,/ srv / myapp / lib)