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

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

我在合同工作中负责管理 Centos 7 机器。实际上我更像是一名开发人员,而不是 Linux 管理员,所以请耐心听我说完,也许可以试着像向 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

太棒了,pdftk 现在可以正常工作了。但是,我读了很多资料,发现这是一个坏主意。没有给出为什么这是愚蠢行为的理由。所以有人能解释一下为什么我不应该这样做吗?或者给我一些建议或我现在应该采取的预防措施?我害怕重启服务器或安装更新,直到我知道这不会破坏我们的设备。

先感谢您。

答案1

这不是一个完整的答案,但到目前为止还没有人给出理由来说明为什么这个程序不是一个坏主意:

某些版本的软件包依赖于外部库提供的功能。这些库会随着时间推移而变化,在此过程中可能会改变其行为甚至完全删除功能。从 EL6 迁移到 EL7 是相当大的一步,因此可能会有软件包/库 XYZ 的新版本,它通常可以与您安装的软件包版本兼容,但不能完全兼容。

在您的案例中,pdftk 可能通常按预期工作,但在某些特殊情况下,可能存在一个函数调用,它无法与其余已安装的软件包一起使用,因此可能会崩溃或出现意外行为。评估此错误行为的根源将变得非常棘手。

可能还有很多其他理由不这样做,但这是我首先想到的,对于生产系统来说,稳定性是关键。因此,我不会混淆不是为特定操作系统版本设计的版本。至少在没有经过彻底测试的情况下不会。

答案2

主要问题是:

不支持

您可以使用一些命令行将gcc-javalibgcjlibgcj-devel引入您的系统。但是,CentOS 7 不支持此软件。当您使用不受支持的配置时,事情更容易出错。这引出了我们……

Rackspace 不支持它。当然,使用 CentOS 而不是 Ubuntu 的一个好处是它有更好的企业支持。当您使用不受支持的配置时,您将失去所有这些。因此,如果您告诉 Rackspace“帮我做一个装有 XYZ 软件(包括 pdftk)的服务器”,他们会告诉您“不行”。


如果其他人需要 pdftk 在受支持的配置下在 CentOS 7 上运行,可以进行分叉以重写 Java 部分并将其纳入 CentOS 7。我的公司需要这个,但我没有时间去做,所以我们为这项工作启动了悬赏。我邀请您查看此悬赏并分叉https://github.com/fulldecent/pdftk

相关内容