Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么可以阻止在不同平台上编译的linux发行版上运行二进制文件?_Linux_Deployment_Compilation_Distribution - Fatal编程技术网

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

什么可以阻止在不同平台上编译的linux发行版上运行二进制文件?,linux,deployment,compilation,distribution,Linux,Deployment,Compilation,Distribution,我们有两种不同的编译机器:red hat as4和as5。我们的架构师要求我们,开发人员,每次在这两个平台上编译我们的程序,然后在生产中复制到各自的机器上 什么可以阻止我们只在一台机器上编译我们的应用程序(比如red有as 4)并在所有目标平台上部署该二进制文件 你的观点是什么?你能指出你在这样做时遇到的具体问题吗?这样做可能会遇到哪些问题?防止?没有什么。在EL4上运行的应用程序也应该在EL5上运行,除非外部应用程序版本不同或库被淘汰。然而,Red Hat喜欢对gcc进行各种涉及安全性和代码优

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

什么可以阻止我们只在一台机器上编译我们的应用程序(比如red有as 4)并在所有目标平台上部署该二进制文件


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

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


此外,.

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


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

哇,编译东西然后开发人员将二进制文件复制到生产环境中?这是一个相当古怪的过程

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

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

此外,它将使您的QA团队**能够安装相同的二进制文件,并在非生产系统等上执行测试,这是他们在让软件靠近Ops团队***之前肯定要做的,Ops团队***将部署软件,他们知道相关流程(包括测试)已经执行

**你有一个,对吗

***你肯定有一个