go 语言 mage 安装踩坑

具体安装代码: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文件,所以报错了。

安装成功。。。

相关推荐
2401_8543910811 分钟前
城镇住房保障:SpringBoot系统功能概览
java·spring boot·后端
hummhumm13 分钟前
Oracle 第29章:Oracle数据库未来展望
java·开发语言·数据库·python·sql·oracle·database
陈随易16 分钟前
兔小巢收费引发的论坛调研Node和Deno有感
前端·后端·程序员
聪明的墨菲特i21 分钟前
Django前后端分离基本流程
后端·python·django·web3
wainyz22 分钟前
Java NIO操作
java·开发语言·nio
喵叔哟30 分钟前
重构代码之用委托替代继承
开发语言·重构
lzb_kkk36 分钟前
【JavaEE】JUC的常见类
java·开发语言·java-ee
SEEONTIME36 分钟前
python-24-一篇文章彻底掌握Python HTTP库Requests
开发语言·python·http·http库requests
起名字真南1 小时前
【OJ题解】C++实现字符串大数相乘:无BigInteger库的字符串乘积解决方案
开发语言·c++·leetcode
tyler_download1 小时前
golang 实现比特币内核:实现基于椭圆曲线的数字签名和验证
开发语言·数据库·golang