Managing Perl Modules on Arch

Posted on Tue 13 June 2017 in Arch, Perl

Ran into a bit of a problem yesterday on Arch after upgrading Perl.
Never really had any problems up to this point, but this was a big one and a lesson was definitely learned - use the Arch repositories to manage Perl modules as much as possible.

What happened was that I had several modules installed on my system through the very convenient cpanminus and never gave any thought as to what would happen if the system Perl was upgraded past what these modules were built for. Well, it turns out you get something like this:

Encode.c loadable library and perl binaries are mismatched

To be fair, I ran into this before but it was only for a single, fairly small module so all I had to to was reinstall it with cpanminus, but this time it also affected Encode and a few other large libraries. Which meant I couldn't even run cpanminus anymore...

The fix was a bit of a pain, but was able to get everything back up and running in just a few minutes by deleting the contents of site_perl and then reinstalling my modules with pacman and pacuar.

# rm -fr /usr/lib/perl5/site_perl
# mkdir /usr/lib/perl5/site_perl
# rm -fr /usr/share/perl5/site_perl
# mkdir /usr/share/perl5/site_perl