Re: Changing Perl compile-time configuration settings
by syphilis (Archbishop) on Feb 20, 2008 at 04:35 UTC
|
Changing the paths specified in Config.pm and Config_heavy.pl should be all you need to do, and afaik that should work.
I'd be loathe to mess with Config.h. I don't think that's necessary, anyway.
Cheers, Rob | [reply] |
Re: Changing Perl compile-time configuration settings
by CountZero (Bishop) on Feb 20, 2008 at 06:57 UTC
|
| [reply] |
|
Actually, it's not "much more complicated" - changing the configuration files is all that I found to be needed. I briefly looked at the source of reloc_perl.bat and ActiveState::RelocateTree, and didn't find where the list of files gets passed around.
I have moved both, ActiveState and Strawberry Perl around, and the only things that needed change were Config.pm and CPAN/Config.pm.
Update: D'oh - of course, syphilis is right, Config_heavy.pl is another place that needs changing.
| [reply] [d/l] [select] |
|
the only things that needed change were Config.pm and CPAN/Config.pm
If you don't make any changes to Config_heavy.pl there will still be a number of config values pointing to the original location. I would think that would break something sooner or later.
Though, I guess, perhaps the amendments made in CPAN/Config.pm override those Config_heavy.pl settings ? (I have no experience with CPAN.pm.)
Cheers, Rob
| [reply] |
|
|
...ok... scanning ActiveState::RelocateTree<br< />
It looks like it checks every file in the ActiveState installation (without reading too much about File::Find), checks with a regex in the check subroutine to see if they contain the $opt{from} string (which is the current $Config{prefix}), then pass the files to the edit subroutine which search and replaces the from location with the to location (and pads binary files).
It's comprehensive brute force, and probably OTT.
I should really do a grep for all files with C:\strawberry\ and see how long the list is...
| [reply] [d/l] [select] |
|
Re: Changing Perl compile-time configuration settings
by adamk (Chaplain) on Feb 20, 2008 at 13:03 UTC
|
Obviously it's sub-optimal to move the distribution every single time. It would be better if it just auto-detected the correct locations.
I've done a little experimentation with this...
Take a look at http://svn.ali.as/cpan/trunk/Perl-Dist/share/vanilla to see my experimental replacements for Config.pm and CPAN/Config.pm (haven't done Config_heavy.pl yet).
You might want to try copying those files into your install.
Of course, you'd have to also create a similarly-modified form of Config_heavy.pl... which you would then of course mail to me :) | [reply] |
|
Hmm, your solution looks really nifty. I might switch to something like that when I've finished this attempt.
My solution is to run a script which targets specific config settings for replacement. For CPAN's Config.pm it does a little bit more than s/?:\\strawberry/$new_prefix/ (mostly pointing to some other include files on the flash drive). Perl's Config.pm on the other hand just needs a search/replace done on it. Config_heavy.pl looks like it needs a combination (and to be honest it hasn't been done properly! there's a lot of references to usr/lib and similar unixisms).
I have a U3 drive because I like UltraEdit32 and the U3 version is pretty much everything you need for non-compiled languages. (I use it for Perl, Javascript, and XHTML).
Here's the script so far, I'll get to work on it more tomorrow. It's a bit niave in some places (uh, like how I haven't used rename) and needs some of the debugging code stripped out.
Updated: Now does Perl's Config.pm
Updated again: Now does Config_heavy.pl
| [reply] [d/l] [select] |
|
Looking at Config_heavy.pl it's going to be a heavyweight combination of the two approaches I've used so far, and at this time of night the code's likely to read like the script from an episode of Deadwood.
| [reply] [d/l] |
|
After a good night sleep Config_heavy.pl isn't quite so scary. A s!.:/strawberry!$strawberryDir!g does most of the work, but there are these other options that probably shouldn't be left as they are because they still contain unix paths. This might account for the occasional X:\strawberry\perl\lib/foo/baa mangled paths seen in logs and error reports.
Exerpts from Config_heavy.pl:
glibpth='/usr/shlib /lib/pa1.1 /usr/lib/large /lib /usr/lib /usr/lib/
+386 /lib/386 /lib/large /usr/lib/small /lib/small /usr/ccs/lib /usr/u
+cblib /usr/shlib '
...
locincpth='/usr/local/include /opt/local/include /usr/gnu/include /opt
+/gnu/include /usr/GNU/include /opt/GNU/include'
loclibpth='/usr/local/lib /opt/local/lib /usr/gnu/lib /opt/gnu/lib /us
+r/GNU/lib /opt/GNU/lib'
...
strings='/usr/include/string.h'
...
sysman='/usr/man/man1'
...
timeincl='/usr/include/sys/time.h '
...
xlibpth='/usr/lib/386 /lib/386'
Update: Read Config manual page. Some of these are redundant. Others are easily redirected, and should really have been sorted during compile time, i.e. the Configure script didn't really set them correctly prior to compiling. It seems safe to redirect them to appropriate include and lib directories. | [reply] [d/l] [select] |
|
Re: Changing Perl compile-time configuration settings
by Bloodrage (Monk) on Feb 20, 2008 at 07:14 UTC
|
PS. Using Strawberry Perl because it comes with nmake, the mingw compiler, and assorted library and include files specifically for compiling modules.
(...but Glib and GTK2 still being awkward) | [reply] |
Re: Changing Perl compile-time configuration settings
by Aim9b (Monk) on Feb 20, 2008 at 13:12 UTC
|
I'm a relative newbie, but... Since you're on Windows, what's the possibility of taking the opposite approach, & making the thumb drive ALWAYS be the same letter. Then just assigning C:\strawberry\etc... to the X: or Q: or whatever you've mapped it to? | [reply] |
|
My assumption is that group policies etc. have been properly secured (except for the use of flash drives, doh!) and you can't do squat machine wise. You get the drive you're given.
I also want to be able to take this thing to meetings/interviews jam it in the Windows presentation machine and my scripts to work.
| [reply] |
Re: Changing Perl compile-time configuration settings
by Bloodrage (Monk) on Feb 23, 2008 at 22:03 UTC
|
| [reply] |