本文将详细讲解在 macOS 系统上安装 GoFrame CLI 工具时遇到的 zsh: killed
错误及其解决方案。作者通过亲身调试经验,总结出从环境配置到二进制文件修复的全流程解决方案,帮助开发者快速解决问题。
一、问题现象
当执行 gf gen service 命令时,出现以下错误:
zsh: killed gf gen service
伴随现象:
即使新安装 GoFrame 仍无效
重装 Go 环境无法解决
Docker 运行报网络超时
手动安装后命令无法执行
二、原因深度分析
1. 系统级问题
内存不足:macOS 终止进程保护(看门狗机制)
SIP 保护:系统完整性保护阻止第三方工具运行
架构不匹配:下载的 binary 与 M1/M2 芯片不兼容
2. 工具链问题
Go 环境变量配置错误
旧版本 gf 残留文件冲突
证书信任问题(未公证的二进制文件)
三、完整解决方案
▶ 第一步:彻底清理旧版本
# 删除所有残留文件
sudo rm -rf /usr/local/bin/gf
sudo rm -rf ~/.gf
rm -rf ~/go/pkg/mod/github.com/gogf/gf
▶ 第二步:安装前准备
1、确认芯片架构:
uname -m
# arm64(M1/M2)或 amd64(Intel)
2、临时关闭 SIP:
- 重启按住 Cmd+R 进入恢复模式
- 打开终端执行:csrutil disable
▶ 第三步:精准安装
# 下载对应架构的二进制文件(示例为 M1)
curl -LO https://github.com/gogf/gf/releases/latest/download/gf_darwin_arm64
# 校验文件完整性(替换为最新哈希值)
shasum -a 256 gf_darwin_arm64
# 安装到系统路径
sudo mv gf_darwin_arm64 /usr/local/bin/gf
sudo chmod +x /usr/local/bin/gf
▶ 第四步:环境验证
# 检查版本
gf --version # 应输出 GF CLI v2.x.x
# 测试命令执行
mkdir test && cd test
go mod init test
gf gen service # 正常生成服务代码
四、常见问题处理
- 仍提示 “command not found”
# 检查 PATH 配置
echo $PATH | grep /usr/local/bin
# 手动添加路径(临时)
export PATH="$PATH:/usr/local/bin"
- 出现 “not allowed” 警告
https://gitee.com/xxx/raw/master/img/mac-trust.png
- 右键点击 /usr/local/bin/gf
- 选择 “打开” > “打开” 强制运行
- 在系统设置 > 隐私与安全性 中允许
- Docker 网络问题
# 使用手机热点网络
networksetup -setairportpower en0 on
networksetup -setsocksfirewallproxy Wi-Fi "" 0
# 或手动加载镜像
docker load < gf-cli-latest.tar
五、性能优化技巧
- 内存释放命令
# 清理系统缓存
sudo purge
# 限制并发内存
ulimit -Sv 4194304 # 4GB
- 使用别名加速
# ~/.zshrc 添加
alias gf='/Users/yourname/go/bin/gf' # 使用用户目录安装版
六、备选安装方案
方案一:Homebrew 安装
brew tap gogf/tap
brew install gf
方案二:源码编译
git clone https://gitee.com/gogf/gf
cd gf
go build -o gf cmd/gf/main.go
sudo install -m 755 gf /usr/local/bin/
七、最终验证
成功执行后应看到:
✔ GF CLI v2.7.0
├─ GoFrame v2.7.0
└─ Go 1.24.3
生成的服务目录结构:
service/
├── config.yaml
├── server.go
└── controller/
└── default.go
特别提示 :
SIP 安全风险:完成操作后请重新启用 csrutil enable
版本更新:定期执行 gf update
获取最新功能