Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在受限服务器上安装Perl模块?_Perl_Cpan - Fatal编程技术网

如何在受限服务器上安装Perl模块?

如何在受限服务器上安装Perl模块?,perl,cpan,Perl,Cpan,我有一个可以通过ssh连接到的服务器,但仅此而已。否则它与外界完全隔绝。我正在尝试部署我编写的一些脚本,但它们有几个Perl依赖项(Params::Validate、XML::Simple等),我无法通过yum获得它们,因为我们的卫星服务器没有这些包,而且由于主机受到如此严格的限制,正常的CPAN安装也无法工作。移动模块源代码并进行编译非常繁琐。我已经这样做了一天多了,试图解决依赖性问题,而且没有结束的迹象。这有什么办法吗?非常感谢您提供的任何帮助。请参阅,它解释了可用于将CPAN模块投入生产的

我有一个可以通过ssh连接到的服务器,但仅此而已。否则它与外界完全隔绝。我正在尝试部署我编写的一些脚本,但它们有几个Perl依赖项(Params::Validate、XML::Simple等),我无法通过yum获得它们,因为我们的卫星服务器没有这些包,而且由于主机受到如此严格的限制,正常的CPAN安装也无法工作。移动模块源代码并进行编译非常繁琐。我已经这样做了一天多了,试图解决依赖性问题,而且没有结束的迹象。这有什么办法吗?非常感谢您提供的任何帮助。

请参阅,它解释了可用于将CPAN模块投入生产的多种方法。

如果可以,请尽可能靠近封闭系统设置一个并行系统(尽可能接近体系结构和perl版本),并使用将所有依赖项安装到单独的lib目录中。然后,您可以简单地将该目录切换到封闭系统,然后再次使用local::lib(并设置一些环境变量),您的代码将能够利用该目录。

如果您可以更改托管提供程序,这将是切换的好时机;-)(我个人认为)

假设情况并非如此,您可以尝试将并行系统设置为


另一方面,如果您使用的模块及其依赖项是纯Perl模块,那么您应该能够使用它将脚本及其依赖项和
scp
单个文件打包到主机上。

您尝试过cpan-minus吗?如果没有,这里是如何得到它

curl -L http://cpanmin.us | perl - App::cpanminus
您可以将其与local::lib一起使用:-D


COLORIC甚至对如何在受限系统上获得更新(和多个)版本的perl有很大的兴趣

我使用SSH隧道从远程服务器返回到本地代理服务器。这样,您就可以安装所需的任何模块。 只需将http_proxy变量设置为从本地计算机远程转发(如果有意义)的本地端口

i、 e

然后在cpan中的远程服务器上

o conf http_proxy=http://localhost:3128
o conf commit

这个链接并没有真正解决“我不能使用CPAN,因为我的服务器戴着贞操带”的问题。是的,那太好了。我想知道是否有办法以某种方式获取CPAN需要的文件,通过服务器将它们进行SCP,然后让CPAN完成它的工作。一般来说,CPAN需要一个相当完整的开发环境,设置它可能会更麻烦。假设您有一台与主机类似的机器,你可以在当地准备并转移他们。我正在尝试这个过程,到目前为止看起来还不错。我会更新结果的。你是说PAR::Packer?PAR只是internal.PS,这与防火墙后面的任何互联网需求相关,而不仅仅是Perl和CPAN。
o conf http_proxy=http://localhost:3128
o conf commit