Установка модуля Perl Bio::DB::Sam
Я пытаюсь установить модуль Perl Bio::DB::Sam
в моем домашнем каталоге на удаленном сервере.
Я скачал модуль, распаковал файлы и запустил:
perl Build.pl prefix=~/local
вот что происходит дальше:
This module requires samtools 0.1.10 or higher (samtools.sourceforge.net).
Please enter the location of the bam.h and compiled libbam.a files: **/some_places/samtools-0.1.19**
Found /some_places/samtools-0.1.19/bam.h and /some_places/samtools-0.1.19/libbam.a.
Created MYMETA.yml and MYMETA.json
Creating new 'Build' script for 'Bio-SamTools' version '1.39'
Далее, когда я пытаюсь запустить:
./Build
вот что я получаю:
Building Bio-SamTools
gcc -shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -o blib/arch/auto/Bio/DB/Sam/Sam.so lib/Bio/DB/Sam.o c_bin/bam2bedgraph.o -L/some_places/samtools-0.1.19 -lbam -lpthread -lz
/usr/bin/ld: /some_places/samtools-0.1.19/libbam.a(bgzf.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
/some_places/samtools-0.1.19/libbam.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
error building blib/arch/auto/Bio/DB/Sam/Sam.so from lib/Bio/DB/Sam.o c_bin/bam2bedgraph.o at ~/perl5/lib/perl5/ExtUtils/CBuilder/Base.pm line 323.
Я сделал Google возможные решения и попробовал пару, но они не работали, например --enable-shared OR export CXXFLAGS="$CXXFLAGS -fPIC"
,
У меня уже есть установленный Bioperl в моем домашнем каталоге.
Любая помощь будет оценена.
ура
4 ответа
Вот скрипт, который извлечет исходный код SAMtools и скомпилирует его, затем извлечет и скомпилирует привязки Perl.
wget http://sourceforge.net/projects/samtools/files/samtools/0.1.18/samtools-0.1.18.tar.bz2
tar xjf samtools-0.1.18.tar.bz2 && cd samtools-0.1.18
make CFLAGS=-fPIC
export SAMTOOLS=`pwd`
cpanm Bio::DB::Sam
Частично проблема, с которой вы, вероятно, столкнулись, заключается в том, что проект SAMtools недавно претерпел серьезную реорганизацию кода (и это, естественно, затруднило работу с привязками внешних языков).
Я исправил эту проблему, переделав samtools с параметром -fPIC
make clean
make CXXFLAGS=-fPIC CFLAGS=-fPIC CPPFLAGS=-fPIC
затем устанавливается с помощью cpan.
cpan[2]> install Bio::DB::Sam
[Решаемые]
wget http://sourceforge.net/projects/samtools/files/samtools/0.1.18/samtools-0.1.18.tar.bz2
tar xjf samtools-0.1.18.tar.bz2 && cd samtools-0.1.18
make CFLAGS=-fPIC
войти cpan
в терминал и введите
install Bio::DB::Sam
Будь осторожен:
Вы не можете использовать следующую команду:
perl -MCPAN -Mlocal:: lib -e 'CPAN:: install (Bio:: DB:: Sam)'
Вы можете использовать только cpan, а затем использовать
install Bio::DB::Sam
Я следовал инструкциям из файла README ниже Bio-SamTools-1.43, чтобы отредактировать Makefile в samtools 0.1.17. Затем для установки я использовал
perl -MCPAN -e установка оболочки Bio::DB::Sam
ПРОЧТИ МЕНЯ:
Это Perl-интерфейс для интерфейса выравнивания последовательностей SAMtools. Он работает ТОЛЬКО на версиях Samtools до 0.1.17. Он не работает в версии 1.0 или выше из-за серьезных изменений в структуре библиотеки.
См. http://samtools.sourceforge.net/ для документации samtools.
- ОДНОСТЕПНАЯ УСТАНОВКА
В корневом каталоге этого дистрибутива вы найдете скрипт INSTALL.pl. Запуск этого позволит загрузить последние версии этого модуля и SamTools во временный каталог, скомпилировать их, протестировать и установить. Просто запустите:
Perl INSTALL.pl
- МНОГОЭТАПНАЯ УСТАНОВКА
Для более традиционной установки требуется отдельно загрузить, распаковать и скомпилировать SAMtools 0.1.10 - 0.1.17 в некотором доступном каталоге. Ввод команды "make" в каталоге samtools обычно работает. SAMtools версии 0.1.18 и выше не работают с этой библиотекой.
Затем установите переменную среды SAMTOOLS, чтобы она указывала на этот каталог.
Вам также нужно будет установить Bio::Perl из CPAN.
Теперь запустите:
Perl Build.PL ./Build ./Build test (sudo) ./Build install
ПОИСК ПРОБЛЕМЫ:
Если у вас возникнут проблемы во время компиляции, вам может потребоваться отредактировать Build.PL так, чтобы extra_compiler_flags соответствовал настройкам CFLAGS и DFLAGS в Makefile Samtools. Вот некоторые общие проблемы:
- При создании этого модуля вы получаете сообщение об ошибке, подобное следующему: перемещение R_X86_64_32 против `локального символа 'не может быть использовано при создании общего объекта; перекомпилировать с -fPIC
Чтобы исправить это, отредактируйте Makefile в дистрибутиве Samtools, добавив "-fPIC" в строку CFLAGS. Пока вы работаете над этим, вы можете также избавиться от множества неиспользуемых предупреждений о переменных, которые появляются в последних версиях gcc. Модифицированные CFLAGS будут выглядеть так
CFLAGS= -g -Wall -Wno-unused -Wno-unused-result -O2 -fPIC #-m64 #-arch ppc
Затем выполните команду "make clean; make" в каталоге Samtools, чтобы перекомпилировать библиотеку. После этого вы сможете собрать этот модуль без ошибок.
- При создании этого модуля вы получаете сообщение об отсутствующей математической библиотеке.
Чтобы это исправить, следуйте рецепту в (1) за исключением добавления -m64 к CFLAGS, чтобы он выглядел так:
CFLAGS = -g -Wall -O2 -fPIC# -m64 # -arch ppc
ИСПЫТАНИЯ И ВЗНОСЫ:
Вы можете получить самую последнюю версию этого модуля для разработки через сайт GitHub по адресу https://github.com/GMOD/GBrowse-Adaptors. Пожалуйста, не стесняйтесь отправлять отчеты об ошибках, патчи и т. Д. Через GitHub.
АВТОР:
Линкольн Д. Стейн
Copyright (c) 2009-2015 Институт онкологических исследований в Онтарио
Этот пакет и сопровождающие его библиотеки являются свободным программным обеспечением; Вы можете распространять его и / или изменять его в соответствии с условиями Artistic License 2.0, Apache 2.0 License или GNU General Public License (версия 1 или выше). Обратитесь к ЛИЦЕНЗИИ для полного текста лицензии.