#!/bin/bash defaultVERSION=1.10.26 if [ $1 ] then VERSION=$1 else echo "=== Enter geth or for default $defaultVERSION" read -p ">>> " VERSION if [ ! "$VERSION" ] then VERSION=$defaultVERSION echo Use default version $defaultVERSION fi fi echo "=== Install geth:[b] for 二进制, [s] for 源代码,[anything else or leave blank] for no change" read -p ">>> " BINARY_OR_SOURCE if [ "$BINARY_OR_SOURCE" == 'b' ] then echo "--- 下载二进制 geth (https://geth.ethereum.org/downloads)" # mkdir -p ./geth-temp/ # cd ./geth-temp if [ "$VERSION" == '1.10.26' ] then wget https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-1.10.26-e5eb32ac.tar.gz -O geth-linux-amd64-$VERSION.tgz elif [ "$VERSION" == '1.10.25' ] then wget https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-1.10.25-69568c55.tar.gz -O geth-linux-amd64-$VERSION.tgz else echo "=== please find the download link in https://geth.ethereum.org/downloads" read -p ">>> " DOWNLINK wget $DOWNLINK -O geth-linux-amd64-$VERSION.tgz fi tar xzf ./geth-linux-amd64-$VERSION.tgz # --strip-components 1 ## 去掉tar包中顶级目录,因为顶级目录含有checksum,不方便在下一步进入 echo "--- 安装到 /usr/local/bin/geth" mv ./geth-linux-amd64-*/geth /usr/local/bin/ # echo "--- 删除原始文件" # cd .. # rm -fr ./geth-temp elif [ "$BINARY_OR_SOURCE" == 's' ] then echo "--- 克隆并编译 geth" git clone -b v$VERSION https://github.com/ethereum/go-ethereum ./geth-temp/go-ethereum mkdir -p ./geth-temp/ pushd ./geth-temp/go-ethereum && make geth && popd # 或者 make all mv ./geth-temp/go-ethereum/build/bin/geth /usr/local/bin/ rm -fr ./geth-temp/ else echo "--- Nothing changed." fi echo ""