如何离线安装Perl

时间:2012-04-20 08:04:40

标签: perl installation offline perlbrew

我有一台无法访问互联网的Linux服务器(防火墙阻止访问)。我想安装一个新的Perl。我有什么选择,最好的方法是什么?系统Perl(包含在OS安装中)必须保持不变。

我一直在使用perlbrew,我认为这是进行在线安装的最佳方式。但是perlbrew中涉及的所有步骤似乎都需要访问互联网:你从网上下载它,它从网上下载新的Perl版本等等。我还没有找到一个粘合剂如何让它脱机工作。

如果perlbrew不可能,我可以将Perl从源代码构建到服务器上的自定义位置。我认为这可能最终变得复杂,耗时且容易出错。每次我更新Perl时,我都会手动创建一个新版本。

还有其他安装方法,我目前还不知道。当然,我可以坚持使用Perl系统,但它是一个过时的版本,我已经在使用新的语法功能。或者我可以开始谈判以更改防火墙策略以允许perlbrew的互联网访问。

4 个答案:

答案 0 :(得分:5)

  

但是perlbrew中涉及的所有步骤似乎都需要访问互联网

如果配置不正确,则不会。

要离线安装perlbrew,请安装App-perlbrew dist。手动关注its dependencies是一件苦差事,所以改为prepare a MiniCPAN mirror-p包含Perl dists),将其转移到目标计算机并configure CPAN to use the local mirror。运行cpan App::perlbrew进行安装。

安装perlbrew后,运行其mirror command将CPAN镜像配置为$PERLBREWROOT/Config.pm。编辑此文件以将其更改为本地MiniCPAN镜像。将Perl dist tarball拖放到$PERLBREWROOT/dists/


请注意,编译Perl需要一个有效的C编译器工具链,以及libdb(BerkeleyDB)和gdbm的开发文件。 (阅读INSTALL文件一次,即使perlbrew的自动配置和Perl的configure.SH默认值隐藏了这些细节。)

编译器工具链可能更难以离线获取,除非之前已经使用过OS安装来编译其他C的东西。

答案 1 :(得分:2)

perlbrew没什么特别之处。如果您不打算使用它来下载Perl源代码,那么它并没有为您节省太多。获得Perl源代码后,您只需配置并安装它:

% ./Configure -des -Dprefix=/path/to/installation
% make install

完成后,Perl的所有内容都在该安装路径下。

我不喜欢perlbrew,因为它隐藏了人们这项任务非常简单,所以他们觉得他们不能自己做。

答案 2 :(得分:1)

您是否考虑过从不同方向攻击它?如果每次都要请求互联网访问,那么保持最新状态将是一件痛苦的事。同样,如果您错过了/错误配置了CPAN镜像中的任何软件包,那么在您实际尝试使用它们时很难纠正。

也许只需构建一个带有简化的linux + perl +模块的小型虚拟机。在最后保持最新状态,只需将全部内容放在USB记忆棒上即可。您将拥有一个易于安装的已知工作安装。

答案 3 :(得分:0)

我个人所做的是在我离线时(而不是休假)使用git checkout。一旦你有了整个git工作目录,通过检查标签来构建任何发布的版本是微不足道的:

git checkout v5.17.4
git clean -f # cleanup previously compiled .o files etc
sh ./Configure ...

根据您如何将文件传输到主机,这可能很方便,因为您还可以在那里设置私有git repo,以便其他计算机可以git push新提交到那里。