問題記錄
在conda的某工作環(huán)境下使用rmats2rmats2sashimiplot作圖的時(shí)候,發(fā)現(xiàn)有一個(gè)報(bào)錯(cuò):無法找到libcrypto.so.1.0.0,我查看了游一下samtools的依賴
$ldd `which samtools`
linux-vdso.so.1 => (0x00007fff96dfe000)
libm.so.6 => /lib64/libm.so.6 (0x00007fc22ef22000)
libz.so.1 => /home/sxj/biosoft/anaconda/envs/dss/bin/../lib/libz.so.1 (0x00007fc22ed09000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fc22eb05000)
libcrypto.so.1.0.0 => not found
libcurl.so.4 => /home/sxj/biosoft/anaconda/envs/dss/bin/../lib/libcurl.so.4 (0x00007fc22ea7c000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fc22e860000)
libc.so.6 => /lib64/libc.so.6 (0x00007fc22e493000)
/lib64/ld-linux-x86-64.so.2 (0x00007fc22f24b000)
libssh2.so.1 => /home/sxj/biosoft/anaconda/envs/dss/bin/../lib/./libssh2.so.1 (0x00007fc22e45f000)
libssl.so.1.1 => /home/sxj/biosoft/anaconda/envs/dss/bin/../lib/./libssl.so.1.1 (0x00007fc22e3c9000)
libcrypto.so.1.1 => /home/sxj/biosoft/anaconda/envs/dss/bin/../lib/./libcrypto.so.1.1 (0x00007fc22e0d1000)
libgssapi_krb5.so.2 => /home/sxj/biosoft/anaconda/envs/dss/bin/../lib/./libgssapi_krb5.so.2 (0x00007fc22e081000)
libkrb5.so.3 => /home/sxj/biosoft/anaconda/envs/dss/bin/../lib/./libkrb5.so.3 (0x00007fc22dfa5000)
libk5crypto.so.3 => /home/sxj/biosoft/anaconda/envs/dss/bin/../lib/./libk5crypto.so.3 (0x00007fc22df86000)
libcom_err.so.3 => /home/sxj/biosoft/anaconda/envs/dss/bin/../lib/./libcom_err.so.3 (0x00007fc22df7f000)
librt.so.1 => /lib64/librt.so.1 (0x00007fc22dd77000)
libkrb5support.so.0 => /home/sxj/biosoft/anaconda/envs/dss/bin/../lib/././libkrb5support.so.0 (0x00007fc22dd67000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007fc22db4e000)
我們可以看到libcrypto.so.1.0.0 => not found,檢索的時(shí)候發(fā)現(xiàn)洲更之前的簡書提到過類似的問題如何用conda安裝軟件|處理conda安裝工具的動(dòng)態(tài)庫問題,解決的辦法不外乎:
- 更新降級(jí)或者重新安裝
- 安裝對(duì)應(yīng)版本的libcrypto.so.1.0.0
解決記錄一
首先我們來查看一下洲更解決的辦法, 即檢查conda的安裝鏡像的優(yōu)先級(jí):
$cat .condarc
ssl_verify: false
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- defaults
show_channel_urls: true
這里我看了一下,我的鏡像的優(yōu)先級(jí)不對(duì),GitHub上有幾個(gè)issue專門針對(duì)這個(gè)問題作出了解答,入下:
samtools 1.9 dependency pulls in wrong version of openssl #12100
但是我們這里看了一下我的openssl的安裝來源:
$conda list
openssl 1.1.1b h14c3975_1 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
鏡像沒問題啊,我重新安裝了以后發(fā)現(xiàn)問題也沒有解決。
這時(shí)候有個(gè)老哥的評(píng)論引起了我的注意:
This is because the samtools 1.9 depends on openssl 1.0.x (I hope the next version will support or just change the shared library name) and openssl 1.1.x was installed,if you must keep the openssl 1.1.x version, a possible solution is :
1. move to the /*Your_Path_of_conda/lib (for me ~/anaconda3/lib/) folder
2. give a soft link of "libcrypto.so.1.1" named "libcrypto.so.1.0.0" to cheat on the samtools
這個(gè)操作騷啊,下面有11個(gè)??,還有一個(gè)?,看得我頭皮發(fā)麻,不用考慮就知道這個(gè)沒問題。
ls /home/sxj/biosoft/anaconda/envs/ROSE_ngsplot/bin/../lib/libcry*
/home/sxj/biosoft/anaconda/envs/ROSE_ngsplot/bin/../lib/libcrypto.a /home/sxj/biosoft/anaconda/envs/ROSE_ngsplot/bin/../lib/libcrypto.so /home/sxj/biosoft/anaconda/envs/ROSE_ngsplot/bin/../lib/libcrypto.so.1.1
ln /home/sxj/biosoft/anaconda/envs/ROSE_ngsplot/bin/../lib/libcrypto.so.1.1 /home/sxj/biosoft/anaconda/envs/ROSE_ngsplot/bin/../lib/libcrypto.so.1.0.0
問題解決
按照這個(gè)思路,我又在另外一個(gè)環(huán)境里面發(fā)現(xiàn)了libcrypto.so.1.0.0,
$ldd `which samtools`
linux-vdso.so.1 => (0x00007fffbe7fe000)
libz.so.1 => /home/sxj/biosoft/anaconda/bin/../lib/libz.so.1 (0x00007f142c7f2000)
libm.so.6 => /lib64/libm.so.6 (0x00007f142c4c9000)
libbz2.so.1.0 => /home/sxj/biosoft/anaconda/bin/../lib/libbz2.so.1.0 (0x00007f142c2b7000)
liblzma.so.5 => /home/sxj/biosoft/anaconda/bin/../lib/liblzma.so.5 (0x00007f142c084000)
libcurl.so.4 => /home/sxj/biosoft/anaconda/bin/../lib/libcurl.so.4 (0x00007f142be07000)
libcrypto.so.1.0.0 => /home/sxj/biosoft/anaconda/bin/../lib/libcrypto.so.1.0.0 (0x00007f142b9b6000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f142b79a000)
libc.so.6 => /lib64/libc.so.6 (0x00007f142b3cc000)
/lib64/ld-linux-x86-64.so.2 (0x00007f142ca0b000)
librt.so.1 => /lib64/librt.so.1 (0x00007f142b1c4000)
libssh2.so.1 => /home/sxj/biosoft/anaconda/bin/../lib/./libssh2.so.1 (0x00007f142af94000)
libssl.so.1.0.0 => /home/sxj/biosoft/anaconda/bin/../lib/./libssl.so.1.0.0 (0x00007f142ad1b000)
libgssapi_krb5.so.2 => /home/sxj/biosoft/anaconda/bin/../lib/./libgssapi_krb5.so.2 (0x00007f142aad2000)
libkrb5.so.3 => /home/sxj/biosoft/anaconda/bin/../lib/./libkrb5.so.3 (0x00007f142a805000)
libk5crypto.so.3 => /home/sxj/biosoft/anaconda/bin/../lib/./libk5crypto.so.3 (0x00007f142a5d6000)
libcom_err.so.3 => /home/sxj/biosoft/anaconda/bin/../lib/./libcom_err.so.3 (0x00007f142a3d3000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f142a1ce000)
libkrb5support.so.0 => /home/sxj/biosoft/anaconda/bin/../lib/././libkrb5support.so.0 (0x00007f1429fc3000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f1429da9000)
同樣可以通過軟鏈的方式解決了問題。
解決記錄二
conda install -c bioconda samtools openssl=1.0
問題解決