go 语言 mage 安装踩坑

embedded/2024/9/22 17:05:34/

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

安装成功。。。 


http://www.ppmy.cn/embedded/7014.html

相关文章

使用脚本启动和关闭微服务

使用脚本启动和关闭微服务 一、前言二、启动1、处理每个服务2、编写启动脚本3、其他启动脚本(无效,有兴趣可以看看)4、启动 三、关闭1、测试拿服务进程id的命令是否正确2、编写关闭脚本3、关闭 一、前言 假如在服务器中部署微服务不使用 doc…

欧拉公式;傅里叶变换;自然数e;虚数

目录 欧拉公式 从X轴观察室Sin 从y轴观察室cos 单位时间t转一圈:2pai*t 矢量和标量

HarmonyOS Next 视频弹幕功能

视频弹幕功能 介绍 本示例介绍如何使用ohos.danmakuflamemaster和ohos.gsyvideoplayer开发支持视频弹幕的播放器。可以自定义弹幕样式、占据屏幕宽度,发送弹幕,开关弹幕视图。 效果图预览 使用说明 点击播放按钮,进行视频播放&#xff0c…

基于python网络爬虫的二手房源数据采集及可视化分析的设计与实现

基于python网络爬虫的二手房源数据采集及可视化分析的设计与实现 Design and Implementation of Data Collection and Visualization Analysis of Second-hand Housing Listings Based on Python Web Scraping 完整下载链接:基于python网络爬虫的二手房源数据采集及可视化分析…

Postman之全局变量与环境变量配置

实际开发中可能需要不停切换环境,接口中来回输入环境地址比较麻烦,故而通过定义变量来节约频繁更换测试地址所耗费的时间。Postman 允许定义自己的全局变量(Globals)与环境变量(Environment),最…

[论文笔记]Root Mean Square Layer Normalization

引言 今天带来论文Root Mean Square Layer Normalization的笔记,论文题目是均方根层归一化。 本篇工作提出了RMSNorm,认为可以省略重新居中步骤。 简介 层归一化对Transformer等模型非常重要,它可以帮助稳定训练并提升模型收敛性&#xf…

Openlayers动态刷新Arcgis MapServer服务图层

Openlayers动态刷新Arcgis MapServer服务图层 最近做一个图层编辑的功能,在前端新增一个图块之后需要刷新Arcgis切片服务,实时显示效果。刚开始使用source的refresh方法,结果不生效,后来在source上更新一个时间戳参数实现了刷新切…

WAF攻防-权限控制代码免杀异或运算变量覆盖混淆加密传参

知识点 1、脚本后门基础&原理 2、脚本后门查杀绕过机制 3、权限维持-覆盖&传参&加密&异或等 章节点: WAF绕过主要集中在信息收集,漏洞发现,漏洞利用,权限控制四个阶段。 代码表面层免杀-ASP&PHP&JSP&a…