什么可以阻止在不同平台上编译的linux发行版上运行二进制文件?

时间:2010-04-19 17:57:59

标签: linux deployment compilation distribution

我们有2个不同的编译机器:red hat as4和as5。我们的架构师要求我们开发人员每次在这两个平台上编译我们的程序,然后再将它们复制到生产中的各自机器上。

什么可能阻止我们仅在一台机器上编译我们的应用程序(例如,红色代表4)并在所有目标平台上部署该二进制文件?

您的观点是什么,您是否可以查明您遇到的具体问题?这样做可能会遇到什么问题?

3 个答案:

答案 0 :(得分:3)

防止?没有。在EL4上运行的应用程序也应该在EL5上运行,除非外部应用程序是不同的版本或库被淘汰。但是,Red Hat喜欢对涉及安全性和代码优化的gcc进行各种调整,如果你只是复制EL4编译的二进制文件,你就会错过EL5的任何改进。

此外,everyone needs a break

答案 1 :(得分:3)

您可以通过在一个系统上构建并在另一个系统上运行来遇到共享库不兼容问题。它不太可能在连续版本的Red Hat之间进行,但它是可能的。

您可能遇到的另一个问题是,如果一个系统是32位而另一个系统是64位。在这种情况下,在64位计算机上编译的应用程序将无法在32位计算机上运行。

答案 2 :(得分:-1)

哇,编译东西然后开发人员将二进制文件复制到生产中?那是你到达那里的一个非常糟糕的过程。

是的,您当然可以在RHEL 4和5上运行相同的二进制文件,前提是它们是相同的体系结构并且您已安装了依赖项。

我强烈建议您将二进制文件构建到RPM中,然后可以为其创建依赖项,这将确保只有在依赖项满足时才能安装它。

此外,它将使您的QA团队**能够安装相同的二进制文件,并在非生产系统上进行测试,例如,他们肯定希望在将软件放在Ops团队附近的任何地方之前进行测试* **然后谁将部署它们,知道已经执行了相关的过程,包括测试。

**你有其中一个,对吧

***肯定你有其中一个!