incompatibilities after modules reinstall in new

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

>perl -MLWP::Simple -we "print get('')"
Errno architecture (MSWin32-x86-multi-thread-4.0) does not match executable architecture (MSWin32-x86-multi-thread-5.00) at C:/Perl/site/lib/ line 11.
Compilation failed in require at C:/Perl/lib/IO/ line 17.
BEGIN failed--compilation aborted at C:/Perl/lib/IO/ line 17.
Compilation failed in require at C:/Perl/lib/LWP/ 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.