列出已制作但未安装的CPAN模块

时间:2010-04-09 09:40:48

标签: linux perl cpan

在Linux /类似Linux的环境中,有一种简单/干净的方法吗?

目的

我的目标是仅在安装阶段运行具有管理员权限的CPAN,而不是在get / make / test阶段。

3 个答案:

答案 0 :(得分:2)

CPAN configuration items make_install_make_commandmbuild_install_build_command处理此问题。更改它们以启用sudo支持。

答案 1 :(得分:1)

假设您正在使用CPAN.pm,我有一些非正统的建议。

创建CPAN.pm的子类,它实际上将其使用的每个模块的结果/阶段发布到注册表(通过附带的回调API使注册表实现变得灵活)。

然后你需要简单地检查一下注册表。

(或者您可以尝试将其作为补丁放入CPAN.pm本身)

答案 2 :(得分:0)

为了记录一个看似有希望但不起作用的方法 - shell命令:

find . -type d -mindepth 1 -maxdepth 1 -print | while read -r DIR; do pushd $DIR;  make -q; mk=$?; make -q install; inst=$?; make -q test; tst=$?; echo Directory "$DIR $mk $inst $tst"; popd; done| fgrep -ve /build

在cpan build dir中执行时,列出make -q的退出状态为“”,“test”和“install”,它表示该make目标是否需要完成任何工作。

但是所有都具有非零退出状态,这意味着即使make已成功完成,它们也会执行某些操作。所以你不能这么说。