zoukankan      html  css  js  c++  java
  • (一)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. 参考博客

  • 相关阅读:
    delphi之动态库调用和串口通讯
    git如何使用 svn如何使用
    delphi学习笔记1
    sql
    linux连接与传输等命令
    jdbc
    list/tstringlist/tobjectlist
    SQL GRANT
    Invalidate介绍
    FORM 的创建
  • 原文地址:https://www.cnblogs.com/lengchong/p/12315164.html
Copyright © 2011-2022 走看看