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

2023-11-13

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代码:
在这里插入图片描述
关于spaceVim的使用方法参考以下链接:
spaceVim中文文档:
https://spacevim.org/cn/documentation/
spaceVim快捷记录:https://blog.csdn.net/u013033845/article/details/90904592

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Centos下使用脚本快速安装GO语言环境 的相关文章

随机推荐

  • TCL语法

    tcl是一种很通用的脚本语言 它几乎在所有的平台上都可以解释运行 其强大的功能和简单精妙的语法会使你感到由衷的喜悦 这片文章对 tcl有很好的描述和说明 极具可读性 我并不是原封不动的翻译而是加上了一些自己的体会和例子 如有错误请指正 如果
  • 同步总线和异步总线

    同步总线 指互联的部件或设备均通过统一的时钟进行同步 即所有的互联的部件或设备都必须使用同一个时钟 同步时钟 在规定的时钟节拍内进行规定的总线操作 来完成部件或设备之间的信息交换 异步总线 指没有统一的时钟而依靠各部件或设备内部定时操作 所
  • 启动tomcat的startup.bat文件报C:\Program Files\Tomcat 7.0\logs\host-manager.2017-04-30.log(拒绝访问)

    看到拒绝访问 立马就应该想到是权限问题 右键tomcat安装目录 点击属性 gt 安全 gt 点击 编辑 gt 选择Users gt 在Users的权限 p 下面把没打勾的都打上 确定关闭后重新打开startup bat 就没有异常和警告信
  • 熟练计算机数字键盘,总结:计算机键盘的盲打和快速输入技巧[1]

    在新闻发布会之类的信息发布场景中 您会注意到许同时关注场地的声音和移动 而不必看着笔记本电脑的键盘 他们可以快速触摸键盘 双手键入击键 以实时录制会议内容 十个手指在键盘上顺畅地飞行 可以及时将会议报告给世界各个角落 只有掌握了触摸键入技能
  • ssr的pac中加入学校图书馆数据库访问pac

    在家的时候 需要使用代理 同时要使用图书馆的数据库 两个代理有点冲突 自己研究了一下 ssr 的规则 发现比较简单 可以页面后贴出的代码进行研究 pac txt pac 的内部完全就是 js 的语法逻辑 不是十分熟悉 写的有点硬 可以自己考
  • hadoop面试题

    hadoop面试题 1 单选题 1 1 下面哪个程序负责 HDFS数据存储 a NameNode b Jobtracker c Datanode d secondaryNameNode e tasktracker 答案 C datanode
  • Tensorflow学习笔记(一)

    这里写自定义目录标题 Tensorflow 基本分类 对服装图像进行分类 电影评论文本分类 Basic regression Predict fuel efficiency 过拟合和欠拟合 过拟合 Tensorflow Tensorflow
  • American Sign Language手语识别(机器学习第二个小练习)

    American Sign Language手语识别 1 需要的数据集 链接 https pan baidu com s 1bf98hHYZbKuY 8hdfe8NRQ 提取码 uvzj 2 实验代码如下 import pandas as
  • winform 如何获取某个子控件的子控件并操作它

    一 panel1 Controls button1 或 panel1 Controls 0 二 比如某窗体的子控件为UserControl 且UserControl上有n多个n种控件 那么可以再UserControl里写属性获取
  • 【综合类型第 34 篇】喜讯!喜讯!!喜讯!!!,我在 CSDN 的第一个实体铭牌

    这是 综合类型第 34 篇 如果觉得有用的话 欢迎关注专栏 2022年7月19日 14 25 CSDN 官方博客给我发了一条私信 内容如下 为了表彰在 CSDN 社区发展中 做出 突出贡献 取得 优秀成绩 的用户 我们特地准备了实体铭牌 恭
  • EA12版本怎么恢复Project Browser

    其实是个小问题 不知道怎么就关闭Project Browser 了 找了好久才找到
  • springboot2.0从apollo读取配置

    参考 https github com nobodyiam apollo build scripts 本篇文章包括两点 Windows环境下apollo单机搭建 springboot2 0从apollo读取配置 一 windows环境下ao
  • kubectl查看容器日志

    kubectl get pod n 命名空间 kubectl logs 容器名称 n 命名空间
  • 青龙脚本 小黄鸟配合虚拟机抓变量 软件集

    鉴于很多青龙脚本变量 真机很难抓到 需要小黄鸟配合虚拟机抓变量 为方便网友 把相关3个软件分享 以单个文件形式 1 小黄鸟 https wwm lanzouy com i5vWT01qi6na 2 虚拟机 https wwm lanzouy
  • nvcc使用指定gcc版本(不改变全局gcc版本)

    在nvcc后面加上 compiler bindir usr bin gcc x即可 x为指定的gcc版本号
  • MSP430F5529学习笔记(6)——导入MSP430Ware,查看例程

    MSP430WARE下载 目录 在线版本 下载MSP430Ware 查看例程 导入例程 离线版本 下载MSP430Ware 查看例程 导入例程 MSP430Ware里面有很多例程和库函数使用手册 我们可以查看学习 非常重要 在线版本 下载M
  • 使用计算机结束时断开终端的连接属于什么,计算机结束时断开终端的连接属于什么...

    计算机结束时断开终端的连接属于外部终端的物理安全 终端安全管理 endpoint security management 是一种保护网络安全的策略式方法 它需要终端设备在得到访问网络资源的许可之前遵从特定的标准 推荐学习 web前端视频教程
  • 【数模】插值算法

    插值算法的介绍 插值的作用 当现有的数据是极少的 不足以支撑分析的进行时 用于 模拟产生 一些新的但又比较靠谱的值来满足需求 插值函数 插值 插值法的概念 插值法的分类 插值多项式 P x 为次数不超过n的代数多项式 即 数模中也常见 但不
  • ARM——体系架构

    1 ARM简介 ARM是Advanced RISC Machines的缩写 它是一家微处理器行业的知名企业 该企业设计了大量高性能 廉价 耗能低的RISC 精简指令集 处理器 公司的特点是只设计芯片 而不生产 它将技术授权给世界上许多著名的
  • Centos下使用脚本快速安装GO语言环境

    Centos使用shell脚本快速安装go环境并安装spaceVim IDE 脚本如下 bin bash env git install echo 安装依赖中 sudo yum y install make autoconf automak