Centos下使用脚本快速安装GO语言环境

Centos使用shell脚本快速安装go环境并安装spaceVim IDE

脚本如下:

#!/bin/bash
env_git_install()
{
    echo "安装依赖中"
    sudo yum -y install make autoconf automake cmake perl-CPAN libcurl-devel libtool gcc gcc-c++ glibc-headers zlib-devel git-lfs telnet ctags lrzsz jq expat-devel openssl-devel    
    cd /tmp
    wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.30.2.tar.gz
    [[ -f git-2.30.2.tar.gz ]] && echo "安装包下载完成" || return 0
    tar -xvzf git-2.30.2.tar.gz
    cd git-2.30.2/
    echo "依赖检查"
    ./configure
    make
    sudo make install
    git --version          # 输出 git 版本号,说明安装成功
    # tee -a $HOME/.bashrc <<'EOF'
    cat << 'EOF' >> $HOME/.bashrc
# Configure for git
export PATH=/usr/local/libexec/git-core:$PATH
EOF
    source $HOME/.bashrc
}

env_git_init()
{
    echo "配置一下git"
    read -p "输入用户名:" name
    read -p "输入邮箱:" em
    git config --global user.name "$name"    # 用户名
    git config --global user.email "$em"    # 邮箱
    git config --global credential.helper store    # 保存用户名和密码
    git config --global core.longpaths true 
    git config --global core.quotepath off
    git config --global url."https://github.com.cnpmjs.org/".insteadOf "https://github.com/"
    git lfs install --skip-repo
    source $HOME/.bashrc
    echo "Git配置完成"
}

function env::install::go_command()
{
  # 检查 go 是否安装
  #command -v go &>/dev/null && return 0
  # 1. 下载 go1.17.2 版本的Go安装包
  wget -P /tmp/ https://golang.google.cn/dl/go1.17.2.linux-amd64.tar.gz
  # 2. 安装Go
  mkdir -p $HOME/go
  tar -xvzf /tmp/go1.17.2.linux-amd64.tar.gz -C $HOME/go
  mv $HOME/go/go $HOME/go/go1.17.2
  
  mkdir -p $HOME/workspace
  mkdir -p $HOME/workspace/golang

  # 3. 配置Go环境变量
  cat << 'EOF' >> $HOME/.bashrc
# Go envs
export WORKSPACE="$HOME/workspace" # 设置工作目录
export GOVERSION=go1.17.2 # Go 版本设置
export GO_INSTALL_DIR=$HOME/go # Go 安装目录
export GOROOT=$GO_INSTALL_DIR/$GOVERSION # GOROOT 设置
export GOPATH=$WORKSPACE/golang # GOPATH 设置
export PATH=$GOROOT/bin:$GOPATH/bin:$PATH # 将 Go 语言自带的和通过 go install 安装的二进制文件加入到 PATH 路径中
export GO111MODULE="on" # 开启 Go moudles 特性
export GOPROXY=https://mirrors.aliyun.com/goproxy,https://goproxy.cn,direct # 安装 Go 模块时,代理服务器设置
export GOPRIVATE=github.com # 指定不走代理的 Go 包域名
export GOSUMDB=off # 关闭校验 Go 依赖包的哈希值
EOF
  source $HOME/.bashrc
}


function env::install::protobuf()
{
  # 检查 protoc、protoc-gen-go 是否安装
  command -v protoc &>/dev/null && command -v protoc-gen-go &>/dev/null && return 0
  # 1. 安装 protobuf
  rm -rf /tmp/protobuf
  cd /tmp/
  git clone --depth=1 https://github.com/protocolbuffers/protobuf
  cd protobuf
  ./autogen.sh
  ./configure
  make
  sudo make install
  #env::common::sudo "make install"
  echo "install protoc tool successfully"
  # 2. 安装 protoc-gen-go
  echo $GO111MODULE
  go install github.com/golang/protobuf/protoc-gen-go@latest
  echo "install protoc-gen-go plugin successfully"
}

function env::install::go()
{
  env::install::go_command || return 1
  env::install::protobuf || return 1
  echo "install go develop environment successfully"
}

function env::install::vim_ide()
{
  # 检查 SpaceVim、nvim、gotools 是否安装
  [[ -d $HOME/.SpaceVim ]] && command -v nvim &>/dev/null && command -v gomodifytags &>/dev/null && return 0
  # 1. 安装 neovim
  #env::common::sudo "pip3 install pynvim"
  sudo pip3 install pynvim
  sudo yum -y install neovim
  #env::common::sudo "yum -y install neovim"
  # 2. 配置 $HOME/.bashrc
  cat << 'EOF' >> $HOME/.bashrc
# Configure for nvim
export EDITOR=nvim # 默认的编辑器(git 会用到)
alias vi="nvim"
EOF
    source $HOME/.bashrc
  # 3. 离线安装 SpaceVim
  cd /tmp
  wget https://marmotedu-1254073058.cos.ap-beijing.myqcloud.com/tools/marmotVim.tar.gz -O marmotVim.tar.gz
  tar -xvzf marmotVim.tar.gz
  cd marmotVim
  ./marmotVimCtl install
  # 4. Go 工具安装
  cd /tmp
  wget https://marmotedu-1254073058.cos.ap-beijing.myqcloud.com/tools/gotools-for-spacevim.tgz
  mkdir -p $GOPATH/bin
  tar -xvzf gotools-for-spacevim.tgz -C $GOPATH/bin
  echo "install vim ide successfully"
}

eval $*
  1. 首先创建一个shell文件script.sh,将上述代码复制到文件中。
  2. 代码的前两步是安装git并配置git,已经安装完成则可以跳过。这一步是在root账户下安装,确保yum源为网络源并已经安装wget。执行下列命令(注意路径)
    . /home/test/script.sh env_git_install
    
    执行之后会下载安装包,解压并安装。随后执行下列命令完成git的配置
    . /home/test/script.sh env_git_init
    
  3. 可以切换到相应开发GO的账户,开始安装GO环境。(需要确保账户在sudoers文件中,可以执行sudo命令。中途使用sudo可能需要输入密码)
    . /home/test/script.sh env::install::go
    
    执行成功将会在账户的$HOME目录下新建一个workspace的文件夹与go文件夹,并将workspace设置为GOPATH。go参数设置如下:
    export GOVERSION=go1.17.2 # Go 版本设置
    export GO_INSTALL_DIR=$HOME/go # Go 安装目录
    export GOROOT=$GO_INSTALL_DIR/$GOVERSION # GOROOT 设置
    export GOPATH=$WORKSPACE/golang # GOPATH 设置
    export PATH=$GOROOT/bin:$GOPATH/bin:$PATH # 将 Go 语言自带的和   通过 go install 安装的二进制文件加入到 PATH 路径中
    export GO111MODULE="on" # 开启 Go moudles 特性
    export GOPROXY=https://mirrors.aliyun.com/goproxy,https://goproxy.cn,direct # 安装 Go 模块时,代理服务器设置
    export GOPRIVATE=github.com # 指定不走代理的 Go 包域名
    export GOSUMDB=off # 关闭校验 Go 依赖包的哈希值
    
    可以输入go env命令查看
  4. 上述步骤完成之后,即可编译运行GO代码,go build 、go run
  5. 推荐使用spaceVim IDE编写go代码,各种功能比较齐全。执行以下命令安装。
    . /home/test/script.sh env::install::vim_ide
    
    脚本代码会顺便安装GO工具集,可能需要等待一会儿。

等到安装完成,可以直接vi main.go编写go代码:
Centos下使用脚本快速安装GO语言环境_第1张图片
关于spaceVim的使用方法参考以下链接:
spaceVim中文文档:
https://spacevim.org/cn/documentation/
spaceVim快捷记录:https://blog.csdn.net/u013033845/article/details/90904592

文章参考 :
https://github.com/marmotedu
(@colin)

你可能感兴趣的:(centos,golang)