You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitHub Actions中无法运行samtools可执行文件问题求助

解决GitHub Actions里samtools存在但执行报错"No such file or directory"的问题

常见原因及解决办法

  • 架构不兼容
    GitHub Actions的runner有不同架构——比如Ubuntu默认是x86_64,现在macos-latest用的是ARM64的M1机器。如果你的samtools是在本地x86_64电脑上编译的,扔到ARM runner上肯定跑不起来。
    排查:在workflow里加file bin/samtools,看输出的架构信息,再用uname -m看runner的架构,对比一下就清楚了。
    解决:要么在对应架构的runner上编译samtools,要么直接下载对应架构的预编译包。

  • 动态链接库缺失
    samtools是动态链接的二进制文件,要是它依赖的系统库找不到,系统就会报错“没有这个文件或目录”——其实是找不到依赖,不是找不到samtools本身。
    排查:Linux runner用ldd bin/samtools,macOS用otool -L bin/samtools,看输出里有没有标not found的项。
    解决:安装缺失的依赖包(比如Ubuntu上装libncurses5-dev libbz2-dev liblzma-dev这些),或者换静态编译的samtools版本(静态版把依赖都打包进去了)。

  • 相对路径踩坑
    虽然tree和ls能找到samtools,但你执行它的时候的工作目录可能和你想的不一样。比如你在./src目录下,直接写bin/samtools就会找不到,得写../bin/samtools才行。
    排查:执行前先打pwd看看当前在哪个目录。
    解决:用绝对路径执行,比如${{ github.workspace }}/bin/samtools,或者先cd到bin目录再跑./samtools。

快速排查步骤

把这段加到你的test.yml里,先搞清楚问题出在哪:

- name: Debug samtools issue
  run: |
    pwd
    uname -m
    file bin/samtools
    ldd bin/samtools || otool -L bin/samtools

看输出结果对应上面的方法调整就行。

内容的提问来源于stack exchange,提问作者Erin Young

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 17:27:14