我正在尝试运行Variant effect predictor perl脚本(通过ensembl),我得到了这个错误:
Testing VEP script
ERROR: Testing VEP script failed with the following error
Can't load '/home/sahel/perl5/lib/perl5/x86_64-linux/auto/Compress/Raw/Zlib/Zlib.so' for module Compress::Raw::Zlib: /home/sahel/perl5/lib/perl5/x86_64-linux/auto/Compress/Raw/Zlib/Zlib.so: undefined symbol: PL_unitcheckav at /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/DynaLoader.pm line 230.
at /home/sahel/perl5/lib/perl5/Compress/Zlib.pm line 11
Compilation failed in require at /home/sahel/perl5/lib/perl5/Compress/Zlib.pm line 11.
BEGIN failed--compilation aborted at /home/sahel/perl5/lib/perl5/Compress/Zlib.pm line 11.
Compilation failed in require at /projects/sahel_proj/localperl/Bio/EnsEMBL/Variation/ProteinFunctionPredictionMatrix.pm line 73.
BEGIN failed--compilation aborted at /projects/sahel_proj/localperl/Bio/EnsEMBL/Variation/ProteinFunctionPredictionMatrix.pm line 73.
Compilation failed in require at /projects/sahel_proj/localperl/Bio/EnsEMBL/Variation/TranscriptVariationAllele.pm line 65.
BEGIN failed--compilation aborted at /projects/sahel_proj/localperl/Bio/EnsEMBL/Variation/TranscriptVariationAllele.pm line 65.
Compilation failed in require at /projects/sahel_proj/localperl/Bio/EnsEMBL/Variation/TranscriptVariation.pm line 57.
BEGIN failed--compilation aborted at /projects/sahel_proj/localperl/Bio/EnsEMBL/Variation/TranscriptVariation.pm line 57.
Compilation failed in require at /projects/sahel_proj/localperl/Bio/EnsEMBL/Variation/DBSQL/TranscriptVariationAdaptor.pm line 68.
BEGIN failed--compilation aborted at /projects/sahel_proj/localperl/Bio/EnsEMBL/Variation/DBSQL/TranscriptVariationAdaptor.pm line 68.
Compilation failed in require at /projects/sahel_proj/localperl/Bio/EnsEMBL/Variation/VariationFeature.pm line 105.
BEGIN failed--compilation aborted at /projects/sahel_proj/localperl/Bio/EnsEMBL/Variation/VariationFeature.pm line 105.
Compilation failed in require at /projects/sahel_proj/localperl/Bio/EnsEMBL/Variation/Utils/VEP.pm line 52.
BEGIN failed--compilation aborted at /projects/sahel_proj/localperl/Bio/EnsEMBL/Variation/Utils/VEP.pm line 52.
Compilation failed in require at variant_effect_predictor.pl line 57.
BEGIN failed--compilation aborted at variant_effect_predictor.pl line 57.我已经通过cpan安装了所有必需的模块,并通过以下方式设置了模块的路径:
echo 'eval `/projects/sahel_proj/localperl/bin/perl -I ~/perl5/lib/perl5 -Mlocal::lib`' >> ~/.profileCompress::Raw::Zlib和Compress::Zlib似乎已成功安装:
./bin/perl -e 'use Compress::Raw::Zlib;'
./bin/perl -e 'use Compress::Zlib;'所以我想不出哪里出了问题,在网上也找不到任何东西…
这是我第一次使用perl的经验:(,任何帮助都将不胜感激……
非常感谢
发布于 2012-04-28 15:57:58
似乎存在Perl版本不匹配。这些迹象表明:您正在加载的.so是使用Perl的一个版本构建的,并且它是由不兼容的Perl版本加载的。
我怀疑您的测试是用一个perl (用于安装模块的那个)完成的,而实际的程序是用另一个perl运行的。
现在你知道为什么我不能理解为什么人们认为INSTALL_BASE,也就是--install_base是个好主意了。当然,目录结构更漂亮,但它会导致这些问题!你正在通过INSTALL_BASE::lib使用本地,也就是--install_base (一种告诉Makefile.PL和Build.PL在哪里安装模块的方法)。
解决方案1。
使用安装模块时使用的perl运行脚本。
解决方案2。
删除local::lib安装模块的目录,不使用local::lib:
perl Makefile.PL PREFIX=~ LIB=~/lib/perl5
make
make test
make install或
perl Build.PL --prefix ~ --lib ~/lib/perl5
./Build
./Build test
./Build install如果使用两个perl执行上述操作,则两个perl都可以使用特定于版本的模块。如果您仅使用一个perl执行上述操作,则特定于版本的模块将仅对该perl可用。没有冲突。
(您可以通过将cpan配置为使用上述命令来使用它。)
别忘了告诉perl你的模块在哪里。在您登录脚本中,
export PERL5LIB=~/lib/perl5https://stackoverflow.com/questions/10359979
复制相似问题