build the modules on the build machine, copy the modules into your own path where you know an overwrite wont be made for production updates (IE your home directory), and include that directory in your @INC | [reply] |
| [reply] |
If the platforms are CPAN-able, then autobundle!!! This is really cool, used it the other day to upgrade my perl to 5.6 and get everything installed right. On production machine, perl -MCPAN -e shell
At the prompt, type autobundle. Go into ~user/.cpan/Bundle and get Snapshot_2001_date_here_00.pm and copy it into the same dir on production machine. Fire up CPAN on production box, hit install Bundle::Snapshot_2001_date_here_00, and go get lunch. CPAN will install every module that was in the standard @INC dirs into the production source tree, all nice and pretty. Probably best to keep an eye on it, and run it through a couple times to get rid of failed dependancies, as I think it just tries to install everything in alphabetical order. One long run through and a couple quick ones to pick up the stragglers should be sufficient.
Enjoy! Trinary | [reply] |
You don't mention the platform..but...
In the NT world you may be able to use the PPM module included in activestate's distribution. Ideally you could setup your own depot, bundle your modules, and 'use PPM;'(and its various routines) in a script to install/manage your modules. You could use a NT schedule/at command to periodically run thescript ensuring that the modules listed in a text file are installed/current.
I'm not sure how reliable the PPM module is..I know while using PPM interactively I've run across some quirks/issues, so it may be better to use a cruder/more reliable method. Still worth a mention though.
toodlez - blueAdept | [reply] |
Most modules should install a .packlist file in the perl lib dir. If you are on a unix/linux platform, do something like:
for i in `find /usr/lib/perl5 -name .packlist`;do cat >> all_packlists.txt;done
The use zip like this:
cat all_packlists.txt | zip -@ -r perl_mod.zip
| [reply] |
oops, that dor loop was wrong:
>> for i in `find /usr/lib/perl5 -name .packlist`;do cat >> all_packlists.txt;done
--
<< for i in `find /usr/lib/perl5 -name .packlist`;do cat $i >> all_packlists.txt;done
| [reply] |