在Linux /类似Linux的环境中,有一种简单/干净的方法吗?
目的
我的目标是仅在安装阶段运行具有管理员权限的CPAN,而不是在get / make / test阶段。
答案 0 :(得分:2)
CPAN configuration items make_install_make_command
和mbuild_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已成功完成,它们也会执行某些操作。所以你不能这么说。