4

我的管理员给了我 sudo 权限

cpan

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

我依稀记得 cpan 可以从本地源安装,而不需要从网络上拉模块。

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

4

3 回答 3

9

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

 cpan .

如果您使用的是最新版本的cpan程序之一(不是当前 CPAN.pm 附带的那个),您可以使用 -j 开关指定一个备用配置文件,您可以在其中设置--install_baseorINSTALL_BASE指令,并设置选项的值,例如connect_to_internet_ok.

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

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

 cpan -J

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

于 2009-10-09T19:23:08.660 回答
1

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

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 建议我将 sudo 提供给 cpan 命令与提供 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# 
于 2009-10-09T03:47:38.143 回答
1

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

于 2009-10-09T11:45:18.367 回答