the*_*now 15 perl install module local download
我需要在没有连接到互联网的联网机器上安装基于Perl的软件.因此,我想下载Perl模块的特定版本和/或最新版本,我还想知道这些模块是否需要安装过程.
背景:
出于安全原因,机器未连接到互联网,也认为不必要.
我将下载的模块放在我称之为"安装服务器"的机器上,它包含我的基于Perl的软件,并且还包含Perl模块的本地副本.
我打电话给我想安装基于Perl的软件的机器,"目标机器",也没有连接到互联网.可以有几台目标机器,每台机器都可以运行我想要安装的软件.我登录目标计算机并运行安装脚本,该脚本将通过本地网络连接到安装机器,以获取基于Perl的软件和相关的Perl模块并安装它们.
所以我需要知道:
作为安装模块的一部分,我宁愿不要做make install等任何事情.我希望模块可以根据需要进行预编译或准备,以便安装它们尽可能简单.我想避免其他依赖项,如make及其配置,并且必须解析其输出以检查它是否成功.
请通过询问上述具体问题来帮助我,因为我无法改变未连接到互联网的"安装机器"和"目标机器"的概念 - 我必须提供在此安排下工作的解决方案.
tse*_*see 14
解决"我想从CPAN安装东西但没有网络"问题的常用方法是使用minicpan,David Dorward在他的回答中写道.但是,由于你更进一步,说你根本不想在客户端(目标)机器上进行任何真正的安装,并且如果可能的话你想要使用预编译的模块,我建议你查看PAR和特别是PAR :: Repository(服务器)和PAR :: Repository :: Client.
由于这种方法在你加速之前需要进行一些研究,我不会建议"我只需要Foo.pm"就像问题一样.一旦你谈论了少数几个依赖关系和至少一些客户端,那么它就变成了一个更合适的解决方案.
有关它如何工作的概述,请查看我在YAPC :: EU 2008上的演讲幻灯片.它还暗示了在客户端上提供PAR :: Repository :: Client模块的引导问题的解决方案(提示:PAR可以生成自包含的可执行文件).
bri*_*foy 11
您可以创建一个MiniCPAN,它只包含CPAN中的所有内容的最新版本.您可以使用CPAN :: Mini :: Inject将其他非公共模块插入其中.如果您需要更好地控制版本(即不选择最新版本),您可能需要创建DPAN.
使用这些解决方案中的任何一种,您都可以将CPAN客户端配置为从本地源提取.这可能是您提前知道的目录,也可能是您动态识别的内容,如CD或拇指驱动器.这只是正确设置配置的问题.
您可能能够为大多数工作创建操作系统包,但这仍然意味着您必须至少在第一次编译它们.
1) 如何/从哪里获得特定版本的 Perl 模块,例如 CGI.pm 等
如果您不想要最新版本,可以通过访问面包屑中的链接获取较早版本。
http://img.skitch.com/20091209-bu7kt3bj65374k7iijfnhrue2y.png
2) 如何安装这些 Perl 模块。是否只是将它们放在某个目录中的某个位置,例如库路径,并确保该目录路径在 @INC 库路径环境变量中(如果它还没有)?
这有时会奏效,但你真的应该经历这个perl Makefile.PL && make && make test && make install
过程。
这样做需要您手动追踪所有依赖项。您可能会更好地使用minicpan 之类的东西。
归档时间: |
|
查看次数: |
12616 次 |
最近记录: |