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 $*
- 首先创建一个shell文件script.sh,将上述代码复制到文件中。
- 代码的前两步是安装git并配置git,已经安装完成则可以跳过。这一步是在root账户下安装,确保yum源为网络源并已经安装wget。执行下列命令(注意路径)
. /home/test/script.sh env_git_install
执行之后会下载安装包,解压并安装。随后执行下列命令完成git的配置. /home/test/script.sh env_git_init
- 可以切换到相应开发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命令查看
- 上述步骤完成之后,即可编译运行GO代码,go build 、go run
- 推荐使用spaceVim IDE编写go代码,各种功能比较齐全。执行以下命令安装。
. /home/test/script.sh env::install::vim_ide
脚本代码会顺便安装GO工具集,可能需要等待一会儿。
等到安装完成,可以直接vi main.go编写go代码:
关于spaceVim的使用方法参考以下链接:
spaceVim中文文档:
https://spacevim.org/cn/documentation/
spaceVim快捷记录:https://blog.csdn.net/u013033845/article/details/90904592
文章参考 :
https://github.com/marmotedu
(@colin)