在CentOS上用/ usr / local / bin / perl替换/ usr / bin / perl有多“不好”?

| 回答:基本上,如果您编译自己的perl并以与操作系统相同的方式进行操作,则不会产生重大副作用。尽管不建议这样做,但我已经可以这样运行一个多月了。我认为如果您知道自己在做什么,那是相对安全的。 我们今天得出的结论是,我们需要将perl升级到5.10.0 CentOS 5.x附带了perl 5.8.8。 我们确定用ѭ0来维护脚本涉及的工作是徒劳的。 根据CPAN和其他地方的一些安装资料,替换OS版本的perl不是一个“好主意”。我已经在
/usr/bin/
中更新了链接。所以我的问题是,取代
/usr/bin/perl
到底有多糟? 我尚未注意到我们系统中的任何不利影响,但是我准备在出现问题时立即更正链接(回到5.8.8)。 我担心CentOS标准发行版中可能有一些模块未包含在CPAN的源代码5.10.0中。我仍在尝试弄清楚这些模块可能是什么。 提前致谢。     
已邀请:
        好吧,如果您确实决定更改Perl的安装位置,那完全取决于您和您希望的位置。但是,请记住,任何带有指向#!/ usr / bin / perl的shebang行的脚本都可能会中断。 我的建议是,在安装它之后,在/ usr / bin / perl中创建一个软链接,指向您所安装的新版本Perl的可执行文件。只是一个想法。它的工作是避免破坏任何东西。 如@Mu所指出的那样,创建上面的链接肯定会有助于避免“破坏服务器”的可能性。 问候, 杰夫     
        以我的经验,最佳实践是从源代码自己编译整个堆栈(Perl,Apache,ImageMagick等)。这样,您可以完全控制使用所有版本的版本以及何时升级所有版本。 用您编写的一个替换
/usr/bin/perl
是胡扯。操作系统可能在维护中使用的是
/usr/bin/perl
脚本或
init
脚本,因此对其进行更改可能会阻塞服务器或导致奇怪的故障。 因此,请忽略系统Perl,构建自己的系统,并修复脚本以引用您的Perl版本。     
        通常,较新版本的Perl5会尝试与旧版本保持向后兼容性。但这不是100%保证的。例如,一个脚本依赖于Perl 5.8.8中的未定义行为(应该不会发生,但有时会发生),该行为在5.10.0下可能会有所不同。但是,假设没有其他因素,通常假设为Perl 5.8.8编写的脚本将在5.10.0下运行通常是相当安全的。 但是通常还有其他因素(模块,XS代码的字节兼容性等等)。可能的陷阱列表很多。这并不意味着他们中的任何一个都会在这种情况下困扰您,但是存在潜在的问题。 如果您已经在/ usr / local / bin中获得了升级的Perl,请继续使用它。但是不要拆卸或升级旧的/ usr / bin /版本。它只是硬盘的一小部分(按今天的标准来看很小)。 顺便说一下,很多人都对perlbrew(CPAN上的App :: Perlbrew)作为帮助维护Perl多个版本的工具给予了高度评价。     

要回复问题请先登录注册