如何使用cpan工具安装本地模块?

时间:2009-10-09 03:23:40

标签: perl installation cpan

我的管理员给了我sudo权利

cpan

我还需要在全局PERL5LIB上安装几个非CPAN模块(Atlassian Crowd - > svn连接器)。

我依稀记得cpan可以从本地安装,无需从网络上拔出模块。

任何指针?我可以这样做,还是应该让他以root身份手动安装这些模块(这对我来说是一个很大的麻烦)?谢谢!

3 个答案:

答案 0 :(得分:8)

如果要在当前目录中安装Perl发行版,请使用点而不是文件名:

 cpan .

如果您使用的是最新版本的cpan程序(不是当前CPAN.pm附带的程序),您可以使用-j开关指定备用配置文件,您可以在其中设置--install_baseINSTALL_BASE指令,还为connect_to_internet_ok等选项设置值。

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

如果要修改当前配置以生成备用配置文件,请使用-J获取文件文本:

 cpan -J

理想情况下,系统管理员可以为Perl管理员创建一个组,而不是为您提供超级用户权限,为该组拥有的模块安装指定一个目录,并将您添加到该组。那时你不需要任何特殊的权力。

答案 1 :(得分:1)

cpan -i的sudo权利应该可以解决问题:

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

我不熟悉通过cpan脚本从文件安装。在cpan shell中,您可以look进入模块目录并根据需要手动构建/安装,但原始tar文件仍然来自存储库,而cpan命令行似乎没有该功能(如果确实如此,我怀疑管理员是否会拥有盛大的sudo权利,因为那时你有一个root shell)。

更新:brian d foy建议我给cap命令提供sudo与给root shell一样是错的 - 这就是为什么我是对的:

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# 

答案 2 :(得分:1)

您实际上并不需要管理员授予您安装CPAN模块的权利。事实上,local::lib是一个更好的解决方案,原因有很多。

相关问题