install Hyperledger Fabric Ubuntu 16.04 x64

简化安装,前提是网络没问题

#!/bin/bash

# Author: Randy
# Email:243093190@qq.com

# Hyperledger Fabric installation
# Hyperledger Fabric Version 1.0.0
# Date: 2018/01/19
# OS: Ubuntu 16.04 x64

# TIPS:
# 1.npm accelerate
# npm install --registry=https://registry.npm.taobao.org

# echo print with color
function echoColor()
{
    echo -e "\033[35;1m$1\033[0m"
}

# update os
function updateOS()
{
    echoColor "Updating system to newest version"

    sudo apt-get update -y --fix-missing
    sudo apt-get upgrade -y --fix-missing
    sudo apt-get autoremove -y
    sudo apt-get clean
    sudo apt-get install -f -y

    echo
}

# install docker precondition
function installPreDependence()
{
    echoColor "-----------------------------------------------------------------"
    echoColor "Start install dependency items, please wait......."

    echoColor "Start Install python and python-pip"
    apt-get install -y python
    apt-get install -y python-pip

    echoColor "Start Install git"
    apt-get install -y git

    echoColor "Start Install curl"
    apt-get install curl

    echoColor "Finish installed dependency items."
    echoColor "-----------------------------------------------------------------"
}

# install Golang-go
function installGolang()
{

    if [ -z ${GOROOT} ];then
        echo "Golang has not install yet"
    else
        go version
        return;
    fi
    echo
    echoColor "-----------------------------------------------------------------"
    echoColor "Start install Golang,please wait......."

    echo
    echoColor "Download Golang package and unpack it"
    sudo curl -O https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz
    tar -xvf go1.8.3.linux-amd64.tar.gz

    echo
    echoColor "Move it to /usr/local/go"
    mv go /usr/local/go

    echoColor "Create GOPATH"
    mkdir -p /opt/goworkpace/bin
    mkdir -p /opt/goworkpace/src
    mkdir -p /opt/goworkpace/pkg

    echo
    echoColor "Set golang environment"
    echo >> /etc/profile
    echo "#set golang env" >> /etc/profile

    echo "export GOROOT=/usr/local/go" >> /etc/profile
    echo "export GOPATH=/opt/goworkspace" >> /etc/profile
    echo "export PATH=$PATH:$GOPATH/bin:$GOPATH/bin" >> /etc/profile
    source /etc/profile

    go version
    echo

    echo
    echoColor "Finish install Golang "
    echoColor "-----------------------------------------------------------------"
}

# install Node.js Runtime and NPM
function installNode()
{

    echo
    echoColor "-----------------------------------------------------------------"
    echoColor "Start install Node,please wait......."

    echo
    echoColor "Download Node package and unpack it"
    sudo curl -O https://nodejs.org/dist/v6.9.5/node-v6.9.5-linux-x64.tar.xz
    xz -d node-v6.9.5-linux-x64.tar.xz
    tar -xvf node-v6.9.5-linux-x64.tar

    echo
    echoColor "Move it to /usr/local/node"
    mv node-v6.9.5-linux-x64 /usr/local/node

    echo
    echoColor "Set node environment"
    echo >> /etc/profile
    echo "#set node env" >> /etc/profile

    echo "export PATH=$PATH:/usr/local/node/bin" >> /etc/profile
    source /etc/profile

    echoColor "Download npm"
    sudo apt-get install -y npm

    node -v

    echo
    echoColor "Finish install Node"
    echoColor "-----------------------------------------------------------------"

}


# install docker
function installDocker()
{
    echo
    echoColor "-----------------------------------------------------------------"
    echoColor "Start install docker,please wait......."

    echoColor "Install docker and start service"
    sudo apt-get install -y docker.io

    echoColor "Set accelerate registry-mirrors"
    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://rl4uepop.mirror.aliyuncs.com"]
}
EOF
  sudo systemctl daemon-reload
  sudo systemctl restart docker

    echo
    echoColor "2.Install docker-compose(version should greater than 1.8.0)"
    sudo apt-get install -y docker-compose
    docker-compose -v

    echoColor "Finish install docker and docker-compose!"
    echoColor "-----------------------------------------------------------------"
    echo
}

function downloadFabricImages(){
  echoColor "-----------------------------------------------------------------"
  echoColor "Start download fabric images, please wait......"
  #Set ARCH variable i.e ppc64le,s390x,x86_64,i386
  ARCH=`uname -m`

  local FABRIC_TAG="${ARCH}-1.0.0"

  echo ${FABRIC_TAG}
  for IMAGES in peer orderer ca couchdb ccenv javaenv kafka tools zookeeper; do
      echo "==> FABRIC IMAGE: $IMAGES"
      echo
      docker pull hyperledger/fabric-${IMAGES}:${FABRIC_TAG}
      docker tag hyperledger/fabric-${IMAGES}:${FABRIC_TAG} hyperledger/fabric-${IMAGES}
  done
  echo "==> List out hyperledger docker images"
  docker images | grep hyperledger*
}

# Download golang tools
function downloadGolangTools()
{
    echo
    echoColor "-----------------------------------------------------------------"
    echoColor "Start download some tools for golang debug, please wait......"

    sudo go get github.com/golang/protobuf/protoc-gen-go
    sudo go get github.com/golang/lint/golint
    sudo go get github.com/kardianos/govendor
    sudo go get github.com/onsi/ginkgo/ginkgo
    sudo go get github.com/axw/gocov/...
    sudo go get github.com/client9/misspell/cmd/misspell
    sudo go get github.com/AlekSi/gocov-xm
    sudo go get golang.org/x/tools/cmd/goimports

    echoColor "Finish download."
    echoColor "-----------------------------------------------------------------"
    echo
}


echoColor " ____    _____      _      ____    _____ "
echoColor "/ ___|  |_   _|    / \    |  _ \  |_   _|"
echoColor "\___ \    | |     / _ \   | |_) |   | |  "
echoColor " ___) |   | |    / ___ \  |  _ <    | |  "
echoColor "|____/    |_|   /_/   \_\ |_| \_\   |_|  "

updateOS
installPreDependence
installGolang
installNode
installDocker
downloadFabricImages

echoColor " _____   _   _   ____   "
echoColor "| ____| | \ | | |  _ \  "
echoColor "|  _|   |  \| | | | | | "
echoColor "| |___  | |\  | | |_| | "
echoColor "|_____| |_| \_| |____/  "
posted @ 2018-02-23 14:47  llhl  阅读(129)  评论(0编辑  收藏  举报