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 打开就可以了。

结束语

  • 这篇文章之前写了一半多,然后忘了,可能有些细节不够完善,后续将持续更新。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章