在Centos 7上安装一些el6软件包有什么后果?

我负责pipe理我的合同工作中的Centos 7盒子。 我真的更像一个开发人员,而不是一个Linuxpipe理员,所以请忍受我,也许试图解释这个给我像我5。

我们正在开发的一个应用程序需要一个名为pdftk的应用程序。 不幸的是,它的依赖是libgcj。 我读到,libgcj被认为是弃用的,不再用新的Centos 7“发布”。

所以,我这样做了:

wget http://mirror.centos.org/centos/6/os/x86_64/Packages/libgcj-4.4.7-11.el6.x86_64.rpm wget https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/pdftk-2.02-1.el6.x86_64.rpm rpm -ivh --nodeps libgcj-4.4.7-11.el6.x86_64.rpm yum install pdftk-2.02-1.el6.x86_64.rpm 

现在yay pdftk工作。 但是,我一直在阅读,并确定这是一个坏主意。 没有理由为什么这是一个愚蠢的事情。 那么谁能说出为什么我不应该这样做呢? 或者,也许给我一些build议或采取预防措施,我现在应该采取? 我害怕重启服务器或安装更新,直到我知道这不会打破我们的箱子。

先谢谢你。

这并不意味着是一个完整的答案,但是至今为止,没有人提供过为什么这不是程序的原因,可能是一个坏主意:

某些版本的软件包依赖于外部库提供的function。 这些图书馆随着时间而变化,在这个过程中可能会改变他们的行为,甚至完全消除function。 从EL6移动到EL7是相当大的一步,因此可能会有一个新版本的软件包/库XYZ,它通常可以与您安装的软件包版本一起工作,但不是完全可用。

在你的情况下,pdftk通常可以像预期的那样工作,但是在一些特殊的情况下,可能会有一个函数调用,这将不能与其他已安装的软件包一起工作,从而可能会意外崩溃或行为exception。 那么评估这种不正当行为的来源将变得非常棘手。

可能有很多其他的原因不这样做,但这是我首先想到的,对于生产系统而言,稳定性是关键。 因此,我不会混淆不是针对特定操作系统版本而devise的版本。 至less不是没有彻底的testing。

主要问题是:

它不被支持

您可以使用一些命令libgcj gcc-javalibgcjlibgcj-devel引入您的系统。 但是,这个软件在CentOS 7上是不支持的。当你使用这种不支持的configuration时,事情更可能中断。 这导致我们…

Rackspace不会支持它。 Ubuntu使用CentOS的好处当然是更好的企业支持。 当你使用不受支持的configuration时,你会失去所有这些。 所以,如果你告诉Rackspace“去XYZ软件,包括pdftk”,他们会告诉你“不”。


如果其他人需要pdftk在受支持的configuration中在CentOS 7上工作,则存在一个分叉来重写Java部分,并将其接受到CentOS 7中。我的公司需要这个,我没有时间去做,所以我们开始赏金这项工作。 我邀请你在https://github.com/fulldecent/pdftk查看这个赏金和分支