介绍
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.gzfunction info() {
echo -e " 33[1;
34m$1 33[0m"}
function warn() {
echo -e " 33[0;
33m$1 33[0m"}
function error() {
echo -e " 33[0;
31m$1 33[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 1fifile=$1if [ ! -f $file ];
then error "${
file}
not exist..." exit 1fiunzipPath="`pwd`/tmp_unzip_path/"info $unzipPathif [ ! -d $unzipPath ];
then info "not exist" mkdir $unzipPathfitar -zxf $file -C $unzipPathgoroot=$GOROOTif [ ! -n $GOROOT ];
then warn "Use default go root /usr/local/go" goroot="/usr/local/go"figopath=$2info "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 fificreateGoPath $gopathinfo "Copy go unzip files to $goroot"sudo cp -r "$unzipPath/go" $gorootrm -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/nullfiecho $exportGoroot | sudo tee -a $etcProfileexportGopath="export GOROOT=$gopath"if [ ! -z $GOPATH ];
then cat $etcProfile | sed 's/^export.GOPATH.*//' | sudo tee $etcProfile > /dev/nullfiecho "export GOPATH=$gopath" | sudo tee -a $etcProfileecho 'export PATH=$GOROOT/bin:$GOPATH/bin:$PATH' | sudo tee -a $etcProfile# ## Replace multiple empty lines with one empty linecat $etcProfile -s | sudo tee $etcProfile > /dev/nullinfo "To make configuration take effect, will reboot, pls enter[y/n]"read -p "[y/n]" isRebootif [ $isReboot = "y" ];
then sudo rebootfi
讲一讲脚本做的事情吧
1、脚本要求输入编译好的安装包,这里本来是可以做成直接下载的, 但是考虑到大多数人是无法连接到golang的官网的,因此放弃了这一步。
2、解压文件到指定的目录, 默认为/usr/local/go
, 也可以通过运行时指定
3、在GOPATH下面创建3个文件夹: src, bin, pkg, GOPATH可以运行时指定,默认为/home/{user}/workspace/golang
4、设置环境变量: $GOPATH
, $GOROOT
5、重启服务,使对/etc/profile
的修改生效
这里有一些主意的点是,有可能系统配置过golang的环境变量, 那么需要先删除这些配置,然后重新写入。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。