在工作中,我们有一个供应商提供的库,以 C++ 头文件和文件的形式交付给我们.so
。我们的生产环境长期以来一直是 CentOS 6,但我们可能很快就会升级到 CentOS 7。已经为该库和使用该库的 C++ 程序创建了 RPM 文件。
我还应该提到,供应商库的依赖项是动态链接的。
通过 安装到 CentOS 6 的新实例上工作正常yum
,但在 CentOS 7 上情况相当糟糕。yum
抱怨找不到许多软件包,例如 python2.6(即libpython2.6.so
)。我可以找到所有这些缺失依赖项的 RPM,但在许多情况下无论如何都无法安装它们,因为 yum 说在降级的情况下“无事可做”。
我想我的问题有两个方面。 是否可能像 Python 的情况一样,通过 安装另一个版本的 Python yum
,而不使其成为系统版本,以便链接器可以为这个旧的供应商库找到它?
手动创建所有.so
文件似乎是一场必败之战,因为很多缺少依赖项,例如libpng12
,当 CentOS 7 有 时libpng15
。
在这种情况下,经验丰富的系统管理员会怎么做?或者这只是一个在 CentOS 7 上运行这个旧程序的案例?