From: Andrew Rodland Date: Tue, 15 Feb 2011 23:10:38 +0000 (-0600) Subject: Add documentation for --deactivate and --deactivate-all X-Git-Tag: 1.008004~12 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit%2Flocal-lib.git;a=commitdiff_plain;h=480534a88ae50b8e151a01c8488aa019d0e5d395 Add documentation for --deactivate and --deactivate-all --- diff --git a/lib/local/lib.pm b/lib/local/lib.pm index fe6f8c7..ab05cdb 100644 --- a/lib/local/lib.pm +++ b/lib/local/lib.pm @@ -575,6 +575,22 @@ installation to install modules in different directories directly this way: cd ../mydir2 ... REPEAT ... +If you are working with several C environments, you may want to +remove some of them from the current environment without disturbing the others. +You can deactivate one environment like this (using bourne sh): + + eval $(perl -Mlocal::lib=--deactivate,~/path) + +which will generate and run the commands needed to remove C<~/path> from your +various search paths. Whichever environment was B will +remain the target for module installations. That is, if you activate +C<~/path_A> and then you activate C<~/path_B>, new modules you install will go +in C<~/path_B>. If you deactivate C<~/path_B> then modules will be installed +into C<~/pathA> -- but if you deactivate C<~/path_A> then they will still be +installed in C<~/pathB> because pathB was activated later. + +You can also ask C to clean itself completely out of the current +shell's environment with the C<--deactivate-all> option. For multiple environments for multiple apps you may need to include a modified version of the C<< use FindBin >> instructions in the "In code" sample above. If you did something like the above, you have a set of Perl modules at C<< @@ -677,6 +693,22 @@ See L for one way to do this - but note that there are a number of caveats, and the best approach is always to perform a build against a clean perl (i.e. site and vendor as close to empty as possible). +=head1 OPTIONS + +Options are values that can be passed to the C import besides the +directory to use. They are specified as C +or C. + +=head2 --deactivate + +Remove the chosen path (or the default path) from the module search paths if it +was added by C, instead of adding it. + +=head2 --deactivate-all + +Remove all directories that were added to search paths by C from the +search paths. + =head1 METHODS =head2 ensure_dir_structure_for