首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何以非root用户身份使用CPAN?

如何以非root用户身份使用CPAN?
EN

Stack Overflow用户
提问于 2010-06-05 20:20:57
回答 3查看 43.8K关注 0票数 82

我想在我没有root访问权限的共享服务器上安装perl模块。我该怎么做呢?他们似乎也有一个旧版本的CPAN (它在运行命令时会抱怨),是否可以从我的帐户更新正在使用的CPAN命令,而不需要root访问权限?

EN

回答 3

Stack Overflow用户

发布于 2011-11-29 23:18:41

为了完整起见,如果你想把你的cpanm放在~/Library下,这就是在OSX上安装perl5的过程。

代码语言:javascript
复制
curl -L http://cpanmin.us | perl - -l ~/Library/perl5 App::cpanminus local::lib
eval `perl -I ~/Library/perl5/lib/perl5 -Mlocal::lib=~/Library/perl5`
echo 'eval `perl -I ~/Library/perl5/lib/perl5 -Mlocal::lib=~/Library/perl5`' >> ~/.bash_profile
票数 6
EN

Stack Overflow用户

发布于 2017-01-03 14:59:42

如果您还希望能够阅读cpanminus安装的模块的手册页,则还应该确保所选库路径的正确子目录在MANPATH中。因此,上面显示cpanm安装过程的解决方案需要以下附加命令:

代码语言:javascript
复制
 export MANPATH=$HOME/Library/perl5/man:$MANPATH' >> ~/.bash_profile
票数 2
EN

Stack Overflow用户

发布于 2019-09-09 18:22:24

在过去的6个月里,我们已经在20多个部署中使用了the following func,成功地将自动化部署到了亚马逊网络服务……从主配置as follows调用,它基本上只是上述答案的副本粘贴,但在单个可重用的bash脚本中:

代码语言:javascript
复制
 #! /usr/bin/env bash                                                                                                                                                     │··  
                                                                                                                                                                           │··
  # a bash wrapper for check-installing required perl modules as non-root  
main(){                                                                                                                                                                  │··
     doSetVars                                                                                                                                                             │··
     doCheckInstallPreReqs                                                                                                                                                 │··
     perl $PRODUCT_INSTANCE_DIR/src/perl/my-perl-script.t                                                                                                                          │··
  }                                                                                                                                                                        │··
                                                                                                                                                                           │··
  doSetVars(){                                                                                                                                                             │··
     #set -x                                                                                                                                                               │··
     umask 022    ;                                                                                                                                                        │··
     set -u -o pipefail                                                                                                                                                    │··
     run_unit_bash_dir=$(perl -e 'use File::Basename; use Cwd "abs_path"; print dirname(abs_path(@ARGV[0]));' -- "$0")                                                     │··
     export PRODUCT_INSTANCE_DIR=$run_unit_bash_dir/../..                                                                                                                  │··
  }                                                                                                                                                                        │··
                                                                                                                                                                           │··
  doCheckInstallPreReqs(){                                                                                                                                                 │··
     eval `perl -I ~/perl5/lib/perl5 -Mlocal::lib`                                                                                                                         │··
     perl -e '                                                                                                                                                             │··
        use JSON ;                                                                                                                                                         │··
        use Data::Printer;                                                                                                                                                 │··
        use Test::Most ;                                                                                                                                                   │··
        use Test::Mojo;                                                                                                                                                    │··
        use Data::Printer ;                                                                                                                                                │··
        use FindBin;                                                                                                                                                       │··
        use JSON::Parse ;                                                                                                                                                  │··
        use IPC::System::Simple ;                                                                                                                                          │··
        use Mojolicious ;                                                                                                                                                  │··
     ' || {                                                                                                                                                                │··
           curl -L 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`' >> ~/.bashrc                                                                                               │··
           cpanm --local-lib=~/perl5 local::lib && eval $(perl -I ~/perl5/lib/perl5/ -Mlocal::lib)                                                                         │··
           export PERL_MM_USE_DEFAULT=1                                                                                                                                    │··
           cpanm JSON Data::Printer Test::Most Test::Mojo Data::Printer FindBin JSON::Parse \                                                                              │··
              IPC::System::Simple                                                                                                                                          │··
           sudo curl -L cpanmin.us | perl - Mojolicious                                                                                                                    │··
     }                                                                                                                                                                     │··
                                                                                                                                                                           │··
  }                                                                                                                                                                        │··
                                                                                                                                                                           │··
  main
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2980297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档