繁体   English   中英

如何将CPAN模块安装到本地目录中?

[英]How can I install a CPAN module into a local directory?

我正在使用托管的Linux机器,因此我没有权限写入/usr/lib目录。

当我尝试通过以下方式安装CPAN模块时:

perl Makefile.PL
make test
make install

该模块被解压缩到blib/lib/文件夹。 我一直use blib/lib/ModuleName但编译器仍然无法找到模块。 我已经尝试将.pm文件复制到本地目录并保持require ModuleName但它仍然给我一些错误。

如何将模块安装到其他目​​录并使用它?

Stackoverflow上已有的其他答案:

来自perlfaq8:


如何保留自己的模块/库目录?

构建模块时,请告诉Perl在哪里安装模块。

对于基于Makefile.PL的发行版,在生成Makefile时使用INSTALL_BASE选项:

 perl Makefile.PL INSTALL_BASE=/mydir/perl 

您可以在CPAN.pm配置中进行设置,以便在使用CPAN.pm shell时模块自动安装在您的私有库目录中:

 % cpan cpan> o conf makepl_arg INSTALL_BASE=/mydir/perl cpan> o conf commit 

对于基于Build.PL的发行版,请使用--install_base选项:

 perl Build.PL --install_base /mydir/perl 

您可以配置CPAN.pm以自动使用此选项:

 % cpan cpan> o conf mbuildpl_arg '--install_base /mydir/perl' cpan> o conf commit 

我遇到了类似的问题,我甚至无法安装local :: lib

我创建了一个安装程序,它将模块安装在相对于.pl文件的某个位置

安装如下:

perl Makefile.PL PREFIX=./modulos
make
make install

然后,在需要该模块的.pl文件中,该文件位于./

use lib qw(./modulos/share/perl/5.8.8/); # You may need to change this path
use module::name;

其余文件(makefile.pl,module.pm等)不需要更改。

您可以使用.pl文件调用.pl文件

perl file.pl

local :: lib会帮助你。 它会说服“make install”(和“Build install”)安装到你可以写入的目录,它会告诉perl如何获取这些模块。

一般来说,如果你想使用一个blib /目录中的模块,你想说perl -Mblib ... where ...就是你通常调用脚本的方式。

我强烈推荐Perlbrew 它允许您运行多个版本的Perl,安装包,破解Perl内部,如果您愿意,所有常规用户权限。

对于基于Makefile.PL的发行版,在生成Makefile时使用INSTALL_BASE选项:

perl Makefile.PL INSTALL_BASE=/mydir/perl

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM