Buffalo CLI离线安装需预下载二进制并禁用插件联网检查:在有网机下载GitHub Releases包解压至PATH,手动迁移$HOME/.buffalo/plugins/目录,且须在config/env.go中设BUFFALO_PLUGIN_CHECK=false;Go依赖用go mod vendor,前端依赖用yarn install --frozen-lockfile打包。

Buffalo CLI 和插件在离线环境无法安装,核心原因是默认行为强依赖 GitHub 和 npm registry。必须提前在有网机器上完成二进制和插件缓存,再迁移至目标机器。
buffalo CLI 二进制必须预下载,不能靠 go install
离线机器没有网络,go install github.com/gobuffalo/cli/cmd/buffalo@latest 必然失败。go install 不是“复制”,而是实时拉代码、编译、安装三步——缺一不可。
- 去 GitHub Releases 下载对应系统的
buffalo_*.tar.gz(如buffalo_1.0.1_linux_amd64.tar.gz) - 解压后把
buffalo二进制文件放到/usr/local/bin/或任意PATH目录下,并运行chmod +x /usr/local/bin/buffalo - 验证:
buffalo version应输出类似v1.0.1的版本号
插件(如 buffalo-pop)需手动迁移缓存目录
Buffalo 插件不是全局 npm 包,而是独立二进制,每次 buffalo dev 都会检查更新——离线时卡住或报错。
Buffalo框架 1.0.1 版本源码包下载,适合需要错误处理改进、依赖更新、render.Download 注释和 request logger 调整的 v1 项目。
- 在有网机器执行:
buffalo plugins install github.com/gobuffalo/buffalo-pop/v3,插件二进制会落盘到$HOME/.buffalo/plugins/ - 打包该目录(如
tar -czf buffalo-plugins.tgz .buffalo/plugins),复制到离线机器的相同路径($HOME/.buffalo/plugins/) - 关键补丁:在
config/env.go中app.Init()调用前插入os.Setenv("BUFFALO_PLUGIN_CHECK", "false"),否则仍会尝试联网
Go 依赖和前端依赖要分两路处理
离线项目启动前,go mod tidy 和 yarn install 都会失败——但它们的解决路径完全不同。
-
go mod tidy:在有网机器执行一次,生成完整的go.sum和vendor/目录(用go mod vendor),然后把整个项目连同vendor/一起复制过去;离线机器直接go build即可 -
yarn install:如果项目含assets/,需在有网机器进assets/执行yarn install --frozen-lockfile,再把node_modules/打包带走;若纯 API 项目,新建时加--skip-yarn更省事
离线部署最易被忽略的是 SQLite 驱动编译依赖——即使不联网,buffalo new --with-sqlite3 仍需本地有 gcc 或 clang,否则 go build 阶段直接失败。这个条件跟网络无关,但常被当成“离线问题”误判。

















