samtools用conda安装后,总是出现共享库缺失的报错。即便你刚安装samtools时可以用,但后面在同一环境中安装其他相关软件,有可能产生了冲突,导致库替换,因而报错。
避免这种情况,可能最好是给samtools单独一个环境。但我不喜欢这样,我的习惯是一般做一件事才建一个环境,不然环境太多了,我自己都忘了。
网上很多回答分析原因说:samtools的版本已经在1.9以上了,但是conda安装的samtools版本依然是1.7。所以建议强制安装1.9版本:conda install -c bioconda samtools=1.9 --force-reinstall
这回答有可能对某些人管用。但其实conda已经早到1.9以上了:conda search samtools
我装的版本默认已经是1.10,仍然缺这库那库的。总之,仍然是依赖库的版本不匹配。
这一问题在github有很多issue,如libtinfow.so.5
开发者建议从别处软链接过来(降级)。
比如,我的samtools缺libcrypto.so.1.0.0,libncurses.so.5,libtinfow.so.5。
先找到其他软件的相同依赖库,软链接为以上名称即可。
find ./ -name "libtinfow*"
ln -s ../../predict/lib/libtinfow.so.6 libtinfow.so.5
其他缺失库类似,如失败,可多尝试几个。相邻版本之间并无太大差异。
ln -s libcrypto.so.1.1 libcrypto.so.1.0.0
ln -s /lib64/libbz2.so.1 /usr/lib64/libbz2.so.1.0
https://www.cnblogs.com/emanlee/p/7325171.html
https://www.cnblogs.com/emanlee/p/7325171.html
https://www.jianshu.com/p/093522c89aef