Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Perl > Perl Misc > ActiveState vs. "C:\Program Files\" and "C:\Progra~1\"

Reply
Thread Tools

ActiveState vs. "C:\Program Files\" and "C:\Progra~1\"

 
 
pt
Guest
Posts: n/a
 
      04-15-2007
note: this post started off as a question, but turned into a blog and
eventually became an answer. I just hate to have anyone else go
through all this nonsense, so I figured I'd post it as an example of
"when in doubt, google it out".


I successfully installed ActiveState 5.8.8 (after uninstalling
5.6.something) on an XP laptop. I installed it to "C:\Program FIles
\Activestate.com\Perl". After the install, I changed the "Program
files" part of the ActiveState dirs in my PATH env var from long DOS
format to 8.3 format:
"C:\Program Files\ActiveState.com\Perl\site\bin"
to
"C:\Progra~1\ActiveState.com\Perl\site\bin"
and
"C:\Program Files\ActiveState.com\Perl\bin"
to
"C:\Progra~1\ActiveState.com\Perl\bin"

Now, when I attempt to build a CPAN module (BitTorrent), I get:
<pre>
C:\blah... \BitTorrent>perl makefile.pl
Have C:\Progra~1\ActiveState.com\Perl\lib\Config.pm expected C:
\Program Files\ActiveState.com\Perl\lib\Config.pm
Your perl and your Config.pm seem to have different ideas about the
architecture they are running on.
Perl thinks: [lib]
Config says: [MSWin32-x86-multi-thread]
This may or may not cause problems. Please check your installation of
perl
if you have problems building this extension.
Writing Makefile for BitTorrent
</pre>


It *looks* like Perl is just unhappy about the directory rename. I
changed the PATH back to the original install dir and the new message
is:

C:\blahblah...\BitTorrent>perl -c Makefile.PL
Makefile.PL syntax OK

C:\blahblah...\BitTorrent>perl Makefile.PL
Unable to find a perl 5 (by these names:
C:\Program Files\ActiveState.com\Perl\bin\perl.exe
perl.exe perl5.exe perl5.8.8.exe miniperl.exe, in these dirs:
 
Reply With Quote
 
 
 
 
Sisyphus
Guest
Posts: n/a
 
      04-15-2007

"pt" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed) oups.com...
> note: this post started off as a question, but turned into a blog and
> eventually became an answer. I just hate to have anyone else go
> through all this nonsense, so I figured I'd post it as an example of
> "when in doubt, google it out".
>
>
> I successfully installed ActiveState 5.8.8 (after uninstalling
> 5.6.something) on an XP laptop. I installed it to "C:\Program FIles
> \Activestate.com\Perl".


The advice usually offered is to simply not install perl into any directory
containing white space. (There's no need to place perl in any particular
location.)
You're free, of course, to ignore that advice - in which case you can come
up against the issues you have encountered. But if you installed ActivePerl
into, eg, C:\Perl (so that the path to the perl executable is simply
C:\Perl\bin) things should work fine.

> After the install, I changed the "Program
> files" part of the ActiveState dirs in my PATH env var from long DOS
> format to 8.3 format:
> "C:\Program Files\ActiveState.com\Perl\site\bin"
> to
> "C:\Progra~1\ActiveState.com\Perl\site\bin"


Does that location actually exist ? I've never known ActivePerl to create a
perl\site\bin folder.

> and
> "C:\Program Files\ActiveState.com\Perl\bin"
> to
> "C:\Progra~1\ActiveState.com\Perl\bin"
>
> Now, when I attempt to build a CPAN module (BitTorrent), I get:
> <pre>
> C:\blah... \BitTorrent>perl makefile.pl
> Have C:\Progra~1\ActiveState.com\Perl\lib\Config.pm expected C:
> \Program Files\ActiveState.com\Perl\lib\Config.pm
> Your perl and your Config.pm seem to have different ideas about the
> architecture they are running on.
> Perl thinks: [lib]
> Config says: [MSWin32-x86-multi-thread]
> This may or may not cause problems. Please check your installation of
> perl
> if you have problems building this extension.
> Writing Makefile for BitTorrent
> </pre>
>
>
> It *looks* like Perl is just unhappy about the directory rename. I
> changed the PATH back to the original install dir and the new message
> is:
>
> C:\blahblah...\BitTorrent>perl -c Makefile.PL
> Makefile.PL syntax OK
>
> C:\blahblah...\BitTorrent>perl Makefile.PL
> Unable to find a perl 5 (by these names:
> C:\Program Files\ActiveState.com\Perl\bin\perl.exe
> perl.exe perl5.exe perl5.8.8.exe miniperl.exe, in these dirs:
> .
> c:\Program Files\rubyforge.org\ruby\bin
> c:\usr\local\wbin
> C:\Program Files\ActiveState.com\Perl\site\bin
> C:\Program Files\ActiveState.com\Perl\bin
> C:\WINDOWS\system32 C:\WINDOWS
> C:\WINDOWS\System32\Wbem
> c:\progra~1\utils
> C:\Progra~1\apachefriends.org\xampp\MySQL\bin
> C:\Program Files\Perforce
> C:\Program Files\QuickTime\QTSystem\
> C:\PVCS\NT
> c:\progra~1\vslick\win
> C:\Progra~1\nmap \bin
> C:\Progra~1\airsnort\bin
> C:\progra
> .... etc....
>
> So that fixed the one problem, and brough up another. I dug up this
> suggestion:
> http://aspn.activestate.com/ASPN/Mai...iveperl/556006
> and added the PERL line to the Makefile.pl


It has been a long time since I've seen the need to apply that fix ....
probably more than 2 years.
Are you using the latest build (820) of ActivePerl :

perl -e "print $ActivePerl::VERSION"

> That allowed the Makefile to be generated without errors, but running
> it had problems:
> C:\blahblah...\Convert-Bencode-1.03>nmake -f Makefile
>
> Microsoft (R) Program Maintenance Utility Version 1.50
> Copyright (c) Microsoft Corp 1988-94. All rights reserved.
>
> NMAKE : fatal error U1073: don't know how to make 'C:\Program'
> Stop.
>


That's a fairly old version of nmake. There are problems with it, though I'm
not sure that this is one of those problems.
More recent versions of nmake are freely available from Microsoft, but I
don't have a link. You should try to get a more recent version.
(If that's your real email address, you might find a more recent version
turns up in your inbox.)

>
> I modified all instances of "Program files" in the Makefile to
> "Progra~1" and the makefile worked ("test" and "install"). I think
> the next step is to uninstall 5.8.8 and re-install it but specifying
> an install dir of "C:\Progra~1\...etc". I guess this new-fangled
> "Windows" operating system with the pesky ASCII "space" char in files
> and paths is just too much for some people to understand.
>


My understanding is that the "space" shouldn't be posing much of a problem
these days - but I still recommend avoiding directories with spaces, just to
be safe.

You might consider to switching to 'dmake' and the MinGW compiler - both of
which are freely available and work fine with ActivePerl.

Then again ... you could alternatively install Strawberry Perl (
http://vanillaperl.com/ ) - which is a Win32 build of perl that already has
'dmake' and the MinGW compiler bundled with it.

Cheers,
Rob

 
Reply With Quote
 
 
 
 
Mirco Wahab
Guest
Posts: n/a
 
      04-16-2007
Sisyphus wrote:
> "pt" <(E-Mail Removed)> wrote in message
> news:(E-Mail Removed) oups.com...
>> After the install, I changed the "Program
>> files" part of the ActiveState dirs in my PATH env var from long DOS
>> format to 8.3 format:
>> "C:\Program Files\ActiveState.com\Perl\site\bin"
>> to
>> "C:\Progra~1\ActiveState.com\Perl\site\bin"

>
> Does that location actually exist ? I've never known ActivePerl to
> create a perl\site\bin folder.


This was introduced with Build 820 (Jan 2007),
these directories ( /site/bin and /site/lib )
are empty after installation.



Regards

M.
 
Reply With Quote
 
Sisyphus
Guest
Posts: n/a
 
      04-16-2007

"Mirco Wahab" <(E-Mail Removed)> wrote in message
news:evvb8k$ktd$(E-Mail Removed)-halle.de...
> Sisyphus wrote:
>> "pt" <(E-Mail Removed)> wrote in message
>> news:(E-Mail Removed) oups.com...
>>> After the install, I changed the "Program
>>> files" part of the ActiveState dirs in my PATH env var from long DOS
>>> format to 8.3 format:
>>> "C:\Program Files\ActiveState.com\Perl\site\bin"
>>> to
>>> "C:\Progra~1\ActiveState.com\Perl\site\bin"

>>
>> Does that location actually exist ? I've never known ActivePerl to create
>> a perl\site\bin folder.

>
> This was introduced with Build 820 (Jan 2007),
> these directories ( /site/bin and /site/lib )
> are empty after installation.
>


I think the empty site/lib folder started with build 819 (accompanied by a
change in the order of the @INC directories), but I hadn't heard anything
about the creation of a site\bin folder. (I have the 32-bit build of 819 and
the 64-bit build of 820, neither of which contain a site\bin folder.)

Thanks for the info, Mirco.

Cheers,
Rob




 
Reply With Quote
 
Mirco Wahab
Guest
Posts: n/a
 
      04-16-2007
Sisyphus wrote:
> "Mirco Wahab" <(E-Mail Removed)> wrote in message
> news:evvb8k$ktd$(E-Mail Removed)-halle.de...
>> This was introduced with Build 820 (Jan 2007),
>> these directories ( /site/bin and /site/lib )
>> are empty after installation.
>>

> I think the empty site/lib folder started with build 819 (accompanied by
> a change in the order of the @INC directories), but I hadn't heard
> anything about the creation of a site\bin folder. (I have the 32-bit
> build of 819 and the 64-bit build of 820, neither of which contain a
> site\bin folder.)


Now I downloaded the 820/x64 and /x86 to to satisfy my curiosity

$ unzip -l ActivePerl-5.8.8.820-MSWin32-x64-274739.zip | grep "site/bin"
0 01-24-07 01:17 ActivePerl-5.8.8.820-MSWin32-x64-274739/perl/site/bin/

$ unzip -l ActivePerl-5.8.8.820-MSWin32-x86-274739.zip | grep "site/bin"
0 01-24-07 01:41 ActivePerl-5.8.8.820-MSWin32-x86-274739/perl/site/bin/

Maybe you didn't extract empty diretories?

New with 820/MSI-Installer is also that it puts the
"\perl\site\bin\" together with (and before) "\perl\bin\"
into the windows %PATH.

Regards

M.
 
Reply With Quote
 
Sisyphus
Guest
Posts: n/a
 
      04-16-2007

"Mirco Wahab" <(E-Mail Removed)> wrote in message
news:evvkm3$nn2$(E-Mail Removed)-halle.de...
> Sisyphus wrote:
>> "Mirco Wahab" <(E-Mail Removed)> wrote in message
>> news:evvb8k$ktd$(E-Mail Removed)-halle.de...
>>> This was introduced with Build 820 (Jan 2007),
>>> these directories ( /site/bin and /site/lib )
>>> are empty after installation.
>>>

>> I think the empty site/lib folder started with build 819 (accompanied by
>> a change in the order of the @INC directories), but I hadn't heard
>> anything about the creation of a site\bin folder. (I have the 32-bit
>> build of 819 and the 64-bit build of 820, neither of which contain a
>> site\bin folder.)

>
> Now I downloaded the 820/x64 and /x86 to to satisfy my curiosity


Oooh ... you're a sad case

>
> $ unzip -l ActivePerl-5.8.8.820-MSWin32-x64-274739.zip | grep "site/bin"
> 0 01-24-07 01:17
> ActivePerl-5.8.8.820-MSWin32-x64-274739/perl/site/bin/
>
> $ unzip -l ActivePerl-5.8.8.820-MSWin32-x86-274739.zip | grep "site/bin"
> 0 01-24-07 01:41
> ActivePerl-5.8.8.820-MSWin32-x86-274739/perl/site/bin/
>


That looks quite conclusive.

> Maybe you didn't extract empty diretories?


Yes ... I think so.

>
> New with 820/MSI-Installer is also that it puts the
> "\perl\site\bin\" together with (and before) "\perl\bin\"
> into the windows %PATH.
>


I steer clear of the '.msi' version - I only ever grab the '.zip' version.

I would have used the latest evaluation version of WinZip (my copy of which
has now expired) to extract ActivePerl-5.8.8.820-MSWin32-x86-274739.zip to
some temp location, then run the 'Installer.bat' to install to the location
of my choice - making sure that registry and path settings were not
affected.

I've just now extracted ActivePerl-5.8.8.820-MSWin32-x86-274739.zip using an
old GnuWin32 version (5.12) of unzip, and again run 'Installer.bat'. This
time, the site\bin directory *did* get created.

I can only assume that WinZip did something that unzip did not

Cheers,
Rob

 
Reply With Quote
 
pt
Guest
Posts: n/a
 
      04-19-2007
On Apr 15, 12:50 am, "pt" <(E-Mail Removed)> wrote:
> note: this post started off as a question, but turned into a blog and


[snip-tumalu-madarlin]

First off, thanks to all the folks who took the time to wade through
my OP and reply. A moderate razz to Goggle who lost my previous reply
to this thread. A few vectored "thank you"s to sisyphus, Mirco, and
M.Dondi. I used the "junction" utility (
http://www.microsoft.com/technet/sys.../Junction.mspx
) from SysInternals-now-Microsoft-all-hail-on-bended-knee to create a
"C:\Perl" dir linked to "C:\Program Files\ActiveState.com\Perl". Then
re-installed Activestate 5.8.8.820 into "C:\Perl". I could have done
that without the whole "C:\Program Files\ActiveState.com" dir and
link, but I have this personal bias against installing everything
right at the root, even though it it IS like ****ing upstream into a
brick wall. I like the ideas expressed in the Hierarchical File
System Standard ( http://www.pathname.com/fhs/ ), so I'm trying to do
things that way.

I am now much closer to a working solution. As it turns out, Perl 5.6
vs. 5.8 is NOT the problem (at least, not the current problem). The
CPAN modules I'm using (BitTorrent , Net::BitTorrent::*) are
problematic. For example, "BitTorrent-V0.02" actually requires PHP to
be installed. This isn't well documented (as in "not even hinted
at"). I was a bit surprised at PHP code being part of a CPAN Perl
module, but decided to "go with the flow". Since undocumented
alternate language requirements are "l'ordre du jour", I've taken it
upon myself to re-write the module to use the Chinese language version
of ALGOL-68, and the Aore dialect of SQL

BTW, for freeware archivers, I suggest 7-Zip (http://www.7-zip.org/).

 
Reply With Quote
 
pt
Guest
Posts: n/a
 
      04-23-2007
FYI:
Install_ActiveState_Perl.cmd:
----- cut here -----
@Echo off

:: Install ActiveState Perl to "C:\Progra~1\ActiveState.com\Perl"
SetLocal EnableDelayedExpansion EnableExtensions

:: /L*+ ::= Log everything and append to specified file
::/ForceRestart ::= Require reboot after installation.
:: Probably not required but it IS, after all, only DOS.
Set MsiOpts=/L*+ ActiveStatePerl_5.8.8.820_install_log.txt /
ForceRestart

:: Command : "/Package" or "/i" to install," /Uninstall" or "/x" to
uninstall
Set MsiAction=/Package

:: If user specified a file on the cmd line, use it instead of the one
defined here.
Set MsiPkg=ActivePerl-5.8.8.820-MSWin32-x86-274739.msi
If not /%1/==// (
If exist %1 set MsiPkg=%1
)

:: note: "Perl\" is automatically appended to the specified
TARGEDIR.
:: NO WHITESPACE CHARS ALLOWED IN THE INSTALL TARGET PATH!!!! REALLY!
:: Why "ActiveState.com" ?? See the Filesystem Hierarchy Standard:
:: http://www.pathname.com/fhs/2.2/
Set MsiParams=TargetDir="C:\PROGRA~1\ActiveState.com"

cd "%cd%"

echo msiexec %MsiOpts% %MsiAction% "%MsiPkg%" %MsiParams%
msiexec %MsiOpts% %MsiAction% "%MsiPkg%" %MsiParams%

----- cut here -----


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
ActiveState/O'Reilly Launch New and Improved Code Share Site (Python) Bret Python 0 02-19-2010 10:18 PM
Tktable, WinXP and ActiveState Python 2.4.3,x jerry.levan@gmail.com Python 1 06-01-2006 10:40 PM
Activestate Perl and original Perl both on Mac OS Tiger Jake Wiley Perl Misc 14 06-16-2005 10:47 PM
prob with ActiveState and FireFox on Win32 (XP and W2K) curtin Python 2 06-02-2005 01:14 AM
Python 2.2 (ActiveState, build 224) and access violations/Dr Watson(long) =?iso-8859-1?q?Lars_Bj=F8nnes?= Python 1 10-16-2003 12:24 AM



Advertisments