linux中用shell快速安装配置Go语言的开发环境
作者:痕无落 发布时间:2024-02-12 22:38:11
标签:linux,go语言,安装
介绍
go1.5+版本提供编译好的安装包,我们只需要解压到相应的目录,并添加一些环境变量的配置即可。
Go语言的安装步骤
下载安装包go1.7.linux-amd64.tar.gz
解压文件到指定目录: tar -zxf go1.7.linux-amd64.tar.gz
设置环境变量:GOROOT
, GOPATH
, PATH
既然我们可以列出这些步骤,那么便可以将整个过程自动化。
下面是安装脚本
#!/bin/bash
#Upgrade go version to 1.7
#wget https://storage.googleapis.com/golang/go1.7.linux-amd64.tar.gz go1.7.tar.gz
function info() {
echo -e "\033[1;34m$1 \033[0m"
}
function warn() {
echo -e "\033[0;33m$1 \033[0m"
}
function error() {
echo -e "\033[0;31m$1 \033[0m"
}
function usage() {
info "Upgrade or install golang..."
info "USAGE:"
info " ./upgrade.sh tar_file gopath"
info " tar_file specify where is the tar file of go binary file"
info " gopath specify where is the go workspace, include src, bin, pkg folder"
}
function createGoPath() {
if [ ! -d $1 ];
then
mkdir -p $1
fi
if [ ! -d "$1/src" ];
then
mkdir "$1/src"
fi
if [ ! -d "$1/bin" ];
then
mkdir "$1/bin"
fi
if [ ! -d "$1/pkg" ];
then
mkdir "$1/pkg"
fi
}
if [ -z $1 ];
then
usage
exit 1
fi
file=$1
if [ ! -f $file ];
then
error "${file} not exist..."
exit 1
fi
unzipPath="`pwd`/tmp_unzip_path/"
info $unzipPath
if [ ! -d $unzipPath ];
then
info "not exist"
mkdir $unzipPath
fi
tar -zxf $file -C $unzipPath
goroot=$GOROOT
if [ ! -n $GOROOT ];
then
warn "Use default go root /usr/local/go"
goroot="/usr/local/go"
fi
gopath=$2
info "Create go workspace, include src,bin,pkg folder..."
if [ -z $2 ];
then
user=`whoami`
gopath="/home/$user/workspace/golang"
warn "Use $gopath as golang workspace..."
if [ ! -d $gopath ];
then
mkdir -p $gopath
fi
fi
createGoPath $gopath
info "Copy go unzip files to $goroot"
sudo cp -r "$unzipPath/go" $goroot
rm -rf $unzipPath
#etcProfile="/home/user/Desktop/etc"
etcProfile="/etc/profile"
exportGoroot="export GOROOT=$goroot"
if [ ! -z $GOROOT ];
then
cat $etcProfile | sed 's/^export.GOROOT.*//' | sudo tee $etcProfile > /dev/null
fi
echo $exportGoroot | sudo tee -a $etcProfile
exportGopath="export GOROOT=$gopath"
if [ ! -z $GOPATH ];
then
cat $etcProfile | sed 's/^export.GOPATH.*//' | sudo tee $etcProfile > /dev/null
fi
echo "export GOPATH=$gopath" | sudo tee -a $etcProfile
echo 'export PATH=$GOROOT/bin:$GOPATH/bin:$PATH' | sudo tee -a $etcProfile
# ## Replace multiple empty lines with one empty line
cat $etcProfile -s | sudo tee $etcProfile > /dev/null
info "To make configuration take effect, will reboot, pls enter[y/n]"
read -p "[y/n]" isReboot
if [ $isReboot = "y" ];
then
sudo reboot
fi
讲一讲脚本做的事情吧
1、脚本要求输入编译好的安装包,这里本来是可以做成直接下载的, 但是考虑到大多数人是无法连接到golang的官网的,因此放弃了这一步。
2、解压文件到指定的目录, 默认为/usr/local/go
, 也可以通过运行时指定
3、在GOPATH下面创建3个文件夹: src, bin, pkg, GOPATH可以运行时指定,默认为/home/{user}/workspace/golang
4、设置环境变量: $GOPATH
, $GOROOT
5、重启服务,使对/etc/profile
的修改生效
这里有一些主意的点是,有可能系统配置过golang的环境变量, 那么需要先删除这些配置,然后重新写入。
总结
0
投稿
猜你喜欢
- 本文为大家分享了mysql 5.7.17 winx64解压版安装配置方法,供大家参考,具体内容如下一、下载下载地址二、配置1. 解压下载的m
- Declaring class members or methods as st
- JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写。同时也方便了机
- 搜狗(目前好用,免费)def textToAudio_Sougou(message, filePath): &n
- 本文实例讲述了Python编程判断这天是这一年第几天的方法。分享给大家供大家参考,具体如下:题目:输入某年某月某日,判断这一天是这一年的第几
- few-shot learning的采样Few-shot learning 基于任务对模型进行训练,在N-way-K-shot中,一个任务中
- 在pycharm中我们有时需要切换python的版本,这里需要注意的是我们是在PyCharm中的Preferences中切换的,在File的
- 本文实例为大家分享了PHP实现统计代码行数小工具,供大家参考,具体内容如下为了方面统计编程代码行数,做了一个小工具。自动统计指定目录以及目录
- 一、表格与键概念主键:可唯一表示该资料(可以设置多个列表为主键)设置外键进行表与表的相连,且外键必须是其他表的主键(外键也可以设置自己表格的
- 本文实例讲述了Python编程之多态用法。分享给大家供大家参考。具体分析如下:什么是多态?顾名思义,多态就是多种表现形态的意思。它是一种机制
- 我想大多数的人在编写ASP程序的时候,都碰到过类似的错误信息: Error Num
- 在写登录功能的时候看着网上的视频学着做,然后看了源码的时候发现了一些有意思的功能,因此写这一篇笔记分享给大家.1.阅读Django自带用户系
- ORACLE EBS操作某一个FORM界面,或者后台数据库操作某一个表时发现一直出于"假死"状态,可能是该表被某一用户锁
- 1 自动微分我们在《数值分析》课程中已经学过许多经典的数值微分方法。许多经典的数值微分算法非常快,因为它们只需要计算差商。然而,他们的主要缺
- 主要介绍常用的MySQL命令,包括连接数据库,修改密码,管理用户,操作数据库,操作数据表,数据库备份等,每个命令都配有实例说明,让大家更容易
- 此命令作用,修改数据表ff_vod,在vod_url字段内容后加入999999999。update ff_vod set vod_url=C
- 最近学习python并发,于是对多进程、多线程、异步和协程做了个总结。一、多线程多线程就是允许一个进程内存在多个控制权,以便让多个函数同时处
- 最近尝试写python GUI界面,决定先从tkinter开始。但是遇到了无法安装。执行pip install tkinter没有用,报了如
- 引言在负责咨询工作的过去 6 年中,我曾多次听说关于数据访问和操作方面的问题,它时刻困扰着用户:“如何编写应用程序,以便
- 这篇文章主要介绍了基于python操作ES实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可