Проблемы установки модуля Perl Bio::Perl
У меня возникают некоторые проблемы с установкой Bio-DB-HTS ( https://github.com/Ensembl/Bio-DB-HTS), необходимой для запуска сценария perl из клонированного репозитория git.
Информация о системе и Perl
Я на Mac OSx High Sierra v.10.13.6 и использую Perl 5, версия 18, Subversion 2 (v5.18.2). Я добавил эту информацию в свой оригинальный вопрос сейчас.
Исходная информация
При попытке выполнить локальную установку, в соответствии с инструкциями README, я получаю сообщение об ошибке...
git clone https://github.com/Ensembl/Bio-DB-HTS.git
cd Bio-DB-HTS-2.10
perl INSTALL.pl
lzma.h library header not found in /usr/include
Я попытался установить библиотеку LZMA, но обнаружил, что она действительно установлена и что заголовочный файл lzma.h просто отсутствует в пути /usr/include. Поскольку LZMA устарела и заменена на XZ, я установил библиотеку XZ
brew install xz
После быстрого поиска я нашел заголовок lzma.h в...
/usr/local/Cellar/xz/5.2.4/include/lzma.h
Главная проблема
Теперь я не уверен, что делать дальше, и если я что-то напутал, пытаясь обойти это. Так как / usr / include имеет каталог с ограниченным доступом, я добавил строку в сценарий INSTALL.pl, чтобы проверить наличие файла в обоих местах (что, вероятно, могло нарушить что-то в процессе анализа, поскольку я не изменил ничего, кроме если условие. Однако при запуске установки на этот раз я столкнулся с новой проблемой.
perl INSTALL.pl
BioPerl does not seem to be installed. Please install it and try again.
On Debian/Ubuntu systems you can do this with the command:
apt-get install bioperl
On other systems use the CPAN shell:
perl -MCPAN -e 'install Bio::Perl'
И именно в этом мои основные проблемы. При попытке установить Bio:Perl с помощью тестов cpan не удается на разных этапах, и я не уверен, какие из них являются основными. Последние строки из вывода
Result: FAIL
Failed 3/325 test programs. 16/19945 subtests failed.
CJFIELDS/BioPerl-1.007002.tar.gz
./Build test -- NOT OK
//hint// to see the cpan-testers results for installing this module,
try:
reports CJFIELDS/BioPerl-1.007002.tar.gz
Running Build install
make test had returned bad status, won't install without force
Я перенастроил cpan для автоматической установки зависимостей, как упоминалось здесь. Как мне указать CPAN для установки всех зависимостей?,
perl -MCPAN -Mlocal::lib=~/perl5 -e 'my $c = "CPAN::HandleConfig"; $c->load(doit => 1, autoconfig => 1); $c->edit(prerequisites_policy => "follow"); $c->edit(build_requires_install_policy => "yes"); $c->commit'
И попытался установить снова принудительно...
perl -f -MCPAN -e 'install Bio::Perl'
Но я просто получаю ту же ошибку
Result: FAIL
Failed 3/325 test programs. 16/19945 subtests failed.
CJFIELDS/BioPerl-1.007002.tar.gz
./Build test -- NOT OK
//hint// to see the cpan-testers results for installing this module,
try:
reports CJFIELDS/BioPerl-1.007002.tar.gz
Running Build install
make test had returned bad status, won't install without force
Когда я смотрю, какие модули были установлены с помощью...
cpan -l
Bio::DB::HTS 2.11
Bio::DB::HTS::ReadIterator 2.11
Bio::DB::HTS::VCF 2.11
Bio::DB::HTS::Faidx 2.11
Bio::DB::HTS::PileupWrapper 2.11
Bio::DB::HTS::Alignment 2.11
Bio::DB::HTS::ConfigData undef
.
.
.
Bio::DB::HTS::VCF::Iterator 2.11
Bio::DB::HTS::VCF::Row 2.11
Я вижу, что многие из тех, что мне нужны из пакета Bio-DB-HTS, присутствуют (при условии, что они были одной из успешных установок при установке Bio::Perl), но теперь он выдает ошибку
Can't locate Bio/SeqFeature/Lite.pm in @INC
Однако мне так и не удалось установить Bio:Seq или Bio:: Perl. У меня есть некоторые знания Perl, но в основном я работаю над Python, поэтому я немного растерялся, как действовать дальше.
Дополнительная информация
Мой cpan устанавливает модули в
/usr/local/perl
И я добавил путь к моей переменной среды
export PERL5LIB=/usr/local/perl
Отредактированная информация (неудачные тесты и ошибки) как ответ Шону
@Shawn, это длинный список ошибок, тестовых сбоев и рекомендуемых установок. Я могу опубликовать несколько примеров первой пары ошибок. Я не совсем уверен, на что смотреть.
Рекомендуемые установки
Checking prerequisites...
recommends:
* Algorithm::Munkres is not installed
* Array::Compare is not installed
* Bio::Phylo is not installed
* Convert::Binary::C is not installed
* GD is not installed
* Graph is not installed
* GraphViz is not installed
* HTML::TableExtract is not installed
* Inline::C (0.53) is installed, but we prefer to have 0.67
* PostScript::TextBlock is not installed
* SVG is not installed
* SVG::Graph is not installed
* Set::Scalar is not installed
* Sort::Naturally is not installed
* Spreadsheet::ParseExcel is not installed
* XML::DOM is not installed
* XML::DOM::XPath is not installed
* XML::Parser::PerlSAX is not installed
* XML::SAX::Writer is not installed
* XML::Twig is not installed
* YAML is not installed
Checking optional features...
EntrezGene............disabled
requires:
! Bio::ASN1::EntrezGene is not installed
MySQL Tests...........disabled
requires:
! DBD::mysql is not installed
Pg Tests..............disabled
requires:
! DBD::Pg is not installed
Вот краткий отчет об испытаниях. Я не печатал весь список неудачных тестов, так как он очень длинный. Но я могу видеть, что /LocalDB/SeqFeature_BDB.t является частью большинства неудачных тестов при просмотре подробного вывода.
Test Summary Report
-------------------
t/LocalDB/Fasta.t (Wstat: 1024 Tests: 109 Failed: 4)
Failed tests: 73, 91, 95, 101
Non-zero exit status: 4
t/LocalDB/Index/Index.t (Wstat: 20224 Tests: 36 Failed: 6)
Failed tests: 12-17
Non-zero exit status: 79
Parse errors: Bad plan. You planned 73 tests but ran 36.
t/LocalDB/Qual.t (Wstat: 1536 Tests: 56 Failed: 6)
Failed tests: 7-9, 49-50, 52
Non-zero exit status: 6
t/LocalDB/SeqFeature_BDB.t (Wstat: 0 Tests: 38 Failed: 4)
Failed tests: 17-19, 24
Parse errors: Bad plan. You planned 116 tests but ran 38.
t/Perl.t (Wstat: 512 Tests: 47 Failed: 16)
Failed tests: 28, 28, 28, 28-29, 29, 29, 29-30, 30, 30
30-31, 31, 31, 31
Non-zero exit status: 2
Parse errors: Tests out of sequence. Found (24) but expected (26)
Tests out of sequence. Found (25) but expected (27)
Tests out of sequence. Found (26) but expected (28)
Tests out of sequence. Found (26) but expected (29)
Tests out of sequence. Found (27) but expected (30)
Displayed the first 5 of 23 TAP syntax errors.
Re-run prove with the -p option to see them all.
t/RemoteDB/BioFetch.t (Wstat: 0 Tests: 83 Failed: 47)
Failed tests: 20-21, 21-22, 22-23, 23-24, 24-25, 25-26
26-27, 27-28, 28-29, 29-30, 30, 30, 30-31
31, 31, 31-32, 32, 32, 32-33, 33, 33, 33-34
34, 34, 34-35, 35, 35, 35-36, 36, 36, 36
Parse errors: Tests out of sequence. Found (4) but expected (6)
Tests out of sequence. Found (6) but expected (7)
Tests out of sequence. Found (7) but expected (8)
Tests out of sequence. Found (5) but expected (9)
Tests out of sequence. Found (6) but expected (10)
Displayed the first 5 of 79 TAP syntax errors.
Re-run prove with the -p option to see them all.
t/RemoteDB/GenBank.t (Wstat: 0 Tests: 658 Failed: 614)
Failed tests: 10-11, 11, 11-12, 12, 12-13, 13, 13-14
14, 14-15, 15, 15-16, 16, 16-17, 17, 17-18
18, 18-19, 19, 19, 19, 19, 19, 19-20, 20
20, 20, 20, 20, 20-21, 21, 21, 21, 21, 21
21-22, 22, 22, 22, 22, 22, 22-23, 23, 23
1 ответ
Спасибо всем, кто выручил, мне удалось в итоге разобраться. Я объясню процесс здесь от начала до конца, если у кого-то еще есть такая же проблема.
Вопрос, который я опубликовал, состоял в том, чтобы решить, как установить Bio::Perl с использованием CPAN, поскольку у меня были проблемы с неудачными тестами. Хотя у меня были некоторые проблемы с установкой Bio-DB-HTS (которые я решил до публикации), и я объясню, как мне удалось установить это также в случае, если кто-то сталкивался с той же самой проблемой.
Кажется, что пользователи Mac, как правило, имеют проблемы с отсутствующим заголовком lzma.h. В случае установки Bio-DB-HTS. Мне пришлось изменить строку в файле Bio-DB-HTS/INSTALL.pl, которая проверила наличие файла lzma.h. См. Ниже "Установка Bio-DB-HTS в Mac OSx" для получения инструкций.
Решающая установка Bio::Perl
По сути, я решил эту проблему путем переустановки / перенастройки моей установки CPAN. Хотя я полагаю, что проблема в конечном итоге была связана с некоторыми переменными среды, которые я не установил, поскольку я решил вручную отсортировать структуру каталогов CPAN, я рекомендую позволить CPAN сделать это для вас, используя опцию local:lib, так как она будет установлена или рассказать, как установить переменные среды в конце установки.
Я только установил одну из переменных среды ниже (PERL5LIB), которая, вероятно, была причиной моей ошибки. НОТА! что пути, которые вы видите ниже, специфичны для моей системы.
PATH="/Users/sjamal/perl5/bin${PATH:+:${PATH}}"; export PATH;
PERL5LIB="/Users/sjamal/perl5/lib/perl5${PERL5LIB:+:${PERL5LIB}}"; export PERL5LIB;
PERL_LOCAL_LIB_ROOT="/Users/sjamal/perl5${PERL_LOCAL_LIB_ROOT:+:${PERL_LOCAL_LIB_ROOT}}"; export PERL_LOCAL_LIB_ROOT;
PERL_MB_OPT="--install_base \"/Users/sjamal/perl5\""; export PERL_MB_OPT;
PERL_MM_OPT="INSTALL_BASE=/Users/sjamal/perl5"; export PERL_MM_OPT;
Если вы уже настроили его, как я, но что бы начать с чистого листа, вам нужно будет удалить папку CPAN, созданную для пользователя, на которого вы установили cpan.
/Users/<USERNAME>/.cpan
rm -rf /Users/<USERNAME>/.cpan
Теперь вы сможете выполнить команду cpan, как это было сделано в первом случае, и получите множество вопросов о том, как вы хотите настроить установку, и именно здесь вы сможете выбрать "local:lib" (если вы Вы можете выбрать sudo, вы также можете выбрать опцию 'sudo'). Я установил cpanm на основе нескольких рекомендаций, а также, поскольку он, по-видимому, вызывает меньше вопросов, а затем установил Bio::Perl. Хотя я должен упомянуть, что установка не прошла тестирование и отказалась от установки, поэтому мне пришлось запустить команду force для сборки Bio::Perl.
cpan -i App:cpanminus
cpanm --force Bio::Perl
Теперь вы должны установить Bio::Perl.
Установка Bio-DB-HTS на Mac OSx
Библиотека lzma устарела в Mac OSx, но была заменена библиотекой XZ, поэтому, если вам не хватает файла, вы также можете установить XZ с помощью brew. Если у вас не установлен brew, вы можете найти его здесь https://brew.sh/
brew install xz
Теперь у вас будет файл заголовка lzma.h в том месте, где XZ был установлен с помощью brew, в моем случае /usr/local/Cellar/xz/5.2.4/include/lzma.h.
git clone https://github.com/Ensembl/Bio-DB-HTS.git
cd Bio-DB-HTS-2.10
vim Bio-DB-HTS/INSTALL.pl
Итак, я изменил строку, используя vim...
-e '/usr/include/lzma.h' or die <<END;
в
-e '/usr/include/lzma.h' **|| '/usr/local/Cellar/xz/5.2.4/include/lzma.h'** or die <<END;
НОТА! Вы должны изменить путь к /usr/local/Cellar/xz/5.2.4/include/lzma.h, где находится пакет lzma.h в XZ, только что установленный с помощью brew. Однако я хочу уточнить, что это не решает ничего, кроме сообщения сценарию о том, что файл существует. Сценарий установки не сможет использовать файл (если это именно то, что ему нужно), поскольку в сценарии установки больше ничего не изменилось.
Теперь вы сможете установить Bio-DB-HTS, просто запустив скрипт perl, как показано ниже
cd Bio-DB-HTS-2.10
perl INSTALL.pl
Надеюсь, это поможет!
Сабри