简体   繁体   中英

Unable to install perl modules via cpanm in conda environments

I'm trying to install perl modules via cpanm inside conda environment with perl installed. The conda environment was build with following definition:

name: perl_env

channels:
  - bioconda
  - conda-forge
  - defaults

dependencies:
  - perl=5.26
  - perl-app-cpanminus
  - perl-local-lib
  - gcc_impl_linux-64
  - gxx_linux-64
  - openmpi=4.1.0

The environment results with the following packages installed:

# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                 conda_forge    conda-forge
_openmp_mutex             4.5                       1_gnu    conda-forge
binutils_impl_linux-64    2.35.1               h193b22a_1    conda-forge
binutils_linux-64         2.35                hc3fd857_29    conda-forge
gcc_impl_linux-64         9.3.0               h28f5a38_17    conda-forge
gcc_linux-64              9.3.0               h7247604_29    conda-forge
gxx_impl_linux-64         9.3.0               h53cdd4c_17    conda-forge
gxx_linux-64              9.3.0               h0d07fa4_29    conda-forge
kernel-headers_linux-64   2.6.32              h77966d4_13    conda-forge
ld_impl_linux-64          2.35.1               hea4e1c9_1    conda-forge
libgcc-devel_linux-64     9.3.0               hfd08b2a_17    conda-forge
libgcc-ng                 9.3.0               h5dbcf3e_17    conda-forge
libgfortran-ng            9.3.0               he4bcb1c_17    conda-forge
libgfortran5              9.3.0               he4bcb1c_17    conda-forge
libgomp                   9.3.0               h5dbcf3e_17    conda-forge
libstdcxx-devel_linux-64  9.3.0               h4084dd6_17    conda-forge
libstdcxx-ng              9.3.0               h2ae2ef3_17    conda-forge
mpi                       1.0                     openmpi    conda-forge
openmpi                   4.1.0                h9b22176_1    conda-forge
perl                      5.26.2            h36c2ea0_1008    conda-forge
perl-app-cpanminus        1.7044                  pl526_1    bioconda
perl-carp                 1.38                    pl526_3    bioconda
perl-constant             1.33                    pl526_1    bioconda
perl-cpan-meta            2.150010                pl526_0    bioconda
perl-cpan-meta-requirements 2.140                   pl526_0    bioconda
perl-cpan-meta-yaml       0.018                   pl526_0    bioconda
perl-data-dumper          2.173                   pl526_0    bioconda
perl-encode               2.88                    pl526_1    bioconda
perl-exporter             5.72                    pl526_1    bioconda
perl-extutils-cbuilder    0.280230                pl526_1    bioconda
perl-extutils-makemaker   7.36                    pl526_1    bioconda
perl-extutils-manifest    1.72                    pl526_0    bioconda
perl-extutils-parsexs     3.35                    pl526_0    bioconda
perl-file-path            2.16                    pl526_0    bioconda
perl-file-temp            0.2304                  pl526_2    bioconda
perl-getopt-long          2.50                    pl526_1    bioconda
perl-ipc-cmd              1.02                    pl526_0    bioconda
perl-json-pp              4.04                    pl526_0    bioconda
perl-local-lib            2.000024                pl526_0    bioconda
perl-locale-maketext-simple 0.21                    pl526_2    bioconda
perl-module-build         0.4224                  pl526_3    bioconda
perl-module-corelist      5.20190524              pl526_0    bioconda
perl-module-load          0.32                    pl526_1    bioconda
perl-module-load-conditional 0.68                    pl526_2    bioconda
perl-module-metadata      1.000036                pl526_0    bioconda
perl-params-check         0.38                    pl526_1    bioconda
perl-parent               0.236                   pl526_1    bioconda
perl-perl-ostype          1.010                   pl526_1    bioconda
perl-scalar-list-utils    1.52            pl526h516909a_0    bioconda
perl-text-abbrev          1.02                    pl526_0    bioconda
perl-text-parsewords      3.30                    pl526_0    bioconda
perl-version              0.9924                  pl526_0    bioconda
sysroot_linux-64          2.12                h77966d4_13    conda-forge
zlib                      1.2.11            h516909a_1010    conda-forge

The conda env was activated with:

source /igatech/rd/dev/miniconda3/bin/activate
conda activate perl_env

Then from the shell:

eval $(perl -I/igatech/rd/dev/snakemake-workflows/annotation-maker_p/local/perl5/lib/perl5 -Mlocal::lib=/igatech/rd/dev/snakemake-workflows/annotation-maker_p/local/perl5)

Then try install forks packages with cpanm:

env PERL5LIB="" PERL_LOCAL_LIB_ROOT="" PERL_MM_OPT="" PERL_MB_OPT="" cpanm --force --notest forks

--> Working on forks
Fetching http://www.cpan.org/authors/id/R/RY/RYBSKEJ/forks-0.36.tar.gz ... OK
Configuring forks-0.36 ... OK
==> Found dependencies: Acme::Damn
--> Working on Acme::Damn
Fetching http://www.cpan.org/authors/id/I/IB/IBB/Acme-Damn-0.08.tar.gz ... OK
Configuring Acme-Damn-0.08 ... OK
Building Acme-Damn-0.08 ... FAIL
! Installing Acme::Damn failed. See /home/mvidotto/.cpanm/work/1610645810.24326/build.log for details. Retry with --force to force install it.
! Installing the dependencies failed: Module 'Acme::Damn' is not installed
! Bailing out the installation for forks-0.36.

Looking at the error in more details:

tail /home/mvidotto/.cpanm/work/1610645810.24326/build.log


cp Damn.pm blib/lib/Acme/Damn.pm
Running Mkbootstrap for Damn ()
chmod 644 "Damn.bs"
"/usr/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- Damn.bs blib/arch/auto/Acme/Damn/Damn.bs 644
"/usr/bin/perl" "/igatech/rd/dev/snakemake-workflows/annotation-maker_p/tests/snakemake/.snakemake/conda/4520f5b9/lib/site_perl/5.26.2/ExtUtils/xsubpp"  -typemap '/igatech/rd/dev/snakemake-workflows/annotation-maker_p/tests/snakemake/.snakemake/conda/4520f5b9/lib/5.26.2/ExtUtils/typemap'  Damn.xs > Damn.xsc
Can't locate object method "new" via package "ExtUtils::ParseXS" at /igatech/rd/dev/snakemake-workflows/annotation-maker_p/tests/snakemake/.snakemake/conda/4520f5b9/lib/site_perl/5.26.2/ExtUtils/xsubpp line 51.
make: *** [Damn.c] Error 255
-> FAIL Installing Acme::Damn failed. See /home/mvidotto/.cpanm/work/1610645810.24326/build.log for details. Retry with --force to force install it.
-> FAIL Installing the dependencies failed: Module 'Acme::Damn' is not installed
-> FAIL Bailing out the installation for forks-0.36.

The same happens while installing different perl packages (DBI). I am not really able to overcome this error so I strongly ask for help, thank you in advice.


Yes, you are right! Within the activate conda perl_env I got strange behaviours. If I type:

which perl

/usr/bin/perl

if I type:

command -v perl

/igatech/rd/dev/snakemake-workflows/annotation-maker_p/tests/snakemake/.snakemake/conda/4520f5b9/bin/perl

or

whereis perl

perl: /usr/bin/perl /igatech/rd/dev/snakemake-workflows/annotation-maker_p/tests/snakemake/.snakemake/conda/4520f5b9/bin/perl /usr/share/man/man1/perl.1.gz

If I do:

perl --version

This is perl 5, version 26, subversion 2 (v5.26.2) built for x86_64-linux-thread-multi

Copyright 1987-2018, Larry Wall
...

or If I do:

/usr/bin/perl --version

This is perl 5, version 16, subversion 3 (v5.16.3) built for x86_64-linux-thread-multi
(with 40 registered patches, see perl -V for more detail)

Copyright 1987-2012, Larry Wall
...

To be honest it's known that in my system which command behaves strangely. I wouldn't like that this was the cause of the problem...

PS: conda env 4520f5b9 is same as perl_env

I can try answer the first part of the question: How to use the correct perl when installing packages in the conda environment. I am on Ubuntu 20.04:

  • First I installed Anaconda into /home/hakon/anaconda3
  • Then I created a test environment:
$ conda create --name perl_test
$ conda activate perl_test
  • Installed perl 5.26.2 into the environment:
$ conda install -c anaconda perl
  • Initialized cpan (this assumes that I did not have any previous cpan configuration ( ~/.cpan/ ) and local lib ( ~/perl5/ ) set up in my home directory). Choose the local::lib option below:
$ cpan
Loading internal null logger. Install Log::Log4perl for logging messages
Sorry, we have to rerun the configuration dialog for CPAN.pm due to
some missing parameters. Configuration will be written to
 <</home/hakon/.cpan/CPAN/MyConfig.pm>>


CPAN.pm requires configuration, but most of it can be done automatically.
If you answer 'no' below, you will enter an interactive dialog for each
configuration option instead.

Would you like to configure as much as possible automatically? [yes] 

 <install_help>

Warning: You do not have write permission for Perl library directories.

To install modules, you need to configure a local Perl library directory or
escalate your privileges.  CPAN can help you by bootstrapping the local::lib
module or by configuring itself to use 'sudo' (if available).  You may also
resolve this problem manually if you need to customize your setup.

What approach do you want?  (Choose 'local::lib', 'sudo' or 'manual')
 [local::lib]           


Autoconfiguration complete.

Attempting to bootstrap local::lib...

Writing /home/hakon/.cpan/CPAN/MyConfig.pm for bootstrap...
commit: wrote '/home/hakon/.cpan/CPAN/MyConfig.pm'
Fetching with HTTP::Tiny:
http://www.cpan.org/authors/01mailrc.txt.gz
Reading '/home/hakon/.cpan/sources/authors/01mailrc.txt.gz'
............................................................................DONE
Fetching with HTTP::Tiny:
http://www.cpan.org/modules/02packages.details.txt.gz
Reading '/home/hakon/.cpan/sources/modules/02packages.details.txt.gz'
  Database was generated on Thu, 14 Jan 2021 19:17:03 GMT
  HTTP::Date not available
.............
  New CPAN.pm version (v2.28) available.
  [Currently running version is v2.18]
  You might want to try
    install CPAN
    reload cpan
  to both upgrade CPAN.pm and run the new version without leaving
  the current session.


...............................................................DONE
Fetching with HTTP::Tiny:
http://www.cpan.org/modules/03modlist.data.gz
Reading '/home/hakon/.cpan/sources/modules/03modlist.data.gz'
DONE
Writing /home/hakon/.cpan/Metadata
Fetching with HTTP::Tiny:
http://www.cpan.org/authors/id/H/HA/HAARG/local-lib-2.000024.tar.gz
Fetching with HTTP::Tiny:
http://www.cpan.org/authors/id/H/HA/HAARG/CHECKSUMS
Checksum for /home/hakon/.cpan/sources/authors/id/H/HA/HAARG/local-lib-2.000024.tar.gz ok
'YAML' not installed, will not store persistent state
Configuring H/HA/HAARG/local-lib-2.000024.tar.gz with Makefile.PL
Attempting to create directory /home/hakon/perl5

Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for local::lib
Writing MYMETA.yml and MYMETA.json
  HAARG/local-lib-2.000024.tar.gz
  /home/hakon/anaconda3/envs/perl_test/bin/perl Makefile.PL --bootstrap -- OK
Running make for H/HA/HAARG/local-lib-2.000024.tar.gz
cp lib/POD2/DE/local/lib.pod blib/lib/POD2/DE/local/lib.pod
cp lib/local/lib.pm blib/lib/local/lib.pm
cp lib/lib/core/only.pm blib/lib/lib/core/only.pm
cp lib/POD2/PT_BR/local/lib.pod blib/lib/POD2/PT_BR/local/lib.pod
Manifying 4 pod documents
  HAARG/local-lib-2.000024.tar.gz
  /bin/make -- OK
Running make test
PERL_DL_NONLAZY=1 "/home/hakon/anaconda3/envs/perl_test/bin/perl" "-I/home/hakon/perl5/lib/perl5" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/bad_variables.t ...... ok   
t/carp-mismatch.t ...... ok   
t/classmethod.t ........ ok   
t/de-dup.t ............. ok   
t/lib-core-only.t ...... ok   
t/pipeline.t ........... ok   
t/shell.t .............. ok       
t/stackable.t .......... ok     
t/subroutine-in-inc.t .. ok   
t/taint-mode.t ......... ok   
All tests successful.
Files=10, Tests=196,  1 wallclock secs ( 0.04 usr  0.01 sys +  0.93 cusr  0.28 csys =  1.26 CPU)
Result: PASS
  HAARG/local-lib-2.000024.tar.gz
  /bin/make test -- OK
Running make install
Manifying 4 pod documents
Installing /home/hakon/perl5/lib/perl5/POD2/PT_BR/local/lib.pod
Installing /home/hakon/perl5/lib/perl5/POD2/DE/local/lib.pod
Installing /home/hakon/perl5/lib/perl5/local/lib.pm
Installing /home/hakon/perl5/lib/perl5/lib/core/only.pm
Installing /home/hakon/perl5/man/man3/lib::core::only.3
Installing /home/hakon/perl5/man/man3/local::lib.3
Installing /home/hakon/perl5/man/man3/POD2::PT_BR::local::lib.3
Installing /home/hakon/perl5/man/man3/POD2::DE::local::lib.3
Appending installation info to /home/hakon/perl5/lib/perl5/x86_64-linux-thread-multi/perllocal.pod
  HAARG/local-lib-2.000024.tar.gz
  /bin/make install  -- OK

local::lib is installed. You must now add the following environment variables
to your shell configuration files (or registry, if you are on Windows) and
then restart your command line shell and CPAN before installing modules:

PATH="/home/hakon/perl5/bin${PATH:+:${PATH}}"; export PATH;
PERL5LIB="/home/hakon/perl5/lib/perl5${PERL5LIB:+:${PERL5LIB}}"; export PERL5LIB;
PERL_LOCAL_LIB_ROOT="/home/hakon/perl5${PERL_LOCAL_LIB_ROOT:+:${PERL_LOCAL_LIB_ROOT}}"; export PERL_LOCAL_LIB_ROOT;
PERL_MB_OPT="--install_base \"/home/hakon/perl5\""; export PERL_MB_OPT;
PERL_MM_OPT="INSTALL_BASE=/home/hakon/perl5"; export PERL_MM_OPT;

Would you like me to append that to /home/hakon/.bashrc now? [yes] no

Note that I answered "no" on the previous question.

commit: wrote '/home/hakon/.cpan/CPAN/MyConfig.pm'

You can re-run configuration any time with 'o conf init' in the CPAN shell
Terminal does not support AddHistory.

cpan shell -- CPAN exploration and modules installation (v2.18)
Enter 'h' for help.

cpan[1]> q
Terminal does not support GetHistory.
Lockfile removed.

*** Remember to add these environment variables to your shell config
    and restart your shell before running cpan again ***

PATH="/home/hakon/perl5/bin${PATH:+:${PATH}}"; export PATH;
PERL5LIB="/home/hakon/perl5/lib/perl5${PERL5LIB:+:${PERL5LIB}}"; export PERL5LIB;
PERL_LOCAL_LIB_ROOT="/home/hakon/perl5${PERL_LOCAL_LIB_ROOT:+:${PERL_LOCAL_LIB_ROOT}}"; export PERL_LOCAL_LIB_ROOT;
PERL_MB_OPT="--install_base \"/home/hakon/perl5\""; export PERL_MB_OPT;
PERL_MM_OPT="INSTALL_BASE=/home/hakon/perl5"; export PERL_MM_OPT;
  • Now I copied the generated local lib to the conda environment:
$ echo $CONDA_PREFIX
/home/hakon/anaconda3/envs/perl_test
$ mv ~/perl5 /home/hakon/anaconda3/envs/perl_test
  • Then configured the conda environment so that local lib is activated when the environment is activated:
$ mkdir -p $CONDA_PREFIX/etc/conda/activate.d
$ vim $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh
  • Add the following content to the previous env_vars.sh file:
export PATH="$CONDA_PREFIX/perl5/bin${PATH:+:${PATH}}"
export PERL5LIB="$CONDA_PREFIX/perl5/lib/perl5${PERL5LIB:+:${PERL5LIB}}";
export PERL_LOCAL_LIB_ROOT="$CONDA_PREFIX/perl5${PERL_LOCAL_LIB_ROOT:+:${PERL_LOCAL_LIB_ROOT}}";
export PERL_MB_OPT="--install_base \"$CONDA_PREFIX/perl5\""
export PERL_MM_OPT="INSTALL_BASE=$CONDA_PREFIX/perl5"
  • Restart the conda environment to load the above environment variables:
$ conda deactivate
$ conda activate perl_test
  • Install cpanm
$ cpan App::cpanminus
  • Install the module:
$ which cpanm
/home/hakon/anaconda3/envs/perl_test/perl5/bin/cpanm
$ cpanm forks
--> Working on forks
Fetching http://www.cpan.org/authors/id/R/RY/RYBSKEJ/forks-0.36.tar.gz ... OK
Configuring forks-0.36 ... OK
==> Found dependencies: Devel::Symdump, Acme::Damn, Sys::SigAction, List::MoreUtils
--> Working on Devel::Symdump
Fetching http://www.cpan.org/authors/id/A/AN/ANDK/Devel-Symdump-2.18.tar.gz ... OK
Configuring Devel-Symdump-2.18 ... OK
Building and testing Devel-Symdump-2.18 ... OK
Successfully installed Devel-Symdump-2.18
--> Working on Acme::Damn
Fetching http://www.cpan.org/authors/id/I/IB/IBB/Acme-Damn-0.08.tar.gz ... OK
Configuring Acme-Damn-0.08 ... OK
==> Found dependencies: Test::Exception
--> Working on Test::Exception
Fetching http://www.cpan.org/authors/id/E/EX/EXODIST/Test-Exception-0.43.tar.gz ... OK
Configuring Test-Exception-0.43 ... OK
==> Found dependencies: Sub::Uplevel
--> Working on Sub::Uplevel
Fetching http://www.cpan.org/authors/id/D/DA/DAGOLDEN/Sub-Uplevel-0.2800.tar.gz ... OK
Configuring Sub-Uplevel-0.2800 ... OK
Building and testing Sub-Uplevel-0.2800 ... OK
Successfully installed Sub-Uplevel-0.2800
Building and testing Test-Exception-0.43 ... OK
Successfully installed Test-Exception-0.43
Building and testing Acme-Damn-0.08 ... FAIL
! Installing Acme::Damn failed. See /home/hakon/.cpanm/work/1610661561.1411986/build.log for details. Retry with --force to force install it.
--> Working on Sys::SigAction
Fetching http://www.cpan.org/authors/id/L/LB/LBAXTER/Sys-SigAction-0.23.tar.gz ... OK
Configuring Sys-SigAction-0.23 ... OK
Building and testing Sys-SigAction-0.23 ... OK
Successfully installed Sys-SigAction-0.23
--> Working on List::MoreUtils
Fetching http://www.cpan.org/authors/id/R/RE/REHSACK/List-MoreUtils-0.430.tar.gz ... OK
Configuring List-MoreUtils-0.430 ... OK
==> Found dependencies: Exporter::Tiny, Test::LeakTrace
--> Working on Exporter::Tiny
Fetching http://www.cpan.org/authors/id/T/TO/TOBYINK/Exporter-Tiny-1.002002.tar.gz ... OK
Configuring Exporter-Tiny-1.002002 ... OK
Building and testing Exporter-Tiny-1.002002 ... OK
Successfully installed Exporter-Tiny-1.002002
--> Working on Test::LeakTrace
Fetching http://www.cpan.org/authors/id/L/LE/LEEJO/Test-LeakTrace-0.17.tar.gz ... OK
Configuring Test-LeakTrace-0.17 ... OK
Building and testing Test-LeakTrace-0.17 ... FAIL
! Installing Test::LeakTrace failed. See /home/hakon/.cpanm/work/1610661561.1411986/build.log for details. Retry with --force to force install it.
! Installing the dependencies failed: Module 'Test::LeakTrace' is not installed
! Bailing out the installation for List-MoreUtils-0.430.
! Installing the dependencies failed: Module 'List::MoreUtils' is not installed, Module 'Acme::Damn' is not installed
! Bailing out the installation for forks-0.36.
5 distributions installed

So this fails. If I try to install the failing module Acme::Damn manually:

$ wget https://cpan.metacpan.org/authors/id/I/IB/IBB/Acme-Damn-0.08.tar.gz
$ tar zxvf Acme-Damn-0.08.tar.gz
$ cd Acme-Damn-0.08
$ perl Makefile.PL
Checking if your kit is complete...
Looks good
Warning: prerequisite Test::Exception 0 not found.
Generating a Unix-style Makefile
Writing Makefile for Acme::Damn
Writing MYMETA.yml and MYMETA.json
$ make
cp Damn.pm blib/lib/Acme/Damn.pm
Running Mkbootstrap for Damn ()
chmod 644 "Damn.bs"
"/home/hakon/anaconda3/envs/perl_test/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- Damn.bs blib/arch/auto/Acme/Damn/Damn.bs 644
"/home/hakon/anaconda3/envs/perl_test/bin/perl" "/home/hakon/anaconda3/envs/perl_test/lib/5.26.2/ExtUtils/xsubpp"  -typemap '/home/hakon/anaconda3/envs/perl_test/lib/5.26.2/ExtUtils/typemap'  Damn.xs > Damn.xsc
mv Damn.xsc Damn.c
/tmp/build/80754af9/perl_1527832170752/_build_env/bin/x86_64-conda_cos6-linux-gnu-gcc -c  -I. -D_REENTRANT -D_GNU_SOURCE --sysroot=/tmp/build/80754af9/perl_1527832170752/_build_env/x86_64-conda_cos6-linux-gnu/sysroot -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -O2   -DVERSION=\"0.08\" -DXS_VERSION=\"0.08\" -fPIC --sysroot=/tmp/build/80754af9/perl_1527832170752/_build_env/x86_64-conda_cos6-linux-gnu/sysroot "-I/home/hakon/anaconda3/envs/perl_test/lib/5.26.2/x86_64-linux-thread-multi/CORE"   Damn.c
/bin/sh: 1: /tmp/build/80754af9/perl_1527832170752/_build_env/bin/x86_64-conda_cos6-linux-gnu-gcc: not found
make: *** [Makefile:337: Damn.o] Error 127

It shows that make tries to use a nonexistent C compiler:

 /tmp/build/80754af9/perl_1527832170752/_build_env/bin/x86_64-conda_cos6-linux-gnu-gcc

A clue to why this happens is given by the perl configuration data for cc :

$ perl -V | grep cc=./
    cc='/tmp/build/80754af9/perl_1527832170752/_build_env/bin/x86_64-conda_cos6-linux-gnu-gcc'

I think that when perl tries to compile an XS module it uses the same C compiler that was used to compile perl with. But in this case that compiler does not exist any more, since conda installed (downloaded) a pre-compiled perl (so the cc variable refers to a compiler on another machine, the machine that was used to compile perl with)

Probably this means that you cannot (should not) install XS modules with a downloaded precompiled perl. I would recommend that you build perl from source on the same machine instead.

Edit

My bad, it is actually possible to install the same compiler that was used to build perl by running:

$ conda install -c anaconda gcc_linux-64
$ which  x86_64-conda_cos6-linux-gnu-gcc
/home/hakon/anaconda3/envs/perl_test/bin/x86_64-conda_cos6-linux-gnu-gcc

But still I am not able to make perl Makefile.PL use that version yet..

Edit 2

Added follow-up question .

Edit 3

After applying the patch in the follow-up question , I was able to install the module:

$ cpanm forks
--> Working on forks
Fetching http://www.cpan.org/authors/id/R/RY/RYBSKEJ/forks-0.36.tar.gz ... OK
Configuring forks-0.36 ... OK
==> Found dependencies: Acme::Damn, List::MoreUtils
--> Working on Acme::Damn
Fetching http://www.cpan.org/authors/id/I/IB/IBB/Acme-Damn-0.08.tar.gz ... OK
Configuring Acme-Damn-0.08 ... OK
Building and testing Acme-Damn-0.08 ... OK
Successfully installed Acme-Damn-0.08
--> Working on List::MoreUtils
Fetching http://www.cpan.org/authors/id/R/RE/REHSACK/List-MoreUtils-0.430.tar.gz ... OK
Configuring List-MoreUtils-0.430 ... OK
==> Found dependencies: Test::LeakTrace
--> Working on Test::LeakTrace
Fetching http://www.cpan.org/authors/id/L/LE/LEEJO/Test-LeakTrace-0.17.tar.gz ... OK
Configuring Test-LeakTrace-0.17 ... OK
Building and testing Test-LeakTrace-0.17 ... OK
Successfully installed Test-LeakTrace-0.17
Building and testing List-MoreUtils-0.430 ... OK
Successfully installed List-MoreUtils-0.430
Building and testing forks-0.36 ... OK
Successfully installed forks-0.36
4 distributions installed

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM