Search code examples
perlperl-module

Is version.pm available in CPAN any longer?


I am trying to find the Perl Module version.pm to fix the error below I am receiving while trying to install module CPAN-Meta-Requirements-2.133. But I don't see version.pm, the only one I see is Version.PM which is obviously not the one Perl is looking for. Can anyone point to where I can get this version or how I can fix this dependency if version.pm is no longer available?

Perl Version: v5.16.3

OS: GNU/Linux x86_64 x86_64 x86_64

Error:

Can't locate version.pm in @INC (@INC contains:    # Line breaks added
   /root/CPAN-Meta-Requirements-2.133/blib/lib     # for readability
   /root/CPAN-Meta-Requirements-2.133/blib/arch
   /usr/local/lib64/perl5
   /usr/local/share/perl5
   /usr/lib64/perl5/vendor_perl
   /usr/share/perl5/vendor_perl
   /usr/lib64/perl5
   /usr/share/perl5
   .) at (eval 1) line 2.
BEGIN failed--compilation aborted at (eval 1) line 2.
BEGIN failed--compilation aborted at /root/CPAN-Meta-Requirements-2.133/blib/lib/CPAN/Meta/Requirements.pm line 48.
Compilation failed in require at t/accepts.t line 4.
BEGIN failed--compilation aborted at t/accepts.t line 4.
t/accepts.t ............ Dubious, test returned 255 (wstat 65280, 0xff00)
No subtests run

Solution

  • OK, so first: your link is to CPAN/Version.pm. This is very different than version.pm. Directory names and the path relative to Perl's include directory are very important to Perl, and putting a .pm file in the wrong location relative to the include path can break Perl pretty badly.

    Second: because of that, never install Perl modules manually. Use cpanm instead:

    curl -L https://cpanmin.us | perl - --sudo App::cpanminus # Omit --sudo if your perl isn't installed as root
    cpanm version
    

    Third: the version.pm that you want is this one: https://metacpan.org/pod/distribution/version/lib/version.pod, in the JPEACOCK/version-0.9912 distribution.