我的问题是,是否有可能从源代码中运行经过编译的perl 5.28.0(在CentOS 7上使用GCC 4.8.5)以便能够在GCC版本较低的RHEL 5.5(Tikanga)上使用其他的libs,glibc等也是如此。
我们的生产环境正在运行非常旧的perl版本(5.8.8),并且出于安全方面的考虑,它处于严重的锁定状态,即我们的大多数服务器都缺少make,gcc和相关工具,并且没有root用户可以访问任何人
我想知道是否可以使用GCC 4.8.5从源代码(即最新的5.28.0)编译perl,并尝试在我们的生产服务器(使用GCC 4.8.2)上使用此编译版本。
这将避免我因官僚主义缓慢而头疼,而且我可以使用新工具进行我的项目。
尚未找到有关此主题的任何讨论或提示。谁能阐明一些想法?
谢谢。
2天后更新:
似乎在RHEL7上编译的Perl 5.28在RHEL5.5上不起作用。您将必须在RHEL5.5上对其进行编译,并使其可重新定位以便在任何服务器上进一步使用。
所以我下载了RHEL 5.5和CentOS5.5 ISO并遇到了可引导的iso相关问题。
无法为rhel 5.5和centos5.5制作合适的可引导磁盘。
rhel5.5 iso是单个dvd映像,在命令提示符下执行file rhel5.5.iso
时,它显示为可引导。尝试了unebootin,红褐色的iso创建者,dd命令并创建了ISO,并一一尝试了所有的ISO,但无法显示启动菜单。在制作启动盘时尝试使用FAT,NTFS FS。现在卡在这里。
Centos5.5 iso共有8个600mb文件。必须用它创建一个单一的iso映像,并找到一些在线过程来做它并制作了一个ISO文件。得到了启动菜单,看起来像它的工作。但是后来它挂断了进行某种形式的源媒体检查测试,因此无法继续进行。找到了一个与修复相关的文章,您将md5sum标记到了iso上,并且应该可以,但是没有。
现在在grokbase上发现了一些东西,它提到了一种新技术,可以使我从上面第3点提到的失败的角度出发。
答案 0 :(得分:1)
编辑:static compilation绕过了您谨慎对待的问题。您需要确定结果是否适合您的预期目的。
否则,您将按照计划进行传统编译。如果libc太大不同,它将无法正常工作。您当然可以继续尝试,然后确定。
真正的解决方案是设置生产环境的副本(可以在虚拟机中)并在那里编译内容。
答案 1 :(得分:0)
您可以尝试使用ActiveState.com的PerlApp + ActivePerl(可能是Perl开发工具包PDK的一部分)。我已经使用了很多年了。它编译perl源代码,并将模块(也包括已编译的模块)包括在Windows上的.exe程序文件和Linux上的二进制可执行文件中。有付费版本和免费/演示版本。如果我没记错的话,付费版本允许交叉编译和更多版本的Perl。
在开发与生产计算机上使用不同版本的glibc / libc可能会遇到麻烦,因此请尝试在CentOS 5.5 Linux(免费)上使用PerlApp进行编译。 CentOS5.5与RHEL5.5类似,足以满足大多数项目的需要。祝你好运。
答案 2 :(得分:-1)
尝试perlbrew(是一种无管理员的Perl安装管理工具)