在指定目录中安装Perl模块

在指定目录中安装Perl模块,perl,installation,perl-module,Perl,Installation,Perl Module,我正试图在我的服务器上安装一个Perl模块(来自Digital Ocean的ubuntu droplet)。我希望这个模块安装在我已经创建的/home/vinod/my_test\u文件夹/perl_practice/scripts/lib/目录中 这是特定于一个模块的。我不想在默认路径下安装它,比如/usr/bin/perl。我希望它安装在上面提到的路径 下面是我为安装Email::Replyperl模块而执行的命令列表 Downloaded module from metacpan tar

我正试图在我的服务器上安装一个Perl模块(来自Digital Ocean的ubuntu droplet)。我希望这个模块安装在我已经创建的
/home/vinod/my_test\u文件夹/perl_practice/scripts/lib/
目录中

这是特定于一个模块的。我不想在默认路径下安装它,比如
/usr/bin/perl
。我希望它安装在上面提到的路径

下面是我为安装
Email::Reply
perl模块而执行的命令列表

Downloaded module from metacpan
tar xvfz Email-Reply-1.204.tar.gz
cd Email-Reply-1.204/
perl Makefile.PL PREFIX=/home/vinod/my_test_folder/perl_practice/scripts/lib/
su
<password_for_root>
make
make test 
make install
我可以看到模块安装在
/home/vinod/my_test_文件夹/perl_practice/scripts/lib/share/perl/5.26.1/Email/Reply.pm
路径中,这不是我在
前缀=
中提到的正确路径

奇怪的是,我在这里写了一个小脚本,通过在shebang行中提到模块路径来使用
Email::Reply
模块

代码如下:

#!/usr/bin/perl -I/home/vinod/my_test_folder/perl_practice/scripts/lib/share/perl/5.26.1/

use EMail::Reply;

print "Hi\n";
它仍然会抛出一个错误

Can't locate EMail/Reply.pm in @INC (you may need to install the EMail::Reply module) (@INC contains: /home/vinod/my_test_folder/perl_practice/scripts/lib/share/perl/5.26.1/ /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.26.1 /usr/local/share/perl/5.26.1 /usr/lib/x86_64-linux-gnu/perl5/5.26 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.26 /usr/share/perl/5.26 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base) at test.pl line 3.
BEGIN failed--compilation aborted at test.pl line 3.
我希望此模块安装在
/home/vinod/my\u test\u文件夹/perl\u practice/scripts/lib/
如何做到这一点。请帮助我。

这是可以使用的,默认情况下支持:

$ cpanm -l /home/vinod/my_test_folder/perl_practice/scripts Email::Reply
这将把它安装到
/home/vinod/my\u test\u文件夹/perl\u practice/scripts/lib/perl5

或者,您可以为本例重新创建选项local::lib集,本例中最重要的选项是

重要的是,注意所有这些都是区分大小写的,您必须
使用Email::Reply

这是可以使用的,默认情况下支持:

$ cpanm -l /home/vinod/my_test_folder/perl_practice/scripts Email::Reply
这将把它安装到
/home/vinod/my\u test\u文件夹/perl\u practice/scripts/lib/perl5

或者,您可以为本例重新创建选项local::lib集,本例中最重要的选项是


重要的是,注意所有这些都是区分大小写的,您必须
使用Email::Reply

谢谢@Grinnz。这是非常有用的答案。但它未能完全安装模块。最后我收到了这条信息-
!安装依赖项失败:未安装模块“Email::MIME”!退出安装以获取电子邮件-Reply-1.204。安装了10个发行版
dependencies是自动安装还是手动安装?@vinodk89,这是另一个问题,请提供电子邮件::MIME安装出错的详细信息。@daxim谢谢。在这里安装时,我注意到的另一件事是,每当我执行@grinz给出的上述命令时,该模块默认安装在
/home/vinod/my\u test\u文件夹/perl\u practice/scripts/lib/perl5
中,即使我在命令中给出路径为
/home/vinod/my\u test\u文件夹/perl\u practice/scripts>。为什么会这样?@vinodk89,这正是我们想要的。如果您需要一个详细的解释,@vinodk89如果您正在安装需要依赖关系的东西,我建议使用cpanm命令来处理所有事情,不要试图手动设置所有的local::lib变量,因为您需要的不仅仅是PERL_MM_OPT。谢谢@Grinnz。这是非常有用的答案。但它未能完全安装模块。最后我收到了这条信息-
!安装依赖项失败:未安装模块“Email::MIME”!退出安装以获取电子邮件-Reply-1.204。安装了10个发行版
dependencies是自动安装还是手动安装?@vinodk89,这是另一个问题,请提供电子邮件::MIME安装出错的详细信息。@daxim谢谢。在这里安装时,我注意到的另一件事是,每当我执行@grinz给出的上述命令时,该模块默认安装在
/home/vinod/my\u test\u文件夹/perl\u practice/scripts/lib/perl5
中,即使我在命令中给出路径为
/home/vinod/my\u test\u文件夹/perl\u practice/scripts>。为什么会这样?@vinodk89,这正是我们想要的。如果您需要详细的解释,@vinodk89如果您正在安装需要依赖关系的东西,我建议使用cpanm命令来处理所有事情,而不要试图手动设置所有的local::lib变量,因为您需要的不仅仅是PERL_MM_OPT。
$ env PERL_MM_OPT='INSTALL_BASE=/home/vinod/my_test_folder/perl_practice/scripts' cpanm Email::Reply