史上最详细--Ubuntu下搭建fabric1.4的环境(图文,以及遇到的错误,解决方案)

本人是一个动手能力超级弱的人,在此之前从来没有自己搭过环境,对于linux系统几乎不太懂。用了一个礼拜时间终于把fabric1.4环境搭好了,中间真的是遇到了很多很多问题,下面我将整个搭环境步骤和遇到的问题都总结下来,希望能帮到大家!!!

目录

配置阿里镜像源

go语言安装

安装Docker-Compose

Fabric环境部署

手动下载fabric-samples

下载二进制文件


配置阿里镜像源

①配置阿里镜像源
首先进行配置文件的备份
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

编辑配置文件
sudo vim /etc/apt/sources.list
或gedit /etc/apt/sources.list

在配置文件最后添加一下内容:
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

执行命令更新一下
sudo apt-get update

go语言安装

②Go语言安装
下载安装包
wget https://studygolang.com/dl/golang/go1.13.4.linux-amd64.tar.gz

解压安装
sudo tar -C /usr/local -zxf go1.13.4.linux-amd64.tar.gz

配置环境变量
// 以下方式选择一种
// 系统环境变量
vim ~/.bashrc
或gedit  ~/.bashrc
// 用户环境变量
vim /etc/profile
或gedit  /etc/profile

在文件最后添加以下内容
export PATH=$PATH:/usr/local/go/bin
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

更新配置文件
source ~/.bashrc

查看go语言是否安装成功
go version

安装Docker-CE

③安装Docker-CE
1、卸载旧版本docker
sudo apt-get remove docker docker-engine docker.io

2、添加HTTPS协议,允许apt从HTTPS安装软件包
ssudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
!请注意!我运行添加HTTPS协议时报错:E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
解决方案:https://blog.csdn.net/lun55423/article/details/108907779


3、安装GPG证书
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

4、写入软件源信息
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

5、更新并安装Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce

6、将当前用户添加到Docker用户组
    1.创建docker用户组
    sudo groupadd docker
    2.将当前用户添加到docker用户组
    sudo usermod -aG docker $USER
    3.退出当前终端
    exit

7、将docker镜像更改为国内镜像
编辑daemon.json文件,如果没有该文件自行创建
sudo touch /etc/docker/daemon.json
sudo vim /etc/docker/daemon.json

文件中添加以下内容
{
"registry-mirrors":["https://obou6wyb.mirror.aliyuncs.com","https://registry.docker-cn.com","http://hub-mirror.c.163.com"]
}

8、最后重启服务
sudo systemctl daemon-reload
sudo systemctl restart docker

9、查看docker版本,看是否安装成功
docker version
!请注意!我当时输入docker version报错permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/version": dial unix /var/run/docker.sock: connect: permission denied
解决方案:输入su root后,再次输入docker version就可以啦。

执行docker info,如果结果中含有如下内容则说明镜像配置成功:

安装Docker-Compose

在网上看到的帖子这两种方法我安装后全都失败!!!报错:Cannot open self /usr/local/bin/docker-compose or archive /usr/local/bin/docker-compose.pkg
------------------------------------------------------------------------------------------
方法一:
sudo curl -L https://github.com/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
或
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

用方法一下载完后要设置权限
sudo chmod +x /usr/local/bin/docker-compose

方法二:
sudo apt-get install python-pip
sudo pip install docker-compose

下载完成后查看是否安装成功
docker-compose version
------------------------------------------------------------------------------------------
下面是我的方法:
wget https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m) -O /usr/local/bin/docker-compose

下载完后要设置权限
sudo chmod +x /usr/local/bin/docker-compose

下载完成后查看是否安装成功
docker-compose --version

Fabric环境部署

从这里开始请注意路径,我当时安装的时候并没有注意到home路径和root路径的区别,在home下面提示没有权限,我输入su root之后有了权限,之后所有的文件都安装在root下的go文件夹下面,导致后面的运行失败,所以,我尽可能把路径写全,以防大家出现和我一样的问题。

1、创建文件夹
mkdir -p ~/go/src/github.com/hyperledger

2、进入刚刚创建的文件夹内
cd ~/go/src/github.com/hyperledger

3、拉取fabric的源码
方法一:从github上拉取fabric的源码(有的博主不推荐这种方法,可能会因为网络问题导致出错,不知道是不是因为我开了VPN,所以我用这种方法很快下载完了)
git clone "https://github.com/hyperledger/fabric.git"
方法二:通过码云地址下载
git clone https://gitee.com/fireflies-glimmer/fabric.git

4、将fabric版本切换为1.4分支
cd fabric
git checkout release-1.4

5、编译二进制文件
make release

6、查看生成的二进制文件
cd release/linux-amd64/bin

7、输入ls

如果文件夹中有以下文件说明编译成功

手动下载fabric-samples

进入fabric/scripts目录可以看到一个bootstrap.sh脚本,直接执行bootstrap.sh脚本。输入bash bootstrap.sh,自动下载fabric-samples。但是运行失败,所以不选择这种方法。

1、首先 cd ~/go/src/github.com/hyperledger ,进入该目录。请注意!我们最后下载下来的fabric-samples目录与fabric目录同级!

2、下载fabric-samples
git clone -b v1.4.0  https://gitee.com/fireflies-glimmer/fabric-samples.git
cd fabric-samples
git checkout v1.4.0  //切换版本

下载二进制文件

需要下载两个压缩包,选择相应版本下载,这是一个博主的网盘链接:(永久有效)
链接:https://pan.baidu.com/s/1hGH7-aGkCxX8eN3WnATSiw
提取码:xrve
压缩文件hyperledger-fabric-linux-amd64-1.4.0.tar包含bin和 config 两个文件夹
hyperledger-fabric-ca-linux-amd64-1.4.0.tar包含bin文件夹
将压缩包上传并解压到fabric-sample目录下

在windows中下载下来这两个压缩包后用一个软件将这两个压缩包传到Linux中

使用Xshell7通过Linux的ip连接,Xftp是嵌入到Xshell7里面的。当时遇到的第一个问题是Xshell7连接不上我的虚拟机,反复确认几次ip并没有出错。

当时报的错是:Unit ssh.service could not be found.
解决方案:
1、运行以下命令检查 OpenSSH 服务器是否已安装:

sudo apt list openssh-server
如果该命令输出显示 openssh-server/focal,now <version> amd64 [installed],其中 <version> 是 OpenSSH 服务器的版本号,表示 OpenSSH 服务器已安装。

2、如果 OpenSSH 服务器未安装,可以运行以下命令进行安装:

sudo apt update
sudo apt install openssh-server

3、启动 SSH 服务:运行以下命令来启动 SSH 服务:

sudo systemctl start ssh

4、验证 SSH 服务状态:运行以下命令来验证 SSH 服务的状态:

sudo systemctl status ssh
如果 SSH 服务正在运行,将会显示 "active (running)" 的状态。

遇到的第二个问题是文件直接不能直接传在~/go/src/github.com/hyperledger这个目录下,原因可能是这个go文件是加密的。所以我先将这两个文件复制在桌面上,在cd ~/Desktop 这个目录下通过命令

1、将hyperledger-fabric-ca-linux-amd64-1.4.0.tar.gz 复制到~/go/src/github.com/hyperledger/fabric-samples目录下

sudo cp hyperledger-fabric-ca-linux-amd64-1.4.0.tar.gz ~/go/src/github.com/hyperledger/fabric-samples

2、将hyperledger-fabric-linux-amd64-1.4.0.tar.gz 复制到~/go/src/github.com/hyperledger/fabric-samples目录下

3、在这个目录下进行解压
tar -zxvf hyperledger-fabric-linux-amd64-1.4.0.tar
tar -zxvf hyperledger-fabric-ca-linux-amd64-1.4.0.tar

解压之后会出现下面这两个文件夹

将 fabric/scripts 目录下的 bootstrap.sh 脚本,复制到fabric-sample目录下

cd ~/go/src/github.com/hyperledger/fabric/scripts
执行sudo cp bootstrap.sh ~/go/src/github.com/hyperledger/fabric-samples

删除 bootstrap.sh文件中的samplesInstall 和 binariesInstall 步骤,保留镜像下载的步骤。

修改bootstrap.sh文件,记得先备份
bootstrap.sh文件是只读文件,所以要想修改它,执行sudo chmod a+w bootstrap.sh

vim bootstrap.sh

将我下面图片的函数删掉

执行 bootstrap.sh 脚本:

$ ./bootstrap.sh 1.4.0 1.4.0 0.4.15

查看镜像

cd ~/go/src/github.com/hyperledger/fabric-samples/first-network

执行 ./byfn.sh generate

报错

解决方案:
1、cd ~/go/src/github.com/hyperledger/fabric-samples/first-network 
执行 docker-compose -f docker-compose-cli.yaml down

2、接着执行sudo ./byfn.sh down

3、sudo ./byfn.sh generate 成功生成证书

4、./byfn.sh up

报错

1、进入~/go/src/github.com/hyperledger/fabric-samples/first-network目录下输入
sudo chmod a+w docker-compose-cli.yaml

2、vim docker-compose-cli.yaml
在这个文件中的environment中添加 -GODEBUG=netdns=go

3、cd base, 现在的目录是~/go/src/github.com/hyperledger/fabric-samples/first-network/base

4、sudo chmod a+w peer-base.yaml

5、vim peer-base.yaml
在这个文件中的environment中添加 -GODEBUG=netdns=go

6、先关掉
sudo ./byfn.sh down

7、再次重新生成证书,启动
sudo ./byfn.sh generate
sudo ./byfn.sh up

再次报错,由于我之前创建过默认通道,错误显示通道已存在

1、在~/go/src/github.com/hyperledger/fabric-samples/first-network目录下执行
docker rmi -f $(docker ps -aq)

2、继续执行docker volume prune

3、关闭
sudo ./byfn.sh down

4、重新生成证书,启动
sudo ./byfn.sh generate
./byfn.sh up

最终就成功啦!

参考资料:Hyperledger Fabric1.4环境搭建及示例测试-CSDN博客

ubuntu搭建fabric的环境_在ubuntu上搭建fabric环境’-CSDN博客

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值