Golang源码构建Grafana时遇到的错误

Golang源码构建Grafana时遇到的错误 你好!

我正在尝试在 Windows 10 (64位) 上从源代码构建 Grafana,但不幸地遇到了以下错误。

grafana_error

有人知道问题出在哪里吗?

此致

11 回复

尝试运行 make 时出现的错误很可能就是问题的一部分。你安装 make 了吗?抱歉,我不使用 Windows,所以在这方面可能帮不上太多忙。

更多关于Golang源码构建Grafana时遇到的错误的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


您也可以向 Grafana 社区的人咨询,因为在我看来,这似乎不是一个特定的 Go 问题,而是一个让 Grafana 构建运行起来的问题。谢谢!抱歉我没能提供更多帮助。

你好! 我最终通过 下载 | tdm-gcc 并使用以下命令成功构建了它。

grafana_build_32

非常感谢!

你可以尝试在Cygwin环境下构建:似乎缺少一些必需的常用工具,例如trgrep。如果我没记错的话,微软也有一个“find”命令,这可能是导致失败的原因。

我曾经在Cygwin下构建过控制台级别的应用程序,这些程序也能在云端运行并镜像输出(除了某些浮点数问题),没有遇到任何问题。但我没有构建过图形界面的包,那可能需要一些MinGW的技巧。

我将Go语言版本从1.20降级到1.14,幸运的是,我不再看到上述错误,但出现了与go-sqlite版本相关的问题,我附上截图供您参考。

error

为了方便您更好地分析,我提供以下指向我的go.mod文件的链接。

go.mod

再次致意

你可能想查看一下 Grafana 的构建说明。

开发者指南

本指南帮助你开始开发 Grafana。

依赖项

在设置开发环境之前,请确保已安装以下依赖项:

macOS

我们建议使用 Homebrew 来安装任何缺失的依赖项:

brew install git
brew install go

此文件已被截断。显示原文

你好,感谢你的回复!

我已经检查过 Grafana 的构建说明,不幸的是,我遇到了与以下链接中提到相同的问题:Grafana 从源代码构建错误(未定义:server.Initialize)- #8 by zahrazare313 - 安装 - Grafana Labs 社区论坛

Wire 工具已安装在 $GOPATH/bin/wire.exe,并且此路径也已添加到我的系统环境变量中。

build_error

有什么可以帮助我的想法吗?

此致

我按照说明安装了Cygwin(C:\cygwin64),然后遇到了以下错误。

cygwin_error

此外,我从Grafana支持团队那里得到的反馈并非预期的结果,因为他们只为商业解决方案提供工单支持。

email_support

很遗憾,我不得不再说一遍,对此表示抱歉。有没有人通过其他操作系统编译过,然后专门通过Go环境变量为Windows(32位版本)构建它?

我认为这会对我有很大帮助!

此致

我终于成功通过Cygwin无问题地运行了 make gen-go 命令,这得益于对 Variables.mk 的以下提示:

Chore: Update developer guide with instructions building from Windows

我已经通过 make gen-go 生成了以下文件 (wire-ν0.5.0)

gobin

不幸的是,由于以下错误,我无法继续执行后续步骤:

gen_error

当然,仍然是同样的错误:

grafana_error

有什么想法吗?

致意

我刚刚为Windows安装了make

Make for Windows

但在Windows 10上仍然遇到相同的错误(Grafana building from source error (undefined: server.Initialize) - #7 by tomschirgi - Installation - Grafana Labs Community Forums

cmd_grafana

make gen-go

我收到错误:未找到文件 *.sh。 process_begin: CreateProcess(NULL, # Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies., …)

我肯定会向Grafana团队发送反馈,但我不确定根据博客文章的内容!

有没有人通过其他操作系统编译过它,然后专门通过Go环境变量为Win(32位版本)构建它?我认为这会对我有很大帮助!

go_env

此致

根据你提供的错误信息,这是一个典型的Go模块代理访问问题。错误显示go mod download阶段无法从代理服务器获取依赖包,具体是golang.org/x/sys包获取失败。

主要原因是默认的Go代理(proxy.golang.org)在中国大陆访问不稳定或受限。以下是解决方案:

解决方案:更换Go模块代理

在构建前,设置国内可访问的Go模块代理:

方法1:临时设置环境变量(推荐)

# Windows PowerShell
$env:GOPROXY = "https://goproxy.cn,direct"
$env:GONOSUMDB = "*"

# 或者使用阿里云代理
$env:GOPROXY = "https://mirrors.aliyun.com/goproxy/,direct"

方法2:永久配置

# 设置永久环境变量
go env -w GOPROXY=https://goproxy.cn,direct
go env -w GONOSUMDB=*

方法3:在构建命令中直接指定

# 使用代理构建Grafana
GOPROXY=https://goproxy.cn go run build.go build

完整构建示例

# 1. 设置代理
$env:GOPROXY = "https://goproxy.cn,direct"

# 2. 清理旧的依赖缓存(可选)
go clean -modcache

# 3. 进入Grafana源码目录
cd C:\path\to\grafana

# 4. 下载所有依赖
go mod download

# 5. 开始构建
go run build.go build

如果问题仍然存在

尝试关闭Go模块校验:

$env:GOSUMDB = "off"
$env:GOPROXY = "https://goproxy.cn,direct"

# 然后重新构建
go run build.go build

验证代理设置

检查当前代理配置:

go env GOPROXY

正确配置后应该显示:

https://goproxy.cn,direct

这个问题不是Grafana特有的,而是Go模块代理的可访问性问题。更换为国内代理后应该能正常下载依赖并完成构建。

回到顶部