我的管理员给了我sudo权利
cpan
我还需要在全局PERL5LIB上安装几个非CPAN模块(Atlassian Crowd - > svn连接器)。
我依稀记得cpan可以从本地安装,无需从网络上拔出模块。
任何指针?我可以这样做,还是应该让他以root身份手动安装这些模块(这对我来说是一个很大的麻烦)?谢谢!
答案 0 :(得分:8)
如果要在当前目录中安装Perl发行版,请使用点而不是文件名:
cpan .
如果您使用的是最新版本的cpan程序(不是当前CPAN.pm附带的程序),您可以使用-j开关指定备用配置文件,您可以在其中设置--install_base
或INSTALL_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是一个更好的解决方案,原因有很多。