Thanks Martin, please see below...
On 12/14/2011 04:13 AM, Martin Becker wrote:
Phil,
On Tue, Dec 13, 2011 at 03:50:21PM -0500, Philip Kasten wrote:
I'm probably just doing something really dumb -- but I cannot figure out
what.
I am using the cpan tool to install modules on a FreeBSD system that I do
not have root permission on. I have a PREFIX variable set to install
everything in my local path. Everything works fine (I have been doing this
for many modules, successfully) unless man3 pages need to be published.
Although man1 man pages are correctly installed relative to the PREFIX
path, man3 man pages seem to ignore PREFIX. In fact, even if I try using
INSTALLMAN3DIR, and whether or not I specify INSTALLDIRS=perl, nothing
seems to cause man3 man pages to be re-routed. Instead, they try to be
installed in the root distribution and the install fails:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!**!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!**!!!!!!!!!!!!
ERROR: Can't create '/usr/local/lib/perl5/5.8.8/**man/man3'
Do not have write permissions on '/usr/local/lib/perl5/5.8.8/**man/man3'
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!**!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!**
!!!!!!!!!!!!
at /homes/pkasten/perl/lib/perl5/**site_perl/5.8.8/Module/Build/**Base.pm
line 3569
This error message looks like coming from Module::Build,
not ExtUtils::MakeMaker.
Thanks -- I will send my question to the Module::Build folks.
Since you are using the cpan tool, you might want to review
your CPAN settings. Try the ``o conf'' command from your CPAN
shell and check for path names there.
Right. Everything really does look right to me (I am pretty familiar
with using cpan's configuration to manage installations.) In order to
have modules installed in my own area, I have the following in
~/.cpan/CPAN/MyConfig.pm (all other lines were omitted for this email):
'makepl_arg' => q[PREFIX=~/perl],
Everything (installation of .pm files and man1 files) works properly
except for man3 pages.
Module::Build has quite a number of options controlling where
to install things. In your situation, probably --prefix would
work with least surprising results; it was designed aiming for
compatibility with EUMM's PREFIX argument.
To arrange for cpan calling ./Build with a --prefix argument,
you could enter ``o conf mbuildpl_arg --prefix ~/perl'' in your
CPAN shell. The EUMM equivalent would be ``o conf makepl_arg
PREFIX=~/perl''.
Right -- this is what I have. Well, sortof. the makepl_arg is supposed
to get propagated to the build and install phases.
In other words, with the PREFIX variable set (to ~/perl), man1 man pages
are correctly placed in ~/perl/man/man1, but man3 man pages seem to want to
go to /usr/local/lib/perl5/5.8.8/**man/man3. And, this does not change
even if I also specify INSTALLMAN3DIR=~/perl/man/**man3, with or without
INSTALLDIRS=perl.
perl is 5.8.8 and ExtUtils::MakeMaker 6.62 is installed on my system.
Am I doing something wrong? More importantly, how do I resolve this?
Note that we are discussing arguments, not variables here.
Neither EUMM nor MB should care for a PREFIX environment
variable, as far as I know.
Right. The PREFIX variable I was referring to was for the makepl_arg.
Good luck,
-Martin
Thanks -- I will see if the Module::Build folks have any insight.
Regards,
Phil