fabric-iot的环境前搭建的安装准备

起点为一个全新的Ubuntu系统
在我的电脑上已经搭建完成,处于可运行状态时的环境版本:

软件 版本
git 2.7.4
docker 19.03.12
docker-compose 1.24.1
node 12.18.3
GOlang 1.14.6
Hyperledger Fabric release-1.4

fabric-iot的环境前搭建的安装准备_第1张图片

注意事项:
1、docker的版本和docker-compose的版本需要匹配,具体什么样的匹配关系,可以查阅文档…安装在下面,继续往下看
2、版本编号问题。对于软件的版本(a.b.c),a代表一个大版本更新,部分软件会造成大版本之间的不兼容性,例如Fabric1.x和Fabric2.x版本之间就不匹配。
3、fabric测试网络的时候出现找不到shim包的问题,也是由于注意事项2中所述的版本兼容性问题。现在的Fabric版本是2.x,即使尝试使用go get github.com/hyperledger/fabric/core/chaincode/shim来安装也无法解决。不仅仅是shim包,还有peer包protos包都是这样的情况。后面将会讲解如何切换Fabric的版本。
4、安装过程中可能会出现一些问题,可以留言或者私信,互相探讨。我所遇到的问题,都在前面的博客中有所叙述。其中未解决的问题,解决之后会更新。

1、安装go语言环境

1、百度会有很多关于go语言安装的教程,这里在大致叙述一下安装过程。安装过程在下面的代码行中
2、我所安装使用的软件包的下载地址为:go1.14.6。可以直接保存下载文件,一般默认的文件目录为/home/yjzhu/Downloads。另一种下载方式是直接执行命令wget https://dl.google.com/go/go1.14.6.linux-amd64.tar.gz
3、go的路径下会有binpkgsrc三个文件夹。具体如下图所示:
src目录放置不同版本的开发代码库,通常每个代码库下包含多个package(Golang中,包的概念);
bin目录放置go install产生的的二进制可执行文件(通常基于main.go编译产生);
pkg目录放置go install产生的静态链接文件(.a文件),具体地讲,静态链接文件通常放置在pkg目录的二级目录。fabric-iot的环境前搭建的安装准备_第2张图片

具体的安装命令如下所示:

# 打开安装包所在的位置,打开之后可以通过`ls`命令查看安装包是否存在
$ cd /home/yjzhu/Downloads
# 解压该文件到/usr/local下
$ sudo tar -zxvf go1.14.6.linux-amd64.tar.gz -C /usr/local
# 回到你需要创建go路径的目录下,然后创建go的路径文件。
# 我选择在/home下创建,我在这个路径下创建的文件或者文件夹都需要root权限的
# 需要等完成基本的创建后,需要更改这个路径下文件的权限。
$ cd /home/
$ sudo mkdir gopath
$ sudo chmod -R 777 gopath
$ cd gopath
# 创建3个必须的目录
$ mkdir src
$ mkdir bin
$ mkdir pkg
# 设置环境变量,让系统可以识别go路径所在的位置
# 打开环境变量配置的文件
$ sudo vim /etc/profile
# 在打开的文件末尾追加如下内容(vim编辑模式,摁`i`进入编辑后再输入下面内容):
export GOROOT=/usr/local/go
export GOBIN=$GOROOT/bin
export GOPATH=/home/gopath
export PATH=$GOPATH:$GOBIN:$GOROOT/bin:$PATH
# 上述内容输入完毕后需要保存退出,也需要vim编辑模式的指令,先摁Esc键,然后输入下面命令
:wq
# 使更改过的环境变量配置文件生效
$ source /etc/profile
# 可以通过命令查看环境是否搭建成功:1、查看版本   2、查看go的环境变量
$ go version
$ go env

现在(很重要):最重要的一步,右上角->注销->登出->输入密码重新登录

原因:你执行source /etc/profile之后,仅仅是一个终端重新读取了环境变量,但是另外的终端是没有读取到的。所以重登之后,你的账户会重新读取环境变量,这样就可以作用到所有的终端。

在此补充一个小bug,日常我们通过go get xxxx安装某个go包的时候出现timeout的情况,可以在执行命令前在终端输入:
$ export GO111MODULE=on
$ export GOPROXY=https://goproxy.io,direct
再次尝试go get应该会成功的。

2、git

这个git的安装更加简单

$ sudo apt-get install git
$ git version
# 配置用户名和用户邮箱的格式为:(根据自己的实际情况需要更改)
# git config --global user.name "xxx"
# git config --global user.email "xxx"
$ git config --global user.name "yjzhu1106"
$ git config --global user.email "[email protected]"

1、这就已经安装完毕了,但是你如果想正常使用,很多配置是不可少的。推荐读者去学习一下git的使用方式,是十分有用的,在后面的fabric安装中也会遇到的。附一份还不错的安装使用教程
2、git没有必要安装和我一样的版本,一般只有克隆项目、分支切换的时候会使用。安装最新版本就行,上述命令默认安装最新版本。

3、Docker和Docker-compose

1、docker版本一般也是安装最新版本,但是compose的版本一定要和docker版本匹配,否则后面出现错误,都不知道怎么修改。docker可以安装最新版本,这个不错要求,主要是compose的版本跟的上,附一份docker的安装教程。
2、docker-compose的版本,需要我们手动安装一下,因为自动安装的可能会有点老。手动安装最新版本就行,一般都可以和最新版本的docker相互匹配的。具体的安装过程如下:

# 首先查看你电脑里面有没有docker-compose,我的电脑里面有个最初版本,太老了,需要替换掉,替换很简单。
$ docker-compose -v
# 如果有docker-compose,那么先卸载,其实就是删除一个二进制文件
$ sudo rm /usr/bin/docker-compose
# 再检查一下,返回结果应该是找不到docker-compose命令
$ docker-compose -v
# 下载安装docker-compose,此处我指定了版本为1.24.1,可以通过下面这个地址查看现在最新版本。
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 将下载好的文件赋予可执行的权限
$ sudo chmod +x /usr/local/bin/docker-compose
# 查看是否安装成功
$ docker-compose -v
# 如果返回版本号对应你安装的版本就是安装成功了。

补充,镜像加速的设置,可以避免拉取镜像时出现timeout错误
$ cd /etc/docker
#如果没有这个文件就创建一个
$ sudo vim /etc/docker/daemon.json
#输入内容下所示
{ "registry-mirrors": ["https://aa25jngun.mirror.aliyuncs.com"] }
#然后保存退出执行下面命令
$ sudo service docker restart

4、Node的安装(又叫Nodejs)

1、先下载Node的安装包,下载地址(如果下载的文件后缀不是gz,那么解压步骤就不对),一般下载LTS,可以直接保存下载文件,一般默认的文件目录为/home/yjzhu/Downloads。
2、上面下载的包是源码,解压之后就有node和npm,无需重复编译。
3、参考教程,不想看参考教程的,可以根据下面的进行操作
4、如果上面下载地址下载不了gz的文件,那么去工作站的服务器上下载。GOFS的地址:http://10.10.24.14:8087
公共账号登录


$ sudo rm -rf /usr/bin/node
$ sudo rm -rf /usr/bin/npm
$ cd /home/yjzhu/Downloads
$ sudo tar -xzvf node-v12.18.3-linux-x64.tar.gz -C /usr/local
$ cd /usr/local
$ sudo mv node-v12.18.3-linux-x64/ node/
$ sudo vim /etc/profile
# 设置环境变量,在文件的最后面输入下面的变量
export NODE=/usr/local/node
export PATH=$PATH:${NODE}/bin
# 保存退出
$ source /etc/profile
$ node -v
$ npm -v

5、fabric1.4版本的安装

1、fabric1.4的源码安装没有那么麻烦,其实很简单。
2、在安装fabric之前,参考链接中的第三方包下载,安装好第三方包。
3、我是为了搭建师兄写好的一个实验环境,所以此处没有做关于fabric拉取镜像的操作,读者需要的话,可以使用在fabric目录下命令make docker或者在fabric/scripts目录下输入指令./bootstrap.sh来获取镜像和fabric-samples
4、如果要搭建师兄的fabric-iot环境,就先不要拉取镜像,通过命令docker images查看已经安装的镜像,最好镜像为空。

# 第三方包准备(先设置两个变量,然后再下载)
$ cd $GOPATH/src
$ sudo mkdir –p golang.org/x
$ cd golang.org/x
$ git clone https://github.com/golang/tools.git
$ export GO111MODULE=on
$ export GOPROXY=https://goproxy.io,direct
$ go get -u github.com/gpmgo/gopm
$ go get github.com/kardianos/govendor
$ go get golang.org/x/tools/cmd/goimports
$ go get github.com/onsi/ginkgo/ginkgo
$ go get github.com/axw/gocov/...
$ go get github.com/client9/misspell/cmd/misspell
$ go get github.com/AlekSi/gocov-xml
$ go get github.com/golang/protobuf/protoc-gen-go
$ cd /usr/local/
$ sudo chmod -R 777 go
$ cd $GOPATH/src/github.com/golang/lint
$ git clone https://github.com/golang/lint.git
$ cd $GOPATH/src/github.com/golang/lint/golint
$ go install
$ sudo apt-get install libltdl-dev
# 正是开始fabric1.4的安装
$ cd $GOPATH
$ sudo mkdir src/github.com/hyperledger
$ cd src/github.com/hyperledger
$ git clone https://github.com/hyperledger/fabric.git
$ cd fabric
# 你现在的fabric源码是最新的,需要的是1.4版本的源码。
# 现在开始切换,首先查看分支,然后选择和1.4有关的分支,切换过去,就会得到1.4版本
$ git branch -a
$ git checkout remotes/origin/release-1.4
# 获取所需要的二进制文件
$ make release

1、获取到生成的二进制文件,所在的目录在在这里插入图片描述
2、将该路径下的二进制文件全部粘贴复制到路径$GOPATH/bin下。

接下来可以根据师兄给出的源代码和教程安装fabric-iot环境。

你可能感兴趣的:(fabric)