pslCnaFilter conda compiled against libssl.so.1.0.0 fails on centos8
I'm wasn't sure how to resolve this dependency problem - on centos 8 currently installed
# Name Version Build Channel
ucsc-pslcdnafilter 357 0 bioconda
which has missing libssl and libcrypto.so 1.0.0
ldd /opt/linux/rocky/8.x/x86_64/pkgs/funannotate/development/bin/pslCDnaFilter
linux-vdso.so.1 (0x00007ffdfe6b3000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000150804781000)
libssl.so.1.0.0 => not found
libcrypto.so.1.0.0 => not found
libpng16.so.16 => /opt/linux/rocky/8.x/x86_64/pkgs/funannotate/development/bin/../lib/libpng16.so.16 (0x0000150804b7e000)
libz.so.1 => /opt/linux/rocky/8.x/x86_64/pkgs/funannotate/development/bin/../lib/libz.so.1 (0x0000150804b64000)
libm.so.6 => /lib64/libm.so.6 (0x00001508043ff000)
libmysqlclient.so.18 => /opt/linux/rocky/8.x/x86_64/pkgs/funannotate/development/bin/../lib/libmysqlclient.so.18 (0x000015080403b000)
librt.so.1 => /lib64/librt.so.1 (0x0000150803e33000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000150803c2f000)
libstdc++.so.6 => /opt/linux/rocky/8.x/x86_64/pkgs/funannotate/development/bin/../lib/libstdc++.so.6 (0x0000150803a7b000)
libc.so.6 => /lib64/libc.so.6 (0x00001508036b6000)
/lib64/ld-linux-x86-64.so.2 (0x00001508049a1000)
libssl.so.1.1 => /opt/linux/rocky/8.x/x86_64/pkgs/funannotate/development/bin/../lib/./libssl.so.1.1 (0x0000150804acf000)
libcrypto.so.1.1 => /opt/linux/rocky/8.x/x86_64/pkgs/funannotate/development/bin/../lib/./libcrypto.so.1.1 (0x00001508033e9000)
libgcc_s.so.1 => /opt/linux/rocky/8.x/x86_64/pkgs/funannotate/development/bin/../lib/./libgcc_s.so.1 (0x0000150804ab6000)
potentially latest version of pkg linked against more general version? anyone have ideas or suggestions on how to try to resolve/fix/add?
mamba install -c bioconda ucsc-pslcdnafilter==366
Encountered problems while solving:
- package pulseaudio-14.0-h0868958_9 requires openssl >=1.1.1q,<1.1.2a, but none of the providers can be installed
but cannot install v366 as
mamba install -c conda-forge -c bioconda ucsc-pslcdnafilter==366 openssl==1.1.1q
ucsc-pslcdnafilter-366-h5eb252a_0 requires openssl >=1.0.2o,<1.0.3a, but none of the providers can be installed
As a workaround I could do this to setup an alias for the libraries to the versions of libssl / libcrypto that are installed in the environment
cd $CONDAENV/lib
ln -s libssl.so libssl.so.1.0.0
ln -s libcrypto.so libcrypto.so.1.0.0
So leaving this here as a solution for anyone encountering -
Worth noting that funannotate check isn't able to detect this problem and warn so I think adding some version testing or execution success is probably needed will see if I can.
but it would be helpful to get the latest ucsc-pslcdnafilter installed too so still need to figure out this conda dependency problem...
In case you find any solution to this let me know. While trying to set up the funannotate pipeline from scratch, this message started to pop up after I have been installing funannotate with pip in master (to get rid of the augustus problem which occurs when installing funannotate via mamba/conda):
Checking external dependencies...
ERROR: pslDnaFiler found but error running: pslCDnaFilter: error while loading shared libraries: libssl.so.1.0.0: cannot open shared object file: No such file or directory
Your solution (below) does not work for me because I don; have the rights for linking the files, nor do thoese files exist in my $CONDAENV/lib folder...
cd $CONDAENV/lib
ln -s libssl.so libssl.so.1.0.0
ln -s libcrypto.so libcrypto.so.1.0.0
you can put these links into any folder you have permission and just make sure your $LD_LIBRARY_PATH has that folder in it. but you can install the ssl library to get them or link to ones that are in another folder I guess. this is all kind of a mess so I'm not sure what to recommend.
Its really hard to tell you how to solve your problem - are you on unix/linux/osx? you are unable to write in the conda folder at all - then how are you installing the tools? can you do your own conda install? Do you have those libssl somewhere on your system?
The UCSC tools need a total update for compiling but I am not going to have time to know-how to fix them any time soon myself. Maybe @nextgenusfs has ideas but we probably want to just remove this dependency as I think other tools can achieve this better anyways.
Anyone have any ideas why it's linking against lib*.so.1.1 and lib*.so.1.0.0. Seems like an error.
for what it's worth, I got it to work using the ln commands above, but we are restricted from using the latest pslcdnafilter as indicated.
I got the same error when running funannotate check --show-versions from the latest conda funannotate version (1.8.15), which tries to fix the problems with Augustus as discussed in the issue #850. I tried @hyphaltip's suggestion and it seems to be working.
About 2 weeks ago, ucsc-pslcdnafilter=445 was made available in bioconda. I've updated it in my funannotate conda environment (mamba install "ucsc-pslcdnafilter=445") and it doesn't complain about the libs any more.
Note that funannotate check --show-versions doesn't find the version, but it does detect the program (no idea if that's just my system though):
[...]
pslCDnaFilter: no way to determine
[...]