(一)fabric环境配置及问题解决
目录
Tips:配置过程出现的各种问题及解决方案跟在相应步骤的后面。
1. 安装相关依赖
1. 更换镜像源
- 官方镜像下东西特别卡,我们把镜像换成国内的。这个比较简单,参考ubuntu更改镜像源(软件源),换完以后执行
sudo apt upgrade
sudo apt update
更新一下。
2. 安装git
- 安装命令:
sudo apt install git
3. 安装curl
- 一般用安装命令:
sudo apt install curl
下不到我们要的curl,直接手动安装openssl和curl(安装顺序不能反,先openssl再curl,否则curl依然不支持https)步骤如下: - 安装openssl
wget https://www.openssl.org/source/old/1.1.0/openssl-1.1.0f.tar.gz //下载安装包
tar -zxvf openssl-1.1.of.tar.gz
cd openssl
./config enable-shared
make
make install
openssl verison //出现版本号即成功
- 安装curl
wget https://curl.haxx.se/download/curl-7.54.1.tar.gz
tar -zxvf curl-7.54.1.tar.gz
cd curl-7.54.1
./configure --with-ssl=/usr/local/ssl
make
make install
curl -V //出现版本号并且protocols支持https说明配置curl成功
- 问题1:出现
curl: symbol lookup error: curl: undefined symbol: curl_mime_free
错误提示 - 问题1解决方案:
sudo apt-get install libcurl3
,下载成功就好了。下载过程中如果提示包依赖冲突,用sudo aptitude install libcurl3
替代,选择第二个降级方案(没有aptitude就下一个,同样的道理)。再不行就把所有的库依赖升级试试看sudo apt-get upgrade
。
4. 安装docker、docker-compose及镜像加速器
- 使用apt-get下载的docker版本很低,所以我们还是手动安装:
wget -qO- https://get.docker.com/ | sh //获取最新docker安装包
docker --version //查看版本号
sudo usermod -aG docker 用户名 //加入docker用户组
sudo service docker start //启动docker后台服务
sudo aptitude install docker-compose //用aptitiude下载避免依赖冲突
docker-compose--version //查看版本号
sudo chmod +x /usr/share/doc/docker-compose //为其它用户开放权限
下完docker趁着它还热乎,我们配下镜像加速器,为拉取镜像文件做准备(否则进度条会龟速前进):
vim /etc/docker/daemon.json
把原来内容都删掉,换成
{ "registry-mirrors": ["https://alzgoonw.mirror.aliyuncs.com"] }
//保存退出,重启服务
systemctl daemon-reload
systemctl restart docker
还有一种加速方案,也可行,二选一吧Ubuntu解决Docker下载太慢解决方法
- 问题1:docker安装成功,启动失败,报了一大串错误
joinApp2 systemd[1]: start request repeated too quickly for docker.service
joinApp2 systemd[1]: Failed to start Docker Application Container Engine.
joinApp2 systemd[1]: Unit docker.service entered failed state.
joinApp2 systemd[1]: docker.service failed.
- 问题1解决方案:这种情况一般是daemon.json的格式问题,把它改好。
vim /etc/docker/daemon.json
把原来内容删掉,换成
{ "graph": "/mnt/docker-data", "storage-driver": "overlay" }
或者直接换成加速的
{ "registry-mirrors": ["https://alzgoonw.mirror.aliyuncs.com"] }
//保存退出,重启服务
systemctl daemon-reload
systemctl restart docker
5. 安装golang
手动安装并配置环境变量:
wget https://dl.google.com/go/go1.11.11.linux-amd64.tar.gz
sudo tar -zxvf go1.11.11.linux-amd64.tar.gz -C /usr/local/
sudo gedit /etc/profile
在profile文件最后添加
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
source /etc/profile
go version //检查版本号
2. 拉取fabric源码
//创建并进入目录
mkdir -p ~/go/src/github.com/hyperledger
cd ~/go/src/github.com/hyperledger
//拉取 fabric 源码:
git clone https://github.com/hyperledger/fabric.git
//查看并切换当前分支
cd ./fabric
git branch -a
git checkout vx.x.x //x.x.x为最新分支
- 问题1:git clone 出现
fatal: unable to access 'https://github
- 问题1解决方案:把https改成git后再试一下
3. 拉取镜像文件等
cd ~/go/src/github.com/hyperledger/fabric
mv scripts/bootstrap.sh . //把scripts下bootstrap.sh脚本文件复制到同级目录下
./bootstrap.sh //运行脚本,脚本第二步是拉取docker镜像
- 问题1:Docker获取镜像报错
docker: Error response from daemon
- 问题1解决方案:
dig @114.114.114.114 registry-1.docker.io //找到可用IP
//修改/etc/hosts中docker.io的可用ip
34.197.189.129 registry-1.docker.io
//保存退出后尝试
docker search sameersbn
- 如果出现下图,说明成功,再运行脚本文件。要是依然报错,再多换几个IP试试,IP可能发生变动。
- 要是docker修好了,但运行脚本依然下不到镜像,可以使用下面命令一个个pull你所需要的镜像文件:
sudo docker pull 你要的镜像名称
docker images //查看已有镜像
4. 启动网络
- 启动网络:
cd ./fabric-samples/first-network/
$ ./byfn.sh up
- 关闭网络:
./byfn.sh down
- 成功,我快乐了。
5. 常见问题解决(建议先看)
- 问题1:使用git克隆源码的时候报错
git fatal: Out of memory, malloc failed
- 问题1解决方案:内存不足,需要创建swap交换空间。具体参考https://blog.csdn.net/JinfeiWang/article/details/50133727
- 问题2:使用apt下载各类软件出现包依赖冲突和不匹配
- 问题2解决方案:下载安装aptitude,它在处理依赖问题上比apt-get更好。使用
sudo apt install aptitude
下载aptitude,再使用sudo aptitude install xxx
下载出现冲突的依赖包,他会给出各种方案。否定给出的第一个解决方案(保持不变),选择第二个解决方案(降级使版本一致)。相信我,aptitude超好用[真诚] - 问题3:使用git clone报错
fatal: unable to access 'https://github
(通用) - 问题3解决方案:把https改成git后再试一下
6. 参考博客
- Hyperledger Fabric1.4 安装:这个博客把脚本文件讲的很清楚,第三步运行bootstrap.sh有问题可以借鉴一下,我是参照他的解析解决的问题。
- curl库支持https
- ubuntu16.04 配置阿里云docker镜像加速器