Reputation: 23
I am trying to run Variant effect predictor perl script (by ensembl) and I am getting this error:
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.
I have installed all required modules by cpan and set the path to the modules by:
echo 'eval `/projects/sahel_proj/localperl/bin/perl -I ~/perl5/lib/perl5 -Mlocal::lib`' >> ~/.profile
Compress::Raw::Zlib and Compress::Zlib seem to be successfully installed:
./bin/perl -e 'use Compress::Raw::Zlib;'
./bin/perl -e 'use Compress::Zlib;'
So I can not think of what could be wrong and could not find any thing online...
This my first experience working with perl ever :( , any help would be appreciated...
Thank you so much
Upvotes: 2
Views: 6240
Reputation: 385897
There seems to be a Perl version mismatch. The signs point to: The .so
you are loading was built using one version of Perl and it's being loaded by an incompatible version of Perl.
I suspect your testing is done with one perl
(the one used to install the modules), while the actual program is being run with the another perl
.
Now you know why I can't fathom why people think INSTALL_BASE
aka --install_base
is a good idea. Sure, the directory structure is prettier, but it causes these problems! You're using INSTALL_BASE
aka --install_base
(a way to tell Makefile.PL
and Build.PL
where to install modules) via local::lib.
Solution 1.
Run your script using the same perl
that you used to install the modules.
Solution 2.
Get rid of the directory in which local::lib installed your modules and reinstall them without using local::lib:
perl Makefile.PL PREFIX=~ LIB=~/lib/perl5
make
make test
make install
or
perl Build.PL --prefix ~ --lib ~/lib/perl5
./Build
./Build test
./Build install
If you do the above using both perl
, version-specific modules will be available to both perl
. If you do the above using only one perl
, version-specific modules will only be available to that perl
. No conflicts.
(You can use cpan
by configuring it to use the above commands.)
Don't forget to tell perl
where to locate your modules. In your login script,
export PERL5LIB=~/lib/perl5
Upvotes: 2