小鸽子

samtools 报错:dyld: Library not lo

2020-03-12  本文已影响0人  BioGou

不知道什么时候开始,samtools 莫名其妙的出现了一个bug,之前一直用网上查的一个方法修复,但是经常反反复复地出现,今天终于发现这个问题发生的原因。

系统是Mac OS,samtools报错信息如下:

dyld: Library not loaded: @rpath/libcrypto.1.0.0.dylib
  Referenced from: /Users/mac/anaconda3/bin/samtools
  Reason: image not found
Abort trap: 6

网上查到的办法是重装openssl(1.0):

conda install openssl=1.0

之前这个方法屡试不爽,但是每次openssl升级之后就又有bug了,后来发现libcrypto.1.0.0.dylib这个文件在/usr/local/lib/下边,就查看了一下这个文件,发现它是一个软连接:

(base) mac@mac-2:~$ ls -l /usr/local/lib/libcrypto*
lrwxr-xr-x  1 root  admin  75 Jun 18  2019 /usr/local/lib/libcrypto.1.0.0.dylib -> /Applications/EasyConnect.app/Contents/Resources/Libs/libcrypto.1.0.0.dylib

然后就发现了问题的存在,软连接所指向的这个文件是不存在的:-(

(base) mac@mac-2:~$ ls /Applications/EasyConnect.app/Contents/Resources/Libs/libcrypto.1.0.0.dylib
ls: /Applications/EasyConnect.app/Contents/Resources/Libs/libcrypto.1.0.0.dylib: No such file or directory

既然这个软连接是空的,那就把它删了,重新创建一个不就得了吗?

(base) mac@mac-2:~$ rm /usr/local/lib/libcrypto.1.0.0.dylib
(base) mac@mac-2:~$ ln -s /Users/mac/anaconda3/lib/libcrypto.1.1.dylib /usr/local/lib/libcrypto.1.0.0.dylib
其实我发现不一定必须是libcrypto.1.0.0.dylib,好像更高的版本也可以,我这里就用了libcrypto.1.1.dylib。
这个方法不一定一劳永逸,因为我的openssl是conda安装的,很可能因为其他软件的依赖而被升级,这样这个软连接可能就又不能用了,想要可靠一点的话,就用brew去安装一个openssl,然后把libcrypto.1.0.0.dylib这个文件链接到/usr/local/lib/libcrypto.1.0.0.dylib就可以了,只要系统的openssl不升级就不用担心再出bug。
上一篇 下一篇

猜你喜欢

热点阅读