我怎样才能安装一个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