我正在使用托管的Linux机器,所以我没有权限写入/usr/lib
目录.
当我尝试通过以下方式安装CPAN模块时:
perl Makefile.PL make test make install
该模块被解压缩到一个blib/lib/
文件夹.我保留了use
blib/lib/ModuleName
但是编译器仍然无法找到模块.我已经尝试将.pm文件复制到本地目录并保留
require ModuleName
但仍然给我一些错误.
如何将模块安装到其他目录并使用它?
Stackoverflow上已有的其他答案:
如何在没有root访问的情况下在本地安装模块...
如何在没有安装权限的情况下使用新的Perl模块?
来自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 ...
这里...
是你如何通常会调用你的脚本.