(一)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. 参考博客

posted @ 2020-02-15 23:10  冷冲  阅读(1613)  评论(0编辑  收藏  举报