Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl cpanm不安装模块_Perl_Ubuntu_Cpanm - Fatal编程技术网

Perl cpanm不安装模块

Perl cpanm不安装模块,perl,ubuntu,cpanm,Perl,Ubuntu,Cpanm,我是一个全新的perl用户,试图安装perl模块及其依赖项 我正在尝试在一个新的Ubuntu 16.10云服务器实例上安装所需的perl依赖项,但它们没有注册为已安装 比如说 cpanm --skip-installed LWP::Simple 显示 我是否使用了正确的工具? 在哪里可以找到或生成更详细的错误日志 下面是我的安装过程中的选择,但实验可能意味着它并不具有精确的代表性 sudo apt-get install unzip make cmake perl build-essentia

我是一个全新的perl用户,试图安装perl模块及其依赖项

我正在尝试在一个新的Ubuntu 16.10云服务器实例上安装所需的perl依赖项,但它们没有注册为已安装

比如说

cpanm --skip-installed LWP::Simple
显示

我是否使用了正确的工具? 在哪里可以找到或生成更详细的错误日志

下面是我的安装过程中的选择,但实验可能意味着它并不具有精确的代表性

sudo apt-get install unzip make cmake perl build-essential curl cpanminus
cpanm --self-upgrade --sudo
sudo ln -s /usr/bin/unzip /bin/unzip
export PERL_INSTALL_ROOT=/home/ubuntu/perl5
export PERL5LIB=/home/ubuntu/perl5
export PERL_CPANM_OPT="--local-lib=/home/ubuntu/perl5"
mkdir -p /home/ubuntu/perl5
chown -R ubuntu:ubuntu /home/ubuntu/perl5
chown -R ubuntu:ubuntu /home/ubuntu/.cpanm
cpanm --local-lib=/home/ubuntu/perl5 local::lib && eval $(perl -I /home/ubuntu/perl5/lib/perl5/ -Mlocal::lib)
cpanm File::Copy::Recursive
cpanm Archive::Zip
cpanm --skip-installed LWP::Simple

在新服务器上,此过程有效

sudo apt-get update
sudo apt-get install unzip make cmake perl build-essential curl cpanminus
echo $?
sudo ln -s /usr/bin/unzip /bin/unzip
mkdir -p /home/ubuntu/perl5
chown -R ubuntu:ubuntu /home/ubuntu/perl5
cpanm --local-lib=/home/ubuntu/perl5 local::lib && eval $(perl -I /home/ubuntu/perl5/lib/perl5/ -Mlocal::lib)
echo "cpanm --local-lib=/home/ubuntu/perl5 local::lib && eval $(perl -I /home/ubuntu/perl5/lib/perl5/ -Mlocal::lib)" >> /home/ubuntu/.bashrc
cpanm File::Copy::Recursive
cpanm --skip-installed LWP::Simple
echo $?

在新服务器上,此过程有效

sudo apt-get update
sudo apt-get install unzip make cmake perl build-essential curl cpanminus
echo $?
sudo ln -s /usr/bin/unzip /bin/unzip
mkdir -p /home/ubuntu/perl5
chown -R ubuntu:ubuntu /home/ubuntu/perl5
cpanm --local-lib=/home/ubuntu/perl5 local::lib && eval $(perl -I /home/ubuntu/perl5/lib/perl5/ -Mlocal::lib)
echo "cpanm --local-lib=/home/ubuntu/perl5 local::lib && eval $(perl -I /home/ubuntu/perl5/lib/perl5/ -Mlocal::lib)" >> /home/ubuntu/.bashrc
cpanm File::Copy::Recursive
cpanm --skip-installed LWP::Simple
echo $?

当这种情况发生在我身上时,我只是告诉cpanm直接逐个安装缺少的依赖项,然后再重新安装主依赖项。我不知道为什么会发生这种情况。当我自己尝试这样做时,我碰到了那些无法安装的依赖项的依赖项。我设法在第一台服务器上破坏了cpanm,这样我就不能再复制了,但一台新的服务器确实工作了,所以我继续前进。就我个人而言,我发现/比处理local::lib容易得多。同样,关于一般过程,我尝试使用为Debian风格的发行版
libwww-perl
等打包的模块,而不是使用cpan。这意味着它们位于包注册表中。显然,如果您是为特定用户构建,这并不适用。当这种情况发生在我身上时,我只是告诉cpanm直接逐个安装缺少的依赖项,然后再安装主依赖项。我不知道为什么会发生这种情况。当我自己尝试这样做时,我碰到了那些无法安装的依赖项的依赖项。我设法在第一台服务器上破坏了cpanm,这样我就不能再复制了,但一台新的服务器确实工作了,所以我继续前进。就我个人而言,我发现/比处理local::lib容易得多。同样,关于一般过程,我尝试使用为Debian风格的发行版
libwww-perl
等打包的模块,而不是使用cpan。这意味着它们位于包注册表中。显然,如果您是为特定用户构建,这并不适用。如果您是root用户,为什么要使用local::lib?如果您是root用户,为什么要使用local::lib?