error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared
samtools: error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory
使用conda 安装samtools,使用samtools报错。说是samtools在使用时要加载libcrypto.so.1.0.0
这个文件,但是没找到它,就报错了。
这个错误,我在centOS 7服务器上遇到过,也在win的linux ubuntu子系统下也遇到过。
centOS 7服务器上#
samtools: error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory
搜索参考 Problem with libcrypto.so.1.0.0 centos 7
查看一下当前系统文件里,libcrypto.so都有哪些版本
$ ll /usr/lib64/libcrypto.so.*
-rwxr-xr-x. 1 root root 1440256 Mar 9 2016 /usr/lib64/libcrypto.so.0.9.8e
lrwxrwxrwx 1 root root 19 Jul 28 13:24 /usr/lib64/libcrypto.so.10 -> libcrypto.so.1.0.2k
-rwxr-xr-x 1 root root 2521144 Aug 9 2019 /usr/lib64/libcrypto.so.1.0.2k
lrwxrwxrwx. 1 root root 19 Jul 6 22:08 /usr/lib64/libcrypto.so.6 -> libcrypto.so.0.9.8e
属实没有这个libcrypto.so.1.0.0
,但是有这个/usr/lib64/libcrypto.so.1.0.2k
,此外在anaconda目录下也看到了
$ ll ~/anaconda3/envs/hts/lib/libcrypto.so.*
-rwxrwxr-x 1 user user 3266768 Dec 24 15:46 /home/user/anaconda3/envs/hts/lib/libcrypto.so.1.1
看名字可知道,这两应该相差不多,于是可以尝试建立一个叫libcrypto.so.1.0.0
的符号链接指向/usr/lib64/libcrypto.so.1.0.2k
或者~/anaconda3/envs/hts/lib/libcrypto.so.1.1
使用命令
## 其中,`ENV_NAME`是conda环境名,需根据自己的名字进行替换。
$ ln -s ~/anaconda3/envs/ENV_NAME/lib/libcrypto.so.1.1 ~/anaconda3/envs/ENV_NAME/lib/libcrypto.so.1.0.0
or
使用命令
## 其中,`ENV_NAME`是conda环境名,需根据自己的名字进行替换。
$ ln -s /usr/lib64/libcrypto.so.1.0.2k ~/anaconda3/envs/ENV_NAME/lib/libcrypto.so.1.0.0
尝试运行samtools
,成功运行。
win linux子系统下#
在wsl下,我试过直接用sudo apt-get install samtools
安装samtools,然后运行,没出问题。
而用conda安装samtools,运行报错了。(没新建环境,直接在base环境下安装的)
在anconda3安装目录下的lib目录下找到相关文件。
使用命令建立一个合适的软链接
## 这里因为是在默认base环境下安装的samtools,所以不需要进入虚拟环境目录下envs/ENV_NAME的lib目录
$ ln -s ~/anaconda3/lib/libcrypto.so.1.1 ~/anaconda3/lib/libcrypto.so.1.0.0
尝试运行samtools
,成功运行。
运行某个软件,报错提示某个lib*.so找不到,这算是一类问题了,
可以尝试建立一个软件需要的文件名指向高或低的版本库文件来解决该问题,(虽然不一定能解决所有问题,但还是能解决部分问题)
在网上搜索,出现这个错误的情况并不单是用samtools,其他软件也有,若是用anconda安装可参考上面的解决方案。
若不是的话,可参考这个命令。将符号链接建立在/usr/lib64/
或者/usr/lib/
目录下试试看~
## 这个命令也可解决上面centOS 7服务器上samtools的问题,不过需要管理员权限
$ sudo ln -s /usr/lib64/libcrypto.so.1.0.2k /usr/lib64/libcrypto.so.1.0.0
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· Apache Tomcat RCE漏洞复现(CVE-2025-24813)