必须用go install显式指定版本,如go install github.com/gobuffalo/cli/v2/cmd/buffalo@v0.18.13;老版本需加/v2路径,tag须与GitHub Releases完全一致,安装后运行buffalo version验证。

用 go install 安装指定 Buffalo CLI 版本
Buffalo CLI 不支持 buffalo version 0.18.12 这类命令式降级,必须通过 go install 显式指定 tag 或 commit。你得先确认目标版本在 GitHub Releases 页面存在,再构造安装命令。
常见错误现象:执行 go install github.com/gobuffalo/cli/cmd/buffalo@v0.18.12 后提示 no matching versions——这是因为该仓库已迁移到 v2 模块路径,老版本需加 /v2 后缀。
- 安装 v0.18.13(最后稳定 v0.18.x):
go install github.com/gobuffalo/cli/v2/cmd/buffalo@v0.18.13 - 安装 v1.0.0(首个 v1 正式版):
go install github.com/gobuffalo/cli/v2/cmd/buffalo@v1.0.0 - 安装特定 commit(如修复某 SQLite bug 的快照):
go install github.com/gobuffalo/cli/v2/cmd/buffalo@5a3b7c1
注意:所有 @ 后的版本标识必须与 GitHub Releases 页面列出的 tag 完全一致,大小写和前导 v 都不能错。安装后务必运行 buffalo version 验证输出是否匹配。
下载预编译二进制并手动替换
如果你本地没有 Go 环境,或网络无法拉取源码,就只能从 GitHub Releases 下载对应平台的二进制包。这一步的关键是路径和权限,不是解压完就完事。
Buffalo框架 1.0.1 版本源码包下载,适合需要错误处理改进、依赖更新、render.Download 注释和 request logger 调整的 v1 项目。
常见错误现象:下载 buffalo_0.18.13_linux_amd64.tar.gz 解压出 buffalo 文件,直接执行报 permission denied;或复制到 /usr/local/bin 后仍提示 command not found。
- Linux/macOS:解压后运行
chmod +x buffalo,再sudo mv buffalo /usr/local/bin/ - Windows(无 Scoop):将
buffalo.exe放入已加入 PATH 的目录(如C:\Windows\System32),或新建%USERPROFILE%\bin并将其加入 PATH - 验证方式:新开终端,执行
which buffalo(Linux/macOS)或where buffalo(Windows),确保返回路径指向你刚放的文件
为什么不能用 buffalo plugins install 回滚 CLI 版本
buffalo plugins install 只管理项目级插件(比如 buffalo-pop),它操作的是 plugins.yaml 和 go.mod 中的依赖项,完全不触碰全局 buffalo 二进制。试图用它“降级 CLI”会静默失败,且不会报错。
真正影响命令可用性的只有两个东西:PATH 中的 buffalo 可执行文件、以及它的编译时绑定的 Go 运行时版本。所以任何想绕过 go install 或预编译包来切换 CLI 版本的操作,本质都是徒劳。
容易被忽略的一点:旧版 Buffalo CLI(如 v0.16.x)可能不兼容 Go 1.21+ 的模块校验机制,go install 会卡在 checksum mismatch。此时唯一办法是临时设置 GOPROXY=direct 或改用预编译包。

















