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

如何在macOS的GitHub Actions工作流中运行bash脚本?

在macOS GitHub工作流中运行bash脚本的解决方案

你遇到的Permission denied错误其实很好解决,这种通过脚本配置DYLD_LIBRARY_PATH的方式完全可行,核心问题就是脚本缺少可执行权限,下面是具体的解决办法和相关说明:

解决步骤:给脚本添加可执行权限

GitHub Actions的runner环境遵循Unix权限规则,从仓库拉取的脚本文件默认不会带有可执行权限,所以你需要先通过chmod命令赋予它执行权限,修改你的工作流步骤即可:

方式一:合并为一个步骤

- name: Append DYLD_LIBRARY_PATH with packages' lib directories
  run: |
    chmod +x ${{ github.workspace }}/path.sh
    ${{ github.workspace }}/path.sh

方式二:拆分为独立步骤(更清晰)

- name: Grant execute permission to path.sh
  run: chmod +x ${{ github.workspace }}/path.sh

- name: Append DYLD_LIBRARY_PATH with packages' lib directories
  run: ${{ github.workspace }}/path.sh

为什么会出现权限问题?

当你把脚本文件提交到Git仓库时,Git默认不会追踪文件的可执行权限(除非你手动配置了core.filemode),所以当runner拉取仓库代码后,path.sh只有读/写权限,没有执行权限,直接运行就会触发Permission denied错误。

额外优化建议

如果你的脚本内容不算特别复杂,也可以直接在工作流步骤中写命令,这样能避免权限问题,比如:

- name: Append DYLD_LIBRARY_PATH with packages' lib directories
  run: |
    echo "export DYLD_LIBRARY_PATH=@CONAN_LIB_DIRS_OPENSSL@:$DYLD_LIBRARY_PATH" >> /Users/runner/.bash_profile
    echo "export DYLD_LIBRARY_PATH=@CONAN_LIB_DIRS_FREETYPE@:$DYLD_LIBRARY_PATH" >> /Users/runner/.bash_profile
    echo "export DYLD_LIBRARY_PATH=@CONAN_LIB_DIRS_LIBJPEG@:$DYLD_LIBRARY_PATH" >> /Users/runner/.bash_profile
    echo "export DYLD_LIBRARY_PATH=@CONAN_LIB_DIRS_LIBPNG@:$DYLD_LIBRARY_PATH" >> /Users/runner/.bash_profile
    echo "export DYLD_LIBRARY_PATH=@CONAN_LIB_DIRS_BZIP2@:$DYLD_LIBRARY_PATH" >> /Users/runner/.bash_profile
    echo "export DYLD_LIBRARY_PATH=@CONAN_LIB_DIRS_BROTLI@:$DYLD_LIBRARY_PATH" >> /Users/runner/.bash_profile
    echo "export DYLD_LIBRARY_PATH=@CONAN_LIB_DIRS_ZLIB@:$DYLD_LIBRARY_PATH" >> /Users/runner/.bash_profile

不过如果后续需要修改这些配置,单独维护脚本文件还是更便于管理的,只要记得添加权限步骤就没问题。

内容的提问来源于stack exchange,提问作者Igor Mironchik

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 20:27:31