Buffalo CLI 必须先安装,否则 buffalo new、buffalo dev 均报 command not found;需确保 Go 版本为 1.23.x 或 1.24.x,GOPATH 非空且 $GOPATH/bin 在 PATH 中,推荐用 go install 安装,也可下载预编译二进制或用 Scoop(Windows)。

Buffalo CLI 必须先装好,否则 buffalo new、buffalo dev 全部报 command not found——这不是项目依赖问题,是系统级命令缺失。
确认 Go 环境是否达标
Buffalo CLI 是 Go 编写的二进制工具,不是库,它对 Go 版本极其敏感。截至 2026 年 9 月,官方只保证在 go1.23.x 和 go1.24.x 下能正常编译和运行。
- 执行
go version,输出必须形如go version go1.23.7 darwin/arm64或go version go1.24.3 linux/amd64 - 若版本是
1.22或更低,go install可能卡在cannot find module providing package;若为1.25+,CLI 启动时可能直接 panic -
go env GOPATH必须返回非空路径(如/home/user/go),这是go install默认放置二进制的位置
用 go install 安装 buffalo CLI(推荐)
这是最轻量、最可控的方式,不依赖包管理器,也不需要预编译包校验。
- 终端中直接运行:
go install github.com/gobuffalo/cli/cmd/buffalo@latest - 安装完成后,
buffalo二进制被写入$GOPATH/bin/buffalo - 务必检查
$GOPATH/bin是否已在系统PATH中:执行echo $PATH | grep "$(go env GOPATH)/bin"(Linux/macOS)或echo %PATH% | findstr "%GOPATH%\bin"(Windows) - 新开终端再运行
buffalo version;若仍提示command not found,说明 PATH 没生效,需手动追加(例如在~/.zshrc中加export PATH="$(go env GOPATH)/bin:$PATH")
没有 Go 环境?改用预编译二进制包
常见于 CI/CD 环境或纯前端开发者临时试用,跳过 Go 编译链,但要注意 PATH 和权限。
使用 uber-go/dig 在 Golang 中实现依赖注入——基于反射容器,提供 Provide/Invoke、dig.In/dig.Out 参数与结果对象,支持命名依赖等
- 前往 GitHub Releases 页面,下载对应系统的
buffalo_*.tar.gz(如buffalo_0.18.13_linux_amd64.tar.gz) - 解压后得到单个
buffalo文件,把它复制到系统 PATH 目录下:sudo cp buffalo /usr/local/bin/(Linux/macOS)或放到C:\Windows\下(Windows) - 赋予可执行权限:
chmod +x /usr/local/bin/buffalo - Windows 用户更推荐用 Scoop:
scoop bucket add extras && scoop install buffalo,它自动处理 PATH 注册
验证安装后别急着建项目
装完 buffalo 命令只是第一步。真正容易翻车的是下一步:buffalo new myapp --api 会默认拉取大量模板、前端构建工具和数据库驱动,而这些组件各自有隐性依赖:
- 若选了
--with-sqlite3,系统必须已安装gcc或clang,否则go build阶段失败 - macOS 上若用 Homebrew 安装的 Go,
CGO_ENABLED=1必须开启,否则 sqlite3 驱动链接失败 - Windows 下禁用 GOPATH 模式,
GO111MODULE=on必须设好,否则buffalo dev启动时报错no required module provides package
建议首次运行前先执行 buffalo info,它会列出当前环境检测结果,比盲目 new 更省时间。
golang免费学习笔记(深入):立即使用
在学习笔记中,你将探索golang的核心概念和高级技巧!










