From: Robert L. <rj...@re...> - 2003-10-01 21:52:50
|
At 13:01 2003/10/01, ga...@cn... wrote: >I'm not sure what caused the problem so I'm bringing it to everyones >attention to help me to identify where to file a bug report (if that >is what is needed) or to simply correct my own installation. > >I've got SpamAssassin installed via "perl -MCPAN -e shell" with the >"install Mail::SpamAssassin" command line. I had 2.55 installed and >just upgraded to 2.60. After restarting Amavis I found that it still >reported 2.55 as being installed. Another Amavis user pointed out I >must have more than one copy of it so I searched. The result of a >"find / -name SpamAssassin.pm" was as follows: > >/usr/lib/perl5/site_perl/5.6.1/Mail/SpamAssassin.pm >/usr/local/lib/perl5/site_perl/5.8.0/Mail/SpamAssassin.pm > >The first line was in fact version 2.55, the second line was 2.60. Now >when I deleted all of the SpamAssassin related stuff from the >directory indicated in the first line Amavis took exception and died >on startup with the following error: It looks as though at some point you upgraded from Perl 5.6.1 to 5.8.0, which is likely at the root of your troubles. The "problem" is that Perl uses a non-intuitive system for storing its modules, such that it will look for some of your modules in the 5.6.1 subtree, and others in the 5.8.0 subtree. Since you have two module subtrees on your system, this can lead to some interesting quirks :) In some cases Perl will report that it couldn't find a module that you *know* is installed, while in other cases it will quietly use the "wrong" module. The solution, such as it is, is to get rid of one of those subtrees, so that you only have one set of modules on your system. If you intend to use 5.8.0 from now on, delete the 5.6.1 subtree (including all of its modules). This means getting rid of both /usr/lib/perl5/5.6.1 and /usr/lib/perl/site_perl/5.6.1. After that, however, you'll discover that the module set that you have installed under 5.8.0 is "incomplete"--Perl was silently using some of the modules from the 5.6.1 subtree. To repair your setup, you just need to use CPAN to fetch new versions of the missing modules, which are now guaranteed to be installed under the 5.8.0 subtree :) As a peace-of-mind check, start with "install Bundle::CPAN" and then go through the list of module prerequisites for amavisd-new and SpamAssassin, trying to install those modules via CPAN. This should catch any modules that may be missing, and reassure you that your Perl installation's integrity is restored. It sounds like a pain, and I agree that there ought to be a better way to upgrade Perl versions without having to go through this hassle. And perhaps there is--anyone out there know an easier way? Robert LeBlanc Renaissoft, Inc. |