【问题标题】:Perl cpanm failing to install modules due to lack of usr/local/man/man3 write permission由于缺少 usr/local/man/man3 写入权限,Perl cpanm 无法安装模块
【发布时间】:2023-04-04 04:30:02
【问题描述】:

我正在使用 cpanm 和 local::lib 在 Pair.com Ubuntu VPS 机器上安装模块。 Shell 访问但没有 root 访问权限。这些模块将转到 ~/perl5。安装的 Perl 是 5.10.1。

Module::Build::TinyClass::Method::Modifiers 的安装均失败。查看 build.log,您可以看到测试运行良好,但安装失败并显示以下消息:

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!! 错误:无法创建“/usr/local/man/man3” 对“/usr/local/man/man3”没有写权限 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!

安装失败,使用cpanm --force 没有帮助。我不需要这些模块将任何东西放入 man3 中。我今天安装了很多其他模块,他们并不关心 man3。

有没有办法解决这个问题?我不需要为模块创建任何手册页。

编辑:我正在使用 local::lib。这是相关的环境变量(我认为)。对我来说有点新的天地......

PERL5LIB=/usr/home/wruppertvps/perl5/lib/perl5 PERL_LOCAL_LIB_ROOT=/usr/home/wruppertvps/perl5 PERL_MB_OPT=--install_base "/usr/home/wruppertvps/perl5" PERL_MM_OPT=INSTALL_BASE=/usr/home/wruppertvps/perl5 MANPATH=:/usr/home/wruppertvps/perl5/man:/usr/share/man:/usr/local/man:/usr/local/share/man

【问题讨论】:

  • 您如何指定安装位置?是通过local::lib 吗?如果是这样,请显示相关的环境变量,它们将控制不同元素的安装位置。
  • @RichardHuxton 我正在使用 local::lib。我在问题中添加了一些环境变量。
  • 无法在此处使用 cpanm 1.5007 重现。如您所料,我将安装到$LOCAL-LIB-DIR/man/man3。我没有定义$MANPATH,但如果我这样做了,那就没什么区别了。 Module::Build::Tiny 似乎调用 ExtUtils::Install 进行实际安装复制,这似乎依赖于名为 installman3dir 的配置设置。从逻辑上讲,问题一定就在附近。
  • @RichardHuxton 谢谢,刚刚想通了!

标签: perl cpanm


【解决方案1】:

看起来问题出在 ExtUtils::Install 中。我猜它看不到 local::lib。设置 PERL_INSTALL_ROOT 解决了这个问题。

PERL_INSTALL_ROOT=/usr/home/wruppertvps/perl5

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-11
    • 2020-01-02
    • 2019-07-15
    • 2020-04-04
    • 2011-07-12
    • 2019-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多