我想在我没有 root 访问权限的共享服务器上安装 perl 模块。我怎样才能做到这一点?他们似乎也有旧版本的 CPAN(它在运行命令时提示),是否可以在不需要 root 访问权限的情况下更新我帐户中正在使用的 CPAN 命令?
最佳答案
到目前为止我发现的最简单的方法是说
wget -O- http://cpanmin.us | perl - -l ~/perl5 App::cpanminus local::lib
eval `perl -I ~/perl5/lib/perl5 -Mlocal::lib`
echo 'eval `perl -I ~/perl5/lib/perl5 -Mlocal::lib`' >> ~/.profile
echo 'export MANPATH=$HOME/perl5/man:$MANPATH' >> ~/.profile
这假设您的配置文件名为
.profile
,您可能需要将其更改为 .bash_profile
、 .bashrc
等。之后您可以通过说安装模块cpanm Module::Name
并像安装在根目录中一样简单地使用它们。
以下是对上述命令的作用的简要说明。
wget -O- http://cpanmin.us
获取最新版本的 cpanm
并将其打印到 STDOUT
,然后通过管道传输到 perl - -l ~/perl5 App::cpanminus local::lib
。第一个 -
告诉 perl
期待程序进入 STDIN
,这使得 perl
运行我们刚刚下载的 0x2314 的版本 0.1318 cpanm
将其余参数传递给 perl
。 cpanm
参数告诉 -l ~/perl5
在哪里安装 Perl 模块,另外两个参数是要安装的两个模块。 cpanm
] 1 是安装 [App::cpanmins
的包。 cpanm
是一个辅助模块,用于管理在本地目录中运行模块所需的环境变量。安装这些模块后,我们运行
eval `perl -I ~/perl5/lib/perl5 -Mlocal::lib`
设置使用本地模块所需的环境变量,然后
echo 'eval `perl -I ~/perl5/lib/perl5 -Mlocal::lib`' >> ~/.profile
以确保我们下次登录时能够使用它们。
echo 'export MANPATH=$HOME/perl5/man:$MANPATH' >> ~/.profile
希望可以让 man 找到您本地模块的手册页。
关于perl - 如何以非 root 用户身份使用 CPAN?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2980297/