Fork me on GitHub

在没有root权限时安装perl模块

如果有root权限的话,其实这是一件很简单的事情。
不知道有多少人和我有类似的经历:
我要使用一个软件,但这个软件会调用到perl的模块:

The following extra Perl modules should also be present:
XML::Simple LWP::Simple DBD::SQLite

于是,我试着用cpan安装第一个模块XML::Simple:

cpan XML::DOM

然后出现了这样的提示:

zsh: command not found: cpan

换用cpanm

1
2
wget http://xrl.us/cpanm -O /tmp/user106/cpanm; 
chmod +x /tmp/user106/cpanm

这个时候,还不能直接用cpanm下载模块,因为它会默认将你的模块装到/user/local等目录下,这里是你没有权限写入的。

1
2
3
[user106@cu01]/tmp/user106/perl-Modules% /tmp/user106/cpanm XML::DOM
!
! Can't write to /usr/local/share/perl5 and /usr/local/bin: Installing modules to /User$ome/user106/perl5

这时候,你可以用下面的命令装到自己的目录下:

1
2
3
export PERL_CPANM_OPT="--prompt --reinstall -l /tmp/user106/perl-5.28.0 --mirror http://cpan.cpantesters.org"  #指定cpanm模块安装路径为/tmp/user106/perl-5.28.0;指定mirror网站   
export PERL5LIB=/tmp/user106/perl-5.28.0:$PERL5LIB #添加lib环境变量
source ~/.zshrc #如果用的是bash,则是修改 ~/.bashrc

再次运行命令,就发现上个报错已经你没有了:

1
2
3
4
5
6
7
8
[user106@cu01]/tmp/user106% ./cpanm XML::Simple
--> Working on XML::Simple
Fetching http://cpan.cpantesters.org/authors/id/G/GR/GRANTM/XML-Simple-2.25.tar.gz ... OK
==> Found dependencies: ExtUtils::MakeMaker
--> Working on ExtUtils::MakeMaker
Fetching http://cpan.cpantesters.org/authors/id/B/BI/BINGOS/ExtUtils-MakeMaker-7.34.tar.gz ... OK
Configuring ExtUtils-MakeMaker-7.34 ... OK
Can't locate ExtUtils/Manifest.pm in @INC (@INC contains: FatPacked::39213960=HASH(0x2565b88) /tmp/user106/perl-5.28.0 /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at ./cpanm line 132.

出现了新的报错:Can't locate ExtUtils/Manifest.pm in @INC
搜索了一下,有一种解决方案是下载perl-core:

1
2
3
4
5
wget "https://www.rpmfind.net/linux/centos/7.5.1804/os/x86_64/Packages/perl-core-5.16.3-292.el7.x86_64.rpm"
rpm2cpio perl-core-5.16.3-292.el7.x86_64.rpm | cpio -div #打开rpm压缩包
或者:
wget "https://rpmfind.net/linux/fedora/linux/development/rawhide/Everything/aarch64/os/Packages/p/perl-devel-5.28.0-425.fc30.aarch64.rpm"
rpm2cpio perl-core-5.16.3-292.el7.x86_64.rpm | cpio -div

妈呀,解决不动了😭我还没有吃饭呢

下载CPAN

1
2
wget https://cpan.metacpan.org/authors/id/A/AN/ANDK/CPAN-2.16.tar.gz   
tar -zxvf CPAN-2.16.tar.gz

1.自己下载perl模块:
https://www.cpan.org/ #可以搜索下载

------ END Thankyou ------