incompatibilities after modules reinstall in new 5.8.8.822

Posted by kaipiranha on 2008-05-15 07:36
Forums: PPM | OS: Windows XP Pro

A couple of days ago I upgraded to ActivePerl 5.8.8 build 822 (from 5.7)

Following the recommended procedure, I did a clean install after having saved my modules list with PPM::Profile.
After some fiddling with the invalid profile.xml the majority of these modules were re-installed, seemingly without problems, and a few others I fetched with the new ppm from different repositories.

Today I discovered that LWP was not working anymore, returning:
500 Can't locate object method "configure" via package "Net::HTTP"

I traced that error to the required module Errno.pm:

>perl -MLWP::Simple -we "print get('http://search.cpan.org/')"
Errno architecture (MSWin32-x86-multi-thread-4.0) does not match executable architecture (MSWin32-x86-multi-thread-5.00) at C:/Perl/site/lib/Errno.pm line 11.
Compilation failed in require at C:/Perl/lib/IO/Socket.pm line 17.
BEGIN failed--compilation aborted at C:/Perl/lib/IO/Socket.pm line 17.
Compilation failed in require at C:/Perl/lib/LWP/Simple.pm line 160.

Then I realized that I had two different installs of Errno in perl and site.
The one in site/ appearently build against another architecture (MSWin32-x86-multi-thread-4.0).

I removed this one with ppm (ignoring a dependency warning against Mail-Box) and LWP was working again.
:-)

My conclusion is that ppm somehow got confused by a mix of dependencies and version/architecture mix-ups.
It's probably installed the second Errno in the wake of Mail-Box, maybe not checking dependencies against what's in perl/lib/ already.

I don't know what else has possibly been broken, but I'm feeling more confident now on how to locate and resolve such problems in the future.

Hope this insight helps others too.

Steffen