【发布时间】:2011-06-22 04:14:49
【问题描述】:
回答:基本上,如果你编译你自己的 perl 并且你按照你的操作系统所做的那样做的话,它可以在没有重大副作用的情况下完成。虽然这不是推荐的做法,但我已经能够像这样运行一个多月了。如果您知道自己在做什么,我会得出结论,这样做是相对安全的。
我们今天在工作中得出的结论是我们需要将 perl 升级到 5.10.0 CentOS 5.x 自带 perl 5.8.8。
我们确定使用#!/usr/bin/perl 维护脚本所涉及的努力是徒劳的。
根据 CPAN 和其他地方的一些安装内容,替换操作系统的 perl 版本不是一个“好”的主意。我已经更新了/usr/bin/ 中的链接。所以我的问题是,替换 /usr/bin/perl 到底有多糟糕?
我还没有注意到我们的系统有任何不利影响,但我准备在出现问题时立即更正链接(回到 5.8.8)。
我担心 CentOS 标准发行版中可能有一些模块未包含在 CPAN 的源 5.10.0 中。我仍在试图弄清楚这些模块可能是什么。
提前致谢。
【问题讨论】:
-
为什么不把 shebang 行写成
#!/usr/local/bin/perl? -
@Rafe,你可能有几十个甚至几百个脚本已经写了
#!/usr/bin/perl。更新所有这些很麻烦。 -
如果你更新它,最好使用
#!/usr/bin/env perl,这将使用$PATH中的第一个perl,而不是硬编码一个特定的文件系统位置,这样你就可以永远不必再经历更新数百个脚本的痛苦(或者通过将它们安装在没有/usr/local/bin/perl...的服务器上来破坏它们)。 -
这就是为什么所有 perl 框架都需要以 "#!/usr/bin/env perl' 开头,并且所有不以这种方式开头的 perl sn-ps 都需要被否决。跨度>
-
@cjm `find /dir/to/scripts *.pl | perl -p -i -e 's!/usr/bin/perl!/usr/bin/local/perl&g'。完成