文章目录
前言
之前一直在使用fabric编译好的镜像,这次想自己去手动编译下fabric的源码,去生成peer,orderer这些二进制文件以及cryptogen这些工具和docker镜像。
如果网络没有问题的话,在fabric目录下,使用makefile,直接make all即可。
但是做的时候,才知道由于国内网络的原因,很多库都不能使用,造成编译失败。在网络上也没找到很好的贴子,官方的文档,也没有详细的描述,可能是因为简单吧,网络好的时候,直接就可以成功的。
现把我踩坑的记录整理如下:
1. 环境变量
本文是基于ubutu 18.04,Fabric v1.3.0。
环境变量的设置,不用详细的描述,需要下载curl,git,node.js,docker,docker-compose等工具,不会的童鞋可以自己百度。
我想说下go环境的变量的配置,其实百度上的教程挺多的,但是都是抄来抄去的,按照这样做并不好,我先来贴出来我的,再来进行详细的解释(来源于官网)。
export GOPATH=/opt/gopath
export PATH=$PATH:/opt/go/bin
第二行设置的是go的安装目录,我的目录是/opt/go,我们需要把go的bin目录设置倒环境变量PATH中。在第一行我设置的是GOPATH,GOPATH是go的工作目录。在go1.8之后,如果不设置这个值的话,默认目录是~/go。还需要注意的一点是go的工作目录不能和安装目录不能一样。(插一句题外话,工作目录用来存放Go的源码,Go的可运行文件以及相应的编译之后的包文件,即src,bin,pkg。)
注意:GOPATH不需要设置到PATH中,设置好GO的安装目录后,会自动寻找GOPATH。