samtools 报错:dyld: Library not loaded: @rpath/libcrypto.1.0.0.dylib

不知道什么时候开始,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。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容