我的生产env运行CentOS 5.2和5.5版本。 我必须开发一个使用C / C ++的新工具,并将其部署在这个生产环境中。
我打算在桌面上使用Fedora 14和GCC 4.4来使用Eclipse IDE进行开发。 然后,我想将可执行文件部署到CentOS 5.2或5.5。生产环境也会有GCC 4.4。
由于Fedora和CentOS都是基于RHEL的,所以我认为这是可能的。
我可以这样做吗?
还是我需要在我的开发桌面上安装CentOS 5.2 / 5.5?
谢谢阿米特
如果你build立了静态的二进制文件,那么你应该可以在任何东西上构build,并且可以在任何地方运行。 有关如何生成静态的确切细节,最好在stackoverflow上解决。
build在一个不同的环境似乎有点愚蠢。 为什么不build立自己的虚拟机,或者与您的开发机器上的生产相同的chroot。 那样你就不太可能会出现奇怪/意外的不兼容。
如果您将dynamic链接到不在centos上的库,那么您还需要提供这些库
如果您提供了源代码并在centos框中编译,您将需要提供您在代码中使用的任何头文件或源文件。 如果你不使用任何特殊的东西(例如你只是使用libc),则不需要提供额外的库。
还有一点你需要小心的是CPU架构 – 如果你有64位的代码,它将不能在32上工作。
你可以做到这一点,但你不应该这样做。
最好是在干净的环境中构build最终的产品包,这是您的开发桌面当然不会有的。 由于CentOS是免费的,所以没有理由不build立一个特殊的构build环境,每次从kickstart或从一个已知好的快照中恢复。 这可能是一个小小的安装工作,但是在那之后,你会知道所得到的软件包将会毫无意外地依赖蠕变。
而且,你的生产环境中是否需要gcc? 在它本身存在没有什么不妥 (攻击者会复制它们自己的二进制文件),但是生产通常应该尽可能地集中。