How can I install local modules with the cpan tool?

前端 未结 3 843
悲&欢浪女
悲&欢浪女 2021-01-03 07:27

my admin has given me sudo rights for

cpan

I also need to install a couple of non-CPAN modules (Atlassian Crowd -> svn connector) to the g

相关标签:
3条回答
  • 2021-01-03 08:03

    sudo rights to cpan -i should do the trick:

    bash-3.2$ cpan -i Foo::Bar
    CPAN: File::HomeDir loaded ok (v0.80)
    CPAN: Storable loaded ok (v2.18)
    ...
    

    I'm not familiar with installing from files via the cpan script. In the cpan shell you can look into the module directory and manually build/install from there if you want, but the original tar file still came from the repository, and the cpan command line doesn't seem to have that function (if it did I doubt the admin would grand sudo rights to it since then you'd have a root shell).

    Update: brian d foy suggests that I'm wrong about giving sudo to the cpan command being the same as giving a root shell - here's why I'm right:

    bash-3.2# whoami
    aufflick
    bash-3.2# sudo cpan
    cpan[1]> o conf shell bash
    cpan[2]> look Acme::Bleach
    ..... downloads and extracts Acme::Bleach ...
    CPAN: File::Temp loaded ok (v0.18)
    Working directory is /Users/aufflick/.cpan/build/Acme-Bleach-1.12-v768Dv
    bash-3.2# whoami
    root
    bash-3.2# 
    
    0 讨论(0)
  • 2021-01-03 08:16

    You don't actually need your admin to give you rights to install CPAN modules. In fact local::lib is a better solution for a number of reasons.

    0 讨论(0)
  • 2021-01-03 08:25

    If you want to install the Perl distribution in the current directory, use the dot instead of a filename:

     cpan .
    

    If you are using one of the latest versions of the cpan program (not the one that currently comes with CPAN.pm), you can use the -j switch to specify an alternate configuration file where you can set the --install_base or INSTALL_BASE directives, and also set values for options like connect_to_internet_ok.

     cpan -j /path/to/Config.pm Foo::Bar
    

    If you want to modify your current config to make your alternate config file, use -J to get the file text:

     cpan -J
    

    Ideally, instead for giving you superuser priveleges, that sysadmin would have created a group for Perl admins, would have specified a directory for module installations owned by that group, and added you to that group. You wouldn't need any special powers then.

    0 讨论(0)
提交回复
热议问题