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

问题描述:

我们有2种不同的编辑机器:red hat as4和as5。我们的架构师要求我们,开发者每次在这两个平台上编译我们的程序,然后将它们复制到各自的生产机器上。什么可以防止在不同的平台上编译的Linux发行版上运行二进制文件?

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

你的观点是什么?你能指出你遇到的具体问题吗?我这样做可能会遇到什么问题?

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

您可能遇到的另一个问题是,如果一个系统是32位而其他64位。在这种情况下,在64位机器上编译的应用程序不会在32位机器上运行。

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

此外,everyone needs a break

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

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

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

此外,它将使您的QA团队**能够安装相同的二进制文件,并在非生产系统等上执行测试,在他们将软件放置在Ops团队附近的任何地方之前,他们肯定会这样做***知道相关流程(包括测试)已经完成,然后他们将部署它们。

**你有其中之一,正确的

***当然你有其中之一!