问题
For some reason, whenever I run any Perl module (like cpanm), I've been getting this response:
ListUtil.c: loadable library and perl binaries are mismatched (got
handshake key 0xdb00080, needed 0xdb80080)
I'm not sure why this is happening. There doesn't seem to be any additional stacktrace, and even though there have been numerous bug reports and questions on this error, I was unable to find a solution. I'm running Ubuntu 17.04.
Edit: I'm running the default installation of Perl that ships with Ubuntu.
回答1:
This may happen when perl or perl modules are installed separately along side the official packages. Environment variable can be used to switch to a different perl installation.
To find out if that is the case run:
env | grep PERL
Having PERL5LIB
or PERL_LOCAL_LIB_ROOT
in the output might cause the issue. Try unsetting the environment variables and remove them from your ~/.bashrc
file or equivalent shell rc file.
回答2:
Derived from Bert Hekman, answered Jul 5 at 8:22:
env PERL5LIB= PERL_LOCAL_LIB_ROOT= cpan
did the trick for me as a quick and dirty solution.
回答3:
Ok, turns out that a reboot did the trick. Guess I should have turned it off and on before I posted here...
来源:https://stackoverflow.com/questions/45000585/listutil-c-loadable-library-and-perl-binaries-are-mismatched-got-handshake-key