Go nuclear on Gentoo's Perl

When Perl starts halting your Gentoo update process, sometimes the machete is a better option than the scalpel.

It had been several weeks since I'd last updated my Gentoo machine, and I found that several GNOME packages were failing with the following error:

checking for XML::Parser... configure: error: XML::Parser perl module is required for intltool

After exploring the usual avenues of revdep-rebuild and re-emerging the XML-Parser and expat, no complete solution to the failed updates was found.

Gentoo comes armed with the perl-cleaner utility that allows easy rebuilding of Perl-dependent packages.

It was time to get nuclear. Rather than fiddling around, trying to find the offending bad links and modules, I simply used:

perl-cleaner --reallyall

After rebuilding over 200 Perl-dependent packages, many of which were virtual packages and involved no actual compilation, and giving the machine an hour or so to complete the process, the GNOME updates emerged without any further issues.

Such are the ways of a source-based distribution.


Some would say that it is a long way from software engineering to journalism, others would correctly argue that it is a mere 10 metres according to the floor plan.During his first five years with CBS Interactive, Chris started his journalistic advent...

Justin James
Justin James

... on FreeBSD. It's not Gentoo or source-distro specific. It is REALLY annoying, and it is one of those things that makes me feel really unhappy with *Nix. J.Ja


I seem to recall seeing errors similar to that on an rpm-based distribution. Would it be the same problem? Would there be some way to recompile dependent files as simple as perl-cleaner? Or would similarly worded messages on an rpm system relate to something entirely different? I'm pretty sure those errors were not associated with any update tools, but at least one time I saw "parser" in an error I was trying to compile and install an app from source. Great tip, by the way. I've steered clear of gentoo for the most part because somewhere along the road I'd run into problems I just couldn't fathom. Time to give it another shot...

Editor's Picks