etcd 源碼閱讀環境搭建

最近一個項目用了 etcd,想研讀一下 etcd 源碼。既然是源碼閱讀,第一步就是搭建源碼閱讀環境,好像網上沒有類似的文章;官網也沒有提供文檔。在下不算特別熟悉 go 語言,有一年沒認真寫 go 了,所以倒騰了很久。總算還是倒騰出來了,遂寫文章記錄一下,好記性不如爛鍵盤。

  • 注:本文暫時基於 etcd 的 master 分支,對於 release-3.3 分支,還沒有詳細研究過,詳細研究過之後再補充一下。

第一步:安裝 go 語言及環境配置

  • 安裝go,版本需要在 1.11 及以上,因爲 master 分支已經使用 go module 進行依賴管理了。
  • 配置環境變量:GO111MODULE=on,因爲要開啓 go module ,一定要配這個環境變量。

第二步:clone etcd 源碼

git clone https://github.com/etcd-io/etcd.git
  • 添加到 go.mod 文件
replace (
	golang.org/x/crypto => github.com/golang/crypto v0.0.0-20190313024323-a1f597ede03a
	golang.org/x/sys => github.com/golang/sys v0.0.0-20190318195719-6c81ef8f67ca
	golang.org/x/text => github.com/golang/text v0.3.0
	golang.org/x/lint => github.com/golang/lint v0.0.0-20190409202823-959b441ac422
	golang.org/x/time => github.com/golang/time v0.0.0-20190308202827-9d24e82272b4
	golang.org/x/tools => github.com/golang/tools v0.0.0-20190529010454-aa71c3f32488
	golang.org/x/oauth2 => github.com/golang/oauth2 v0.0.0-20190523182746-aaccbc9213b0
	golang.org/x/net => github.com/golang/net v0.0.0-20190318221613-d196dffd7c2b
	golang.org/x/exp => github.com/golang/exp master
	cloud.google.com/go => github.com/googleapis/google-cloud-go master
	google.golang.org/genproto => github.com/google/go-genproto v0.0.0-20190522204451-c2c4e71fbf69
	google.golang.org/grpc => github.com/grpc/grpc-go v1.21.0
	google.golang.org/appengine => github.com/golang/appengine v1.6.1-0.20190515044707-311d3c5cf937
	golang.org/x/sync => github.com/golang/sync v0.0.0-20190227155943-e225da77a7e6
	sigs.k8s.io/yaml v1.1.0 => github.com/kubernetes-sigs/yaml v1.1.0
)
  • 之後用 GoLand 打開就可以了。

結束語

  • 這篇文章之前寫了一半多,然後忘了,可能有些細節不夠完善,後續將持續更新。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章