go install 代替 go get 安装 bee/v2:从 Go 1.18 起,go get 不再安装可执行文件,必须用 go install github.com/beego/bee/v2@latest 生成 $GOPATH/bin/bee;需确保 GO111MODULE=on、GOPROXY=https://goproxy.cn,direct,且 $GOPATH/bin 在 $PATH 中。

go install 代替 go get 安装 bee/v2
从 Go 1.18 开始,go get 不再安装可执行命令,只下载源码;bee 是命令行工具,必须用 go install 生成二进制。直接运行 go get github.com/beego/bee/v2 会在 $GOPATH/src 下拉取代码,但 $GOPATH/bin/bee 不会出现,导致终端报 command not found: bee。
正确做法是:
- 确保已启用模块:
go env -w GO111MODULE=on - 配置国内代理(防超时):
go env -w GOPROXY=https://goproxy.cn,direct - 执行:
go install github.com/beego/bee/v2@latest - 验证:
bee version应输出类似v2.1.0
注意:不要加 -u 参数——go install 本身不支持该 flag,加了会报错。
beego/v2 导入路径和启动方式必须匹配
Beego v1 和 v2 的导入路径、启动函数完全不兼容。混用会导致编译失败或运行时 panic,比如 undefined: beego.Run 或 cannot use web.Controller as type beego.Controller。
关键点:
- 框架安装命令是:
go install github.com/beego/beego/v2@latest(不是astaxie/beego) - main.go 中导入必须写全:
"github.com/beego/beego/v2/server/web" - 启动必须用:
web.Run(),不是beego.Run() - 控制器结构体需嵌入:
web.Controller,而非beego.Controller
若项目里还残留 import "github.com/astaxie/beego",go mod tidy 会拉取 v1 的旧包,破坏 v2 的类型系统。
$GOPATH/bin 必须在 $PATH 中才能识别 bee 命令
bee 编译后默认落在 $GOPATH/bin/bee,不是 /usr/local/bin 或当前目录。Ubuntu 终端找不到命令,90% 是因为 $PATH 没包含该路径。
检查与修复步骤:
- 查当前
GOPATH:go env GOPATH(常见如/home/xxx/go) - 确认
$GOPATH/bin是否存在bee:ls $GOPATH/bin/bee - 临时生效(当前终端):
export PATH=$PATH:$GOPATH/bin - 永久生效(推荐):把上行写入
~/.zshrc(Zsh)或~/.bashrc(Bash),再source ~/.zshrc - 验证:
echo $PATH看是否含$GOPATH/bin,再试bee version
Ubuntu 新用户容易忽略这点,尤其用 sudo 安装后切回普通用户,PATH 未继承。
bee new 后必须立刻 go mod tidy
bee new myapp 生成的项目含 go.mod,但依赖项(如 beego/v2)并未写入,也未生成 go.sum。直接 bee run 或 go run main.go 会报 missing go.sum entry 或 no required module provides package。
标准流程是:
- 进入项目根目录(含
main.go和go.mod) - 立即执行:
go mod tidy - 若失败,先重设代理:
go env -w GOPROXY=https://goproxy.cn,direct,再重试 - 极少数缓存损坏可清空:
go clean -modcache,然后重go mod tidy
这个步骤不能跳过,也不是“可选优化”——它是 Go Modules 正常工作的强制校验环节。
Beego v2 的安装链条很短,但每个环节都卡在具体路径、命令语义或环境变量上。最容易被忽略的是 go install 和 go get 的语义切换,以及 $GOPATH/bin 未入 PATH 导致的“命令存在却不可用”。一旦路径或版本错一位,整个链路就断掉。


















