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​

【samtools】运行报错: error while loading shared libraries:libcrypto.so.1.0.0或libncurse_javascript

我装的版本默认已经是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

【samtools】运行报错: error while loading shared libraries:libcrypto.so.1.0.0或libncurse_javascript_02

其他缺失库类似,如失败,可多尝试几个。相邻版本之间并无太大差异。

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.jianshu.com/p/093522c89aef​



作者:Bioinfarmer,请关注同名微信公众号:Bioinfarmer。