After perl upgrade: "Can't locate XML/Parser.pm in @INC"

Markus Hoenicka markus.hoenicka at mhoenicka.de
Tue Nov 8 15:51:53 UTC 2016


On 2016-11-08 16:27 Niklaas Baudet von Gersdorff complained via 
freebsd-questions:
> I upgraded perl and afterwards I got
> 
>   Can't locate XML/Parser.pm in @INC
> 
> when executing some munin plugin:
> 
>   Can't locate XML/Parser.pm in @INC (you may need to install the
>   XML::Parser module) (@INC contains:
>   /usr/local/lib/perl5/site_perl/mach/5.20
>   /usr/local/lib/perl5/site_perl /usr/local/lib/perl5/5.20/mach
>   /usr/local/lib/perl5/5.20 /usr/local/lib/perl5/site_perl/5.20
>   /usr/local/lib/perl5/site_perl/5.20/mach .) at
>   /usr/local/etc/munin/plugins/varnish4_bad line 99.
> 
> But it's there:
> 
>   $ pkg info | grep ^p5- | grep -i parser
> 
>   p5-HTML-Parser-3.72            Perl5 module for parsing HTML 
> documents
>   p5-TimeDate-2.30_2,1           Perl5 module containing a
> better/faster date parser for absolute dates
>   p5-XML-Parser-2.44             Perl extension interface to James
> Clark's XML parser, expat
> 
>   $ find /usr/local/lib/perl5/ -iname parser
> 
>   /usr/local/lib/perl5/5.20/TAP/Parser
>   /usr/local/lib/perl5/site_perl/mach/5.20/auto/HTML/Parser
>   /usr/local/lib/perl5/site_perl/mach/5.24/auto/XML/Parser
>   /usr/local/lib/perl5/site_perl/mach/5.24/XML/Parser
>   /usr/local/lib/perl5/5.24/TAP/Parser
> 
>   $ pkg info | grep ^perl
> 
>   perl5-5.20.3_15                Practical Extraction and Report 
> Language
>   perl5.24-5.24.1.r4             Practical Extraction and Report 
> Language
> 
> Did I miss something when upgrading perl?
> 
>     Niklaas
> _______________________________________________
> freebsd-questions at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-questions
> To unsubscribe, send any mail to 
> "freebsd-questions-unsubscribe at freebsd.org"

Hi,
your XML/Parser module is installed in .../mach/5.24/... but your Perl 
include path contains only the older versions .../5.20/... . So, Perl 
rightfully complains that it's not "there". You seem to have two Perl 
distributions installed in parallel, and some modules belong to the old, 
others to the newer Perl. Unless a manual cleanup (deinstalling 5.20 and 
associated modules) is successful, it might be prudent to deinstall all 
things Perl and reinstall the new version with all the modules you need.

regards,
Markus

-- 
Markus Hoenicka
http://www.mhoenicka.de
AQ score 38



More information about the freebsd-questions mailing list