Revision history for local::lib
+1.004001 2009-05-21
+ - Clean up CPAN.pm's environment variable the same way we do for
+ CPANPLUS. Add an example program showing local::lib employed
+ programmatically (confound).
+
+ - Add the beginnings of a troubleshooting section (pattern).
+
1.004000 2009-05-14
- Don't allow dangerous settings for CPAN.pm that affect where CPAN
installs stuff, as this conflicts with what we're trying to do.
# without this beautiful hack
my $no_cpanplus_env = !exists $ENV{PERL5_CPANPLUS_IS_RUNNING};
+my $no_cpan_env = !exists $ENV{PERL5_CPAN_IS_RUNNING};
require CPAN;
delete $ENV{PERL5_CPANPLUS_IS_RUNNING} if $no_cpanplus_env;
+delete $ENV{PERL5_CPAN_IS_RUNNING} if $no_cpan_env;
# and make sure that the user doesn't have any existing CPAN config that'll
# cause us problems for the next few steps.
--- /dev/null
+#!/usr/bin/perl\r
+# contributed by hdp@cpan.org\r
+\r
+use strict;\r
+use warnings;\r
+use CPAN;\r
+use Cwd;\r
+use File::Spec;\r
+my $target = Cwd::abs_path($ENV{TARGET})\r
+ or die "set \$ENV{TARGET} to your desired local::lib dir\n";\r
+\r
+my $mod = CPAN::Shell->expand(Module => "local::lib");\r
+$mod->get;\r
+my $dir = CPAN::Shell->expand(Distribution => $mod->cpan_file)->dir;\r
+chdir($dir);\r
+my $make = $CPAN::Config->{make};\r
+system($^X, 'Makefile.PL',"--bootstrap=$target") && exit 1;\r
+system($make, 'test') && exit 1;\r
+system($make, 'install') && exit 1;\r
use Carp ();
use Config;
-our $VERSION = '1.004000'; # 1.4.0
+our $VERSION = '1.004001'; # 1.4.1
sub import {
my ($class, @args) = @_;
Patches very much welcome for any of the above.
+=head1 TROUBLESHOOTING
+
+If you've configured local::lib to install CPAN modules somewhere in to your
+home directory, and at some point later you try to install a module with C<cpan
+-i Foo::Bar>, but it fails with an error like: C<Warning: You do not have
+permissions to install into /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux at
+/usr/lib64/perl5/5.8.8/Foo/Bar.pm> and buried within the install log is an
+error saying C<'INSTALL_BASE' is not a known MakeMaker parameter name>, then
+you've somehow lost your updated ExtUtils::MakeMaker module.
+
+To remedy this situation, rerun the bootstrapping procedure documented above.
+
+Then, run C<rm -r ~/.cpan/build/Foo-Bar*>
+
+Finally, re-run C<cpan -i Foo::Bar> and it should install without problems.
+
=head1 ENVIRONMENT
=over 4
<torsten@raudssus.de>.
Hans Dieter Pearcey <hdp@cpan.org> sent in some additional tests for ensuring
-things will install properly, and furthermore submitted a fix for the bug
-causing problems with writing Makefiles during bootstrapping. Many thanks!
+things will install properly, submitted a fix for the bug causing problems with
+writing Makefiles during bootstrapping, contributed an example program, and
+submitted yet another fix to ensure that local::lib can install and bootstrap
+properly. Many, many thanks!
+
+pattern of Freenode IRC contributed the beginnings of the Troubleshooting
+section. Many thanks!
=head1 LICENSE