Я пытаюсь установить модули perl через cpanm внутри среды conda с установленным perl. Среда conda была построена со следующим определением:
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
Среда получается со следующими установленными пакетами:
# 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
Conda env был активирован с помощью:
source /igatech/rd/dev/miniconda3/bin/activate
conda activate perl_env
Затем из оболочки:
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)
Затем попробуйте установить пакеты forks с помощью 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.
Более подробно рассмотрим ошибку:
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.
То же самое происходит при установке различных пакетов perl (DBI). У меня не очень получается побороть эту ошибку поэтому очень прошу помощи, спасибо за совет.
Да, ты прав! При активации conda perl_env
у меня было странное поведение. Если я наберу:
which perl
/usr/bin/perl
если я наберу:
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
...
Честно говоря известно, что в моей системе команда which
ведет себя странно. Не хотелось бы, чтобы это было причиной проблемы...
PS: conda env 4520f5b9
такой же, как perl_env
"/usr/bin/perl" -MExtUtils::Command::MM -e ....
: Похоже, что на нем работает системный perl/usr/bin/perl
, а не тот perl, который вы установили с помощью conda. Что показывает/usr/bin/perl --version
? Если вы активируете среду condaconda activate perl_env
, а затем запуститеwhich perl
иperl --version
, что получится для них? - person Håkon Hægland   schedule 14.01.2021