具体安装代码:mage 官方地址:Mage :: Mage
git clone https://github.com/magefile/mage
cd mage
go run bootstrap.go
在go部署完后,执行上面的脚本,发现最后一句老是执行不成功:
root@BDGF-7FPQW93:/home/gw00241401/mage# sudo go run bootstrap.go
Running target: Install
exec: go "env" "GOBIN"
exec: go "env" "GOPATH"
Error: failed to create "/root/go/bin": mkdir /root/go/bin: no such file or directory
exit status 1
go 环境如下:
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/root/.cache/go-build"
GOENV="/root/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/root/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/lib/go-1.13"
GOSUMDB="sum.golang.org"
我是用apt install golang-go 的
GOBIN 变量为空,GOPATH为/root/go,但其实这个路径并不存在。
于是我由改成下载go的tar包,进行解压缩安装。
参考地址:https://www.runoob.com/go/go-environment.html
tar -C /usr/local -xzf go1.4.linux-amd64.tar.gz
这句话是将go环境解压到/usr/local/go
我猜测mage 安装最后一句 go run bootstrap.go 时,先找GOBIN路径,如果没有再找GOPATH路径,然后编译mage文件到找到的目录;
所以,显示如下信息
root@BDGF-7FPQW93:/home/gw00241401/mage# sudo go run bootstrap.go
Running target: Install
exec: go "env" "GOBIN"
exec: go "env" "GOPATH"
但,如果把mage文件放到GOPATH下,在命令行执行mage是找不到文件的;
所以,我果断设置GOBIN变量,然后重新执行 go ruan bootstrap.go
root@BDGF-7FPQW93:/home/gw00241401/mage# go run bootstrap.go
Running target: Install
exec: go "env" "GOBIN"
exec: git "rev-parse" "--short" "HEAD"
exec: git "describe" "--tags"
exec: go "build" "-o" "/usr/local/go/bin/mage" "-ldflags=-X \"github.com/magefile/mage/mage.timestamp=2024-04-20T18:01:04+08:00\" -X \"github.com/magefile/mage/mage.commitHash=2385abb\" -X \"github.com/magefile/mage/mage.gitTag=v1.15.0-5-g2385abb\"" "github.com/magefile/mage"
然后执行mage验证如下:
root@BDGF-7FPQW93:/home/gw00241401# mage
No .go files marked with the mage build tag in this directory.
mage 要找不到要编译的go文件,所以报错了。
安装成功。。。