Модули Perl не распознаются

#perl #ubuntu #bioinformatics #cpan

Вопрос:

Я пытаюсь убежать unitas_1.7.8.pl, биоинформационное программное обеспечение, доступное здесь. Важно отметить, что в прошлом я много раз успешно использовал это программное обеспечение на этой машине ubuntu. Теперь, когда я выполняю команду

 perl ~/scripts/unitas_1.7.0.pl -threads 24 -s homo_sapiens -i PCR_Primer_11_S11_L001_R1_001.trim.lng ...
 

Я получаю ошибку

 Perl module LWP::Simple is not installed on this machine!
Perl module Archive::Extract (in core since 2007-07-07) is not installed on this machine!
Perl modules are available for download at http://www.cpan.org/

If you have CPAN installed try the following:
 cpan
 install Archive::Extract
 exit

If you are on MAC or UNIX you should run cpan with sudo:
 sudo cpan
 install Archive::Extract
 exit
 

Я следовал этим инструкциям, обновил И переустановил cpan (хотя знаю, что все должно быть в порядке) без видимых проблем. Единственное, что я могу вспомнить, что изменилось с тех пор, как я в последний раз успешно использовал unitas,-это то, что сервер был жестко перезагружен месяц назад.

Подробные сведения:

 Distributor ID: Ubuntu
Description:    Ubuntu 20.04.2 LTS
Release:        20.04
Codename:       focal
$ cpan --version
Loading internal logger. Log::Log4perl recommended for better logging
/home/user/miniconda3/bin/cpan version 1.64 calling Getopt::Std::getopts (version 1.12 [paranoid]),
running under Perl version 5.30.3.
  [Now continuing due to backward compatibility and excessive paranoia.
   See 'perldoc Getopt::Std' about $Getopt::Std::STANDARD_HELP_VERSION.]
Nothing to install!

$ type -p perl; perl -M5.010 -e'say "$_: $ENV{$_}" for sort grep /^PERL/, keys(%ENV)'; echo 'o conf' | cpan
/home/stewart/miniconda3/bin/perl
[...]
    make               [/usr/bin/make]
    make_arg           []
    make_install_arg   []
    make_install_make_command [/usr/bin/make]
    makepl_arg         [INSTALLDIRS=site]
    mbuild_arg         []
    mbuild_install_arg []
    mbuild_install_build_command [./Build]
    mbuildpl_arg       [--installdirs site]
[...]
$ perl -MLWP::Simple -E 'say $INC{"LWP/Simple.pm"}'
Can't locate LWP/Simple.pm in @INC (you may need to install the LWP::Simple module) (@INC contains: /home/stewart/miniconda3/lib/site_perl/5.30.3/x86_64-linux-thread-multi /home/stewart/miniconda3/lib/site_perl/5.30.3 /home/stewart/miniconda3/lib/5.30.3/x86_64-linux-thread-multi /home/stewart/miniconda3/lib/5.30.3 .).
BEGIN failed--compilation aborted.
$ head -n 1 "$( type -p cpan )"
#!/home/stewart/miniconda3/bin/perl
$ perl -MLWP::Simple -e'print "okn"'
Can't locate LWP/Simple.pm in @INC (you may need to install the LWP::Simple module) (@INC contains: /home/stewart/miniconda3/lib/site_perl/5.30.3/x86_64-linux-thread-multi /home/stewart/miniconda3/lib/site_perl/5.30.3 /home/stewart/miniconda3/lib/5.30.3/x86_64-linux-thread-multi /home/stewart/miniconda3/lib/5.30.3 .).
BEGIN failed--compilation aborted.
 

текущее состояние LWP::Простое и архивное::Извлечение

 $ sudo cpan install LWP::Simple
Loading internal logger. Log::Log4perl recommended for better logging
Reading '/root/.cpan/Metadata'
  Database was generated on Tue, 07 Sep 2021 08:55:47 GMT
LWP::Simple is up to date (6.56).
$ sudo cpan install Archive::Extract
Loading internal logger. Log::Log4perl recommended for better logging
Reading '/root/.cpan/Metadata'
  Database was generated on Tue, 07 Sep 2021 08:55:47 GMT
Archive::Extract is up to date (0.88).
$ sudo cpan LWP::Simple
Loading internal logger. Log::Log4perl recommended for better logging
Reading '/root/.cpan/Metadata'
  Database was generated on Tue, 07 Sep 2021 08:55:47 GMT
LWP::Simple is up to date (6.56).
 

Комментарии:

1. Пожалуйста, предоставьте результаты type -p perl; perl -M5.010 -e'say "$_: $ENV{$_}" for sort grep /^PERL/, keys(%ENV)'; echo 'o conf' | cpan

2. «Я следовал этим инструкциям , обновил и переустановил cpan …» : Они не просят вас переустановить cpan , а установить модули LWP::Simple и Archive::Extract . Ты пробовал это сделать?

3. Я добавил вывод, как просил @ikegami, и я также попытался установить каждый из этих модулей по отдельности, но все они вернулись, сказав, что они уже установлены правильно.

4. «.. все они вернулись, сказав, что они уже были правильно установлены» : Каков результат perl -MLWP::Simple -E 'say $INC{"LWP/Simple.pm"}'

5. Ещё один: head -n 1 "$( type -p cpan )"

Ответ №1:

Если у вас уже есть Миниконда, то вам следует установить ее с помощью канала Bioconda в изолированной среде. Ваша установка Perl из conda мешает работе модулей CPAN вашей системы:

 conda create -n unitas -c bioconda unitas
conda activate unitas

unitas.pl -threads 24 -s homo_sapiens -i PCR_Primer_11_S11_L001_R1_001.trim.lng ...

conda deactivate
 

Комментарии:

1. На самом деле это не сработало для меня, я получил ту же ошибку, что и раньше, даже в среде conda. Я предполагаю, что в conda был бы способ устранения неполадок, если бы я попытался установить модули или что-то в этом роде. Что сработало, так это вызов системного perl следующим образом: /usr/bin/perl5.30.0 ~/scripts/unitas_1.7.0.pl …

Ответ №2:

Ни одно из предложенных решений не сработало для меня, за исключением вызова perl непосредственно из другого каталога (в котором он уже был установлен).

 /usr/bin/perl5.30.0 ~/scripts/unitas_1.7.0.pl ...
 

Возможно, есть способ переключить perl по умолчанию, используемый при вызове в этот каталог с помощью $PATH, но пока я нашел этот обходной путь. Спасибо всем за вашу помощь.