Samtools无法运行:libdeflate.so库加载失败问题求助
Samtools无法找到libdeflate.so库的解决思路
问题重现
运行samtools view your_file.bam或samtools --version时出现以下错误:
dyld[69540]: Library not loaded: @rpath/libdeflate.so Referenced from: <D6D57EAF-7BCE-33F1-B9CE-57A7A42BD16D> /Users/faleevamaria/anaconda3/envs/ARTDeco/bin/samtools Reason: tried: '/Users/faleevamaria/anaconda3/envs/ARTDeco/bin/../lib/libdeflate.so' (no such file), '/Users/faleevamaria/anaconda3/envs/ARTDeco/bin/../lib/libdeflate.so' (no such file), '/usr/local/lib/libdeflate.so' (no such file), '/usr/lib/libdeflate.so' (no such file, not in dyld cache) Abort trap: 6
通过otool -L /Users/faleevamaria/anaconda3/envs/ARTDeco/bin/samtools确认,samtools确实依赖@rpath/libdeflate.so,但conda列表显示该库已安装且更新。
解决步骤
1. 检查libdeflate的实际文件状态
进入conda环境的lib目录,确认libdeflate文件是否存在及格式:
cd /Users/faleevamaria/anaconda3/envs/ARTDeco/lib ls -la | grep libdeflate
- 如果存在
libdeflate.dylib但无libdeflate.so(Mac系统下conda可能默认安装dylib格式),创建软链接:ln -s libdeflate.dylib libdeflate.so
2. 修复samtools的rpath配置
使用install_name_tool为samtools添加正确的库路径:
install_name_tool -add_rpath /Users/faleevamaria/anaconda3/envs/ARTDeco/lib /Users/faleevamaria/anaconda3/envs/ARTDeco/bin/samtools
执行后再次测试samtools --version是否正常。
3. 强制重装依赖并修复环境
设置conda通道优先级为strict,确保从正确源安装依赖:
conda config --add channels bioconda conda config --add channels conda-forge conda config --add channels defaults conda config --set channel_priority strict
然后在目标环境强制重装samtools和libdeflate:
conda install -n ARTDeco samtools libdeflate --force-reinstall
4. 新建干净conda环境
若上述方法无效,直接创建新环境安装samtools:
conda create -n samtools_env samtools -y conda activate samtools_env
测试samtools --version验证功能正常后,再迁移原工作流程到新环境。
内容的提问来源于stack exchange,提问作者faleevs
相关产品推荐
相关产品推荐

