in reply to Re: Upgrading XS module to later version
in thread Upgrading XS module to later version

I ran into the same problem, when trying to install cpan Moose, it says that
Installing the dependencies failed: Installed version (1.55) of List:: +Util is not in range '1.56'
Trying to install List::Util with cpanm List::Util seems to work, it show the message
Successfully installed Scalar-List-Utils-1.60 (upgraded from 1.55)
But when then trying to run cpan Moose it complains again about error
Installing the dependencies failed: Installed version (1.55) of List:: +Util is not in range '1.56'
Obviously, cpanm did not upgrade List::Utils. but installed it in a different directory. When I check the installed packages, I get this
$ cpan -l |grep List::Util List::Util 1.55 List::Util::XS 1.55 Module::CoreList::Utils 5.20210520 List::Util 1.55 List::Util::XS 1.55 Module::CoreList::Utils 5.20210520 List::Util 1.55 List::Util::XS 1.55 site_perl::List::Util 1.60 site_perl::List::Util::XS 1.60 List::Util 1.60 List::Util::XS 1.60 List::Util 1.60 List::Util::XS 1.60 List::Util 1.55 List::Util::XS 1.55 Module::CoreList::Utils 5.20210520 List::Util 1.55 List::Util::XS 1.55
It is not clear to me how to ensure that the newer version should used.

Replies are listed 'Best First'.
Re^3: Upgrading XS module to later version
by marto (Cardinal) on Feb 11, 2022 at 15:44 UTC

    do you have multiple perls installed? Are you using perlbrew or local::lib? What does which cpan and which cpanm show?

      Yes, I've multiple versions of perl.
      There are the perl modules from the operation system (in my case Debian 10, or 11, I tested both)
      Then I've compiled Perl 5.32.1 and 5.34.0 from source, and I'm trying to install Moose as part of any of these version.
      The software will be installed as seperate packages on a computing cluster on an nfs-storage.

      I use neither perlbrew nor local::lib, but install from source with

      export PREFIX=/my/install/directory/perl/5.34.0/ ./Configure -des -Dprefix=$PREFIX \ -Dusethreads \ -Duseshrplib \ -Dinc_version_list=none make -j4 && make test && make install
      Once perl is installed, these environment variables are set:
      export PERL5LIB=$PREFIX/lib export PATH=$PREFIX/bin:$PATH export MANPATH=$PREFIX/man:$PATH export LD_LIBRARY_PATH=$PREFIX/lib:$LD_LIBRARY_PATH
      and cpan is installed with
      curl -L https://cpanmin.us | perl - App::cpanminus
      The command " which cpan cpanm " results in displaying the version in
      $PREFIX/bin/cpan $PREFIX/bin/cpanm

        What's the output of

        which perl which cpan which cpanm head -n 1 "$( which cpan )" head -n 1 "$( which cpanm )"
Re^3: Upgrading XS module to later version
by ikegami (Patriarch) on Feb 14, 2022 at 00:56 UTC
Re^3: Upgrading XS module to later version
by ikegami (Patriarch) on Feb 14, 2022 at 00:58 UTC

      This is solved now. The packages are installed in $PREFIX/lib/site_perl, and I had to set

      PERL5LIB=$PREFIX/lib/site_perl

      That seems to fix the issue.

      BTW: the information was quite difficult to find, because I did not see any documentation about that, but had to infer this from "man perlrun ->ENVIRONMENT" and from what cpan(m) is doing.

        Something's wrong with your build of Perl if it doesn't look in its own site lib dir!