準備工作確認:
- 系統:Windows 10 x64
- 軟件準備:
- GO 版本:儘量使用跟官網一樣的版本,如何確認呢? 筆者是通過Github的更新記錄進行確認版本的,這點其實挺重要的,如果用高版本或者新版本,不能確保是否出現莫名其妙的坑,而且可能是大坑,https://github.com/grafana/grafana/releases, 筆者看到最新build的版本是1.12.10,於是選擇了該版本,具體的大家可以根據這個做選擇。
- Git,這個應該沒有太高的要求,只是從github中Clone 源碼,筆者的版本是Git-2.23.0-64-bit.exe
- NodeJs,可以選擇使用最新的穩定版本,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/
本文是原創,如發現錯誤請更正,如需要轉載,請寫明出處。