准备工作确认:
系统:Windows 10 x64软件准备: GO 版本:尽量使用跟官网一样的版本,如何确认呢? 笔者是通过Github的更新记录进行确认版本的,这点其实挺重要的,如果用高版本或者新版本,不能确保是否出现莫名其妙的坑,而且可能是大坑,https://github.com/grafana/grafana/releases, 笔者看到最新build的版本是1.12.10,于是选择了该版本,具体的大家可以根据这个做选择。Git,这个应该没有太高的要求,只是从github中Clone 源码,笔者的版本是Git-2.23.0-64-bit.exeNodeJs,可以选择使用最新的稳定版本,Grafana的编译说明有此说明For this you need nodejs (v.6+)Nod-gyp,Grafana提及的前端编译工具TDD-GCC,也是使用Grafana提及的Gcc工具 软件安装1)go1.12.10.windows-amd64.msi 安装完后,添加环境变量($GOPATH)及其Path添加GO的bin路径
确定Go的是否正常运行
2)NodeJS 和Git 默认安装即可(安装路径自己喜欢),同样确保环境变量(Path)中添加相关的Bin路径。
3)其他软件在下面出现的坑中述说。
获取源码进入$GoPATH(G:\01-monitor\04-grafana\code\go)后运行:
#go get github.com/grafana/grafana上面的命令从Github中获取最新的源码,天朝的网络....所以笔者选择直接从github中下载当前稳定的版本V6.4.3,解压后放入$GoPATH
目录,最终的目录是G:\01-monitor\04-grafana\code\go\src\github.com\grafana\grafana(粗体为$GOPATH目录)
编译源码 后端编译
进入Grafana的根目录($GOPATH\src\github.com\grafana\grafana):
#go run build.go setup这里有两个地方需要注意
1)找不到pkg
需要确认src的源码是否是$GOPATH\src\github.com\grafana\grafana
2)go-sqlite3编译或者获取失败
原因是go-sqlite3需要GCC进行编译,因此笔者继续安装TDM-GCC,可以用其他GCC编译软件,为了少踩坑,笔者建议选择跟网络一致的GCC软件,安装正常安装即可,这里不详细叙说,需要注意的是,如果你电脑安装了多个gcc编译软件,你需要确认正常运行的默 认Gcc是否是你所需要的(把你所需要的在Path环境变量中放在前面)
确认GCC的版本:
续运行go run build.go setup
看到上面的画面,恭喜可以拖走了,继续下面的命令
#go run build.go build就此,Grafana的后端编译完成,下面进行前端的编译
前端编译1)安装node-gyp 前端编译工具
windows 需要管理员运行cmd或powershell,然后运行下面的命令,检查npm dependencies
# npm --add-python-to-path='true' --debug install --global windows-build-tools此过程或安装python2.7 和windows build tools, 笔者机上一起顺利
2)正式开始编译
#npm install -g yarn #yarn install --pure-lockfile这里有几个坑需要填平才能继续
坑1
运行set-ExecutionPolicy RemoteSigned
坑2
#yarn config set ignore-engines true
继续运行yarn install --pure-lockfile,
经过长时间的等待(如果能vpn,尽量vpn)
上面出现的错误,笔者也没明白,但是目前 没有影响笔者的后面插件源码修改之路
运行
#yarn start出现上面,恭喜你,成功了
修改grafana/conf/defaults.ini
http_port = 3000
运行(大家看看生成的bin和grafana的根目录的层次关系,就明白笔者的运行为啥那么多层了,grafana默认使用当前目录的/conf/default.ini)
浏览器中打开 http://localhost:3000 默认账户密码 admin/admin
这个只是源码编译,如果需要参与源码开发,请运行,笔者这块没有尝试了
#go get github.com/unknown/bra
#bra run
具体请参看https://grafana.com/docs/project/building_from_source/
本文是原创,如发现错误请更正,如需要转载,请写明出处。