2

我正在尝试运行变体效果预测器 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`' >> ~/.profile

Compress::Raw::Zlib 和 Compress::Zlib 似乎安装成功:

./bin/perl -e 'use Compress::Raw::Zlib;'
./bin/perl -e 'use Compress::Zlib;'

所以我想不出什么是错的,在网上找不到任何东西......

这是我第一次使用 perl 的经验 :( 任何帮助将不胜感激......

非常感谢

4

1 回答 1

2

似乎有 Perl 版本不匹配。迹象表明:.so您正在加载的内容是使用一个版本的 Perl 构建的,并且正在由不兼容的 Perl 版本加载。

我怀疑您的测试是用一个perl(用于安装模块的那个)完成的,而实际程序是用另一个运行的perl

现在你知道为什么我无法理解为什么人们认为INSTALL_BASEaka--install_base是个好主意。当然,目录结构更漂亮,但它会导致这些问题!您正在通过 local::lib使用INSTALL_BASEaka --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/perl5
于 2012-04-28T07:57:57.930 回答