X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2Flocal%2Flib.pm;h=e8f117d8d7c5d331a65d8a89117441eef5175c47;hb=c7febe7f13e96f586983eea42c0d0e3fa730e257;hp=a917cd5c73c61048bbaa481fed77e0aa48f7b2b9;hpb=d8b1a404286116345860cf4e825dd0b79077f189;p=p5sagit%2Flocal-lib.git diff --git a/lib/local/lib.pm b/lib/local/lib.pm old mode 100644 new mode 100755 index a917cd5..e8f117d --- a/lib/local/lib.pm +++ b/lib/local/lib.pm @@ -11,7 +11,7 @@ use File::Path (); use Carp (); use Config; -our $VERSION = '1.005001'; # 1.5.1 +our $VERSION = '1.006004'; # 1.6.4 our @KNOWN_FLAGS = qw(--self-contained); @@ -332,8 +332,8 @@ sub build_environment_vars_for { MODULEBUILDRC => $class->modulebuildrc_path($path), PERL_MM_OPT => "INSTALL_BASE=${path}", PERL5LIB => join($Config{path_sep}, - $class->install_base_perl_path($path), $class->install_base_arch_path($path), + $class->install_base_perl_path($path), (($ENV{PERL5LIB}||()) ? ($interpolate == INTERPOLATE_ENV ? ($ENV{PERL5LIB}) @@ -363,6 +363,8 @@ ok(-f 't/var/splat/.modulebuildrc'); =end testing +=encoding utf8 + =head1 NAME local::lib - create and use a local lib/ for perl modules with PERL5LIB @@ -396,7 +398,14 @@ From the shell - A typical way to install local::lib is using what is known as the "bootstrapping" technique. You would do this if your system administrator hasn't already installed local::lib. In this case, you'll need to install -local::lib in your home directory. +local::lib in your home directory. + +If you do have administrative privileges, you will still want to set up your +environment variables, as discussed in step 4. Without this, you would still +install the modules into the system CPAN installation and also your Perl scripts +will not use the lib/ path you bootstrapped with local::lib. + +Windows users must also see L. 1. Download and unpack the local::lib tarball from CPAN (search for "Download" on the CPAN page about local::lib). Do this as an ordinary user, not as root @@ -410,12 +419,19 @@ convenient location. If the system asks you whether it should automatically configure as much as possible, you would typically answer yes. -3. Run this: +In order to install local::lib into a directory other than default, you need +to give that directory on the call of bootstrap like this: + + perl Makefile.PL --bootstrap=~/foo + +3. Run this: (local::lib assumes you have make installed on your system) make test && make install -4. Arrange for Perl to use your own packages instead of the system -packages. If you are using bash, you can do this as follows: +4. Now we need to setup the appropriate environment variables, so that Perl +starts using our newly generated lib/ directory. If you are using bash or +any other Bourne shells, you can add this to your shell startup script this +way: echo 'eval $(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)' >>~/.bashrc @@ -426,17 +442,14 @@ If you are using C shell, you can do this as follows: /bin/csh perl -I$HOME/perl5/lib/perl5 -Mlocal::lib >> ~/.cshrc -You can also pass --bootstrap=~/foo to get a different location - - - perl Makefile.PL --bootstrap=~/foo - make test && make install +If you passed to bootstrap a directory other than default, you also need to give that as +import parameter to the call of the local::lib module like this way: echo 'eval $(perl -I$HOME/foo/lib/perl5 -Mlocal::lib=$HOME/foo)' >>~/.bashrc After writing your shell configuration file, be sure to re-read it to get the -changed settings into your current shell's environment. Bourne shells use C<. -~/.bashrc> for this, whereas C shells use C. Replace .bashrc or -.cshrc with the name of the file you wrote above with the echo command. +changed settings into your current shell's environment. Bourne shells use +C<. ~/.bashrc> for this, whereas C shells use C. If you're on a slower machine, or are operating under draconian disk space limitations, you can disable the automatic generation of manpages from POD when @@ -444,13 +457,15 @@ installing modules by using the C<--no-manpages> argument when bootstrapping: perl Makefile.PL --bootstrap --no-manpages -If you want to install multiple Perl module environments, say for application development, -install local::lib globally and then: +To avoid doing several bootstrap for several Perl module environments on the +same account, for example if you use it for several different deployed +applications independently, you can use one bootstrapped local::lib +installation to install modules in different directories directly this way: cd ~/mydir1 perl -Mlocal::lib=./ eval $(perl -Mlocal::lib=./) ### To set the environment for this shell alone - printenv ### You will see that ~/mydir1 is in the PERL5LIB + printenv ### You will see that ~/mydir1 is in the PERL5LIB perl -MCPAN -e install ... ### whatever modules you want cd ../mydir2 ... REPEAT ... @@ -473,18 +488,21 @@ Put this before any BEGIN { ... } blocks that require the modules you installed. =head2 Differences when using this module under Win32 +To set up the proper environment variables for your current session of +C, you can use this: + C:\>perl -Mlocal::lib set MODULEBUILDRC=C:\DOCUME~1\ADMINI~1\perl5\.modulebuildrc set PERL_MM_OPT=INSTALL_BASE=C:\DOCUME~1\ADMINI~1\perl5 set PERL5LIB=C:\DOCUME~1\ADMINI~1\perl5\lib\perl5;C:\DOCUME~1\ADMINI~1\perl5\lib\perl5\MSWin32-x86-multi-thread set PATH=C:\DOCUME~1\ADMINI~1\perl5\bin;%PATH% - ### To set the environment for this shell alone + ### To set the environment for this shell alone C:\>perl -Mlocal::lib > %TEMP%\tmp.bat && %TEMP%\tmp.bat && del %TEMP%\temp.bat ### instead of $(perl -Mlocal::lib=./) If you want the environment entries to persist, you'll need to add then to the -Control Panel's System applet yourself at the moment. +Control Panel's System applet yourself or use L. The "~" is translated to the user's profile directory (the directory named for the user under "Documents and Settings" (Windows XP or earlier) or "Users" @@ -777,6 +795,9 @@ by a patch from Marco Emilio Poleggi. Mark Stosberg provided the code for the now deleted '--self-contained' option. +Documentation patches to make win32 usage clearer by +David Mertens (run4flat). + =head1 COPYRIGHT Copyright (c) 2007 - 2009 the local::lib L and L as