2

I'm using cpanm and local::lib to install modules on a Pair.com Ubuntu VPS box. Shell access but no root access. The modules are going to ~/perl5. The installed Perl is 5.10.1.

Install of both Module::Build::Tiny and Class::Method::Modifiers failed. Looking at the build.log, you can see that the tests ran fine, but the install failed with the message:

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ERROR: Can't create '/usr/local/man/man3'
Do not have write permissions on '/usr/local/man/man3'
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

The install failed, and using cpanm --force does not help. I don't need these modules to put anything in man3. I've installed lots of other modules today, and they didn't care about man3.

Is there a way I can get around this? I don't need any man pages created for modules.

Edit: I am using local::lib. Here are the relevant environment variables (I think). Sort of new ground for me here...

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
Bill Ruppert
  • 8,956
  • 7
  • 27
  • 44
  • How are you specifying install location? Is it via `local::lib`? If so, please show the relevant environment variables, they will control where different elements get installed. – Richard Huxton Jan 20 '14 at 19:15
  • @RichardHuxton I am using local::lib. I have added some env vars to the question. – Bill Ruppert Jan 20 '14 at 20:39
  • can't reproduce here with cpanm 1.5007. I get installation to `$LOCAL-LIB-DIR/man/man3` as you would expect. I don't have `$MANPATH` defined but if I do so then it makes no difference. `Module::Build::Tiny` seems to call `ExtUtils::Install` for the actual installation copying and that seems to rely on a config setting called `installman3dir`. The problem must logically be somewhere around there. – Richard Huxton Jan 20 '14 at 21:12
  • @RichardHuxton Thanks, just figured that out! – Bill Ruppert Jan 20 '14 at 21:15

1 Answers1

2

It looks like the problem was in ExtUtils::Install. I guess it doesn't see local::lib. Setting PERL_INSTALL_ROOT fixed the problem.

PERL_INSTALL_ROOT=/usr/home/wruppertvps/perl5

Bill Ruppert
  • 8,956
  • 7
  • 27
  • 44