解决samtools: error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared object file

在执行bwa-mem比对时遇到samtools加载libcrypto.so.1.0.0失败的错误。通过检查和建立libcrypto.so.1.1到libcrypto.so.1.0.0的软连接解决了问题。文章还介绍了Linux下的硬链接和软链接,硬链接通过索引节点连接,而软链接(符号链接)包含其他文件的路径,类似于快捷方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在进行bwa -mem比对时,出现以下情况:

samtools: error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory

通过细读报错,发现可能是libcrypto出现了问题

解决步骤:

# 找到Samtools的安装位置
which samtools  #我的位置于~/miniconda3/bin/samtools

进入lib,发现并查看是否有libcrypto.so.1.1,并建立软连接:

# 进入lib
cd /root/anaconda3/lib
ls
 
# 建立软连接
ln -s libcrypto.so.1.1 libcrypto.so.1.0.0

问题成功解决!

补充知识:

Linux 下的链接

作为的一个 Linux 的使用者,Linux 系统下提供 ln 指令来进行文件链接,我们一定见过类似如下指令:

ln -s bar.txt foo.txt

此时如果 ls 查看当前目录下的文件的话,会发现:

ll
total 1.2M
-rw-rw-r--. 1 Nova Nova    0 Aug 11 14:43  bar.txt
lrwxrwxrwx. 1 Nova Nova    7 Aug 11 14:43  foo.txt -> bar.txt

那么这个foo.txt究竟是什么呢?

这个就是一个文件链接,文件链接主要分为硬链接和软链接,通过查看ln --help,可以看到一些重要的内容:

 Desktop ln --help
Usage: ln [OPTION]... [-T] TARGET LINK_NAME
Create hard links by default, symbolic links with --symbolic.

Mandatory arguments to long options are mandatory for short options too.
  -s, --symbolic              make symbolic links instead of hard links

ln 指令默认创建的是硬链接,如果加入了-s参数,则会生成一个软链接。

硬链接:

在 Linux 中,多个文件名指向同一索引节点是存在的,所以硬连接指通过索引节点来进行的连接,即每一个硬链接都是一个指向对应区域的文件。

我们这里创建一个文件foo.txt然后建立一个它的硬链接看看:

vim foo.txt 
➜  cat foo.txt 
LeetCode
➜  ln foo.txt bar.txt # 这一步是用来创建硬链接
➜  ls -li
total 6552
6817859 -rw-rw-r--. 2 Nova Nova       9 Sep 19 15:59 bar.txt
6817859 -rw-rw-r--. 2 Nova Nova       9 Sep 19 15:59 foo.txt

前面的6817859是文件的 inode,可以简单把它想成 C 语言中的指针,它指向了物理硬盘的一个区块,事实上文件系统会维护一个引用计数,只要有文件指向这个区块,它就不会从硬盘上消失,这里我们会发现,这两个文件拥有相同的 inode,通过查看文件内容也会发现是同一个文件:

硬链接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬链接到重要文件,以防止“误删”的功能,由于对应该目录的索引节点有一个以上的连接,假设我们删除了原始的foo.txt文件:

软连接:

软链接又叫符号链接,这个文件包含了另一个文件的路径名,例如在上图中,foo.txt 就是 bar.txt 的软连接,bar.txt 是实际的文件,foo.txt包含的是对于 bar.txt 的 inode 的记录。

软连接可以是任意文件或目录,可以链接不同文件系统的文件,在对符号文件进行读或写操作的时候,系统会自动把该操作转换为对源文件的操作,但删除链接文件时,系统仅仅删除链接文件,而不删除源文件本身,这一点类似于 Windows 操作系统下的快捷方式。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值