我怎样才能安装一个CPAN模块到本地目录?
我正在使用托pipe的Linux机器,因此我没有权限写入/usr/lib
目录。
当我尝试通过以下方式安装CPAN模块时:
perl Makefile.PL make test make install
该模块被提取到一个blib/lib/
文件夹。 我一直use blib/lib/ModuleName
但它仍然是编译器说模块无法find。 我已经尝试将.pm文件复制到本地目录,并保持require ModuleName
但仍然给我一些错误。
我怎样才能安装一个模块到其他目录并使用它?
我有一个类似的问题,我甚至无法安装local :: lib
我创build了一个相对于.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文件
perl file.pl
其他答案已经在Stackoverflow:
- 如何在没有root权限的情况下在本地安装模块…
- 我怎样才能使用一个新的Perl模块没有安装权限?
来自perlfaq8:
我如何保留自己的模块/库目录?
当你build立模块时,告诉Perl在哪里安装模块。
对于基于Makefile.PL的发行版,在生成Makefiles时使用INSTALL_BASE选项:
perl Makefile.PL INSTALL_BASE=/mydir/perl
您可以在CPAN.pmconfiguration中设置此项,以便在使用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
你可以configurationCPAN.pm自动使用这个选项:
% cpan cpan> o conf mbuildpl_arg '--install_base /mydir/perl' cpan> o conf commit
local :: lib将帮助你。 它会说服“make install”(和“Build install”)安装到你可以写入的目录,它会告诉perl
如何获取这些模块。
一般来说,如果你想使用blib /目录中的模块,你想要说perl -Mblib ...
其中...
是你通常如何调用你的脚本。
我强烈推荐Perlbrew 。 它可以让你运行Perl的多个版本,安装软件包,如果你想要,Perl的内部破解,所有常规的用户权限。
对于基于Makefile.PL的发行版,在生成Makefiles时使用INSTALL_BASE选项:
perl Makefile.PL INSTALL_BASE=/mydir/perl