Я уже некоторое время ударился об это, и мне нужна помощь.У меня есть хороший маленький пакет Perl, который я разработал.Работает отлично.Он имеет простую процедуру установки:
perl makefile.PL
make
make install
Я пытался написать свой первый рецепт conda, чтобы я мог в конечном итоге использовать его для создания пакета в galaxy, который автоматически устанавливается через bioconda.
Проблема в том, что описанной выше процедуры недостаточно для сценария conda build.sh, и я не знаю, как заставить строку shebang установленного сценария perl иметь правильный путь perl.Сначала я попробовал это:
perl Makefile.PL INSTALL_BASE=${PREFIX} INSTALLDIRS=site
make
make install
, основываясь на материалах, которые я видел в других рецептах, но это приводит к ошибке:
/Users/rleach/local/miniconda3/conda-bld/vcfsamplecompare_1538773699290/test_tmp/run_test.sh: /Users/rleach/local/miniconda3/conda-bld/vcfsamplecompare_1538773699290/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/bin/vcfSampleCompare.pl: /Users/rleach/local/miniconda3/conda-bld/vcfsamplecompare_1538773699290/_build: bad interpreter: No such file or directory
Tests failed for vcfsamplecompare-v2.005-pl526_0.tar.bz2 - moving package to /Users/rleach/local/miniconda3/conda-bld/broken
Я заметил в выводе сборки примечание, подобноеэто:
Renaming build prefix directory, /Users/rleach/local/miniconda3/conda-bld/vcfsamplecompare_1538773699290/_build_env to /Users/rleach/local/miniconda3/conda-bld/vcfsamplecompare_1538773699290/build_prefix_moved_vcfsamplecompare-v2.005-pl526_0_osx-64
Итак, я догадался, я добавил это после моего make install
:
sed -i.bak 's|_build_env|build_prefix_moved_vcfsamplecompare-v2.005-pl526_0_osx-64|g' ${PREFIX}/bin/vcfSampleCompare.pl
И это сработало!(Во всяком случае, это помогло мне справиться с первой ошибкой - теперь он жалуется на то, что модуль, который он также должен был установить, не находится в @INC. - По одной вещи за раз ...)
Проблема в том,Я не знаю, где найти строку "build_prefix_moved_vcfsamplecompare-v2.005-pl526_0_osx-64".Очевидно, это будет отличаться в разных системах.Если я предполагаю, что «build_prefix_moved_» является статическим, я знаю, какие переменные окружения будут давать мне «vcfsamplecompare», «v2.005» и «64» (возможно, даже «osx») - но я не могу найти ничего, что имеет значение »pl526_0 ", так что у меня, похоже, нет возможности полностью построить струну самостоятельно ...
Так в чем же здесь традиционная мудрость?Как мне указать путь к интерпретатору perl вверху скриптов в пакете?