本文介绍在64位的Ubuntu16.04系统上编译以太坊go语言源码go-ethereum的过程。git
go-ethereum主要是用go语言写的,很小一部分使用了C语言,所以编译go-ethereum源码须要go语言和C语言编译器,首先确保机器上有gcc编译器,而且正确安装了go语言 (安装教程),go语言版本推荐用go1.7及以上。github
编译go-ethereum有两种方法,一种是使用make工具编译,另外一种是使用go语言本身的编译工具编译。golang
首先下载go-ethereum源码:bash
$ git clone https://github.com/ethereum/go-ethereum.git $ cd go-ethereum $ git checkout v1.6.0
上面经过git clone
下载源码,而后经过git checkout
检出指定版本的代码,若是想使用其余版本,在git checkout
中指定相应的版本号便可。工具
接下来用make工具进行编译:ui
$ make geth
make会执行go-ethereum/build
目录下的编译脚本,编译脚本会调用go语言编译器进行编译。等待十几秒,编译就完成了,此时会在 go-ethereum/build/bin
中生成geth可执行文件。.net
输入 geth help
命令,会显示geth全部的命令和选项:code
$ cd build/bin $ ./geth help
若是熟悉go语言,能够直接使用go语言的编译工具编译。blog
首先在GOPATH/src
下建立github.com/ethereum
目录:教程
$ mkdir -p $GOPATH/src/github.com/ethereum
而后进入上面建立的目录,下载go-ethereum项目源码:
$ cd $GOPATH/src/github.com/ethereum $ git clone https://github.com/ethereum/go-ethereum.git $ cd go-ethereum $ git checkout v1.6.0
下载完成后,经过如下命令编译:
$ go install -v github.com/ethereum/go-ethereum/cmd/geth
go install
命令会编译指定的源码,并在GOPATH/bin
目录下生成geth可执行文件。
编译完成后,输入 geth help
命令,会显示geth全部的命令和选项:
$ cd $GOPATH/bin $ ./geth help
注:若是下载的是1.5.x版本的代码,编译出错的话,可能还要到golang中国下载golang.org.x.net.tar.gz
,并将其解压到GOPATH/src
中。解压以后的目录结构应该是这样的:
GOPATH/src ├── github.com │ └── ethereum │ └── go-ethereum └── golang.org └── x └── net
以后再经过上面的go install
命令编译安装便可。