红联Linux门户
Linux帮助

Ubuntu下安装和配置golang(包括升级)

发布时间:2018-01-10 11:16:52来源:linux网站作者:DemonHunter211
一.安装
这里以安装golang1.9为例: 
1.首先通过命令行直接安装
sudo apt-get install golang-1.9
2.下载好之后,查看go的版本
catik@catik-Aspire-V3-471:~$ go version 
go version go1.9.2 linux/amd64
可以看得出,这里的版本是go1.9.2。
 
二.环境配置
1.查看环境变量:
catik@catik-Aspire-V3-471:~$ go env 
GOARCH=”amd64” 
GOBIN=”” 
GOEXE=”” 
GOHOSTARCH=”amd64” 
GOHOSTOS=”linux” 
GOOS=”linux” 
GOPATH=”/home/catik/godownload/” 
GORACE=”” 
GOROOT=”/usr/lib/go” 
GOTOOLDIR=”/usr/lib/go/pkg/tool/linux_amd64” 
GCCGO=”gccgo” 
CC=”gcc” 
GOGCCFLAGS=”-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build504408127=/tmp/go-build -gno-record-gcc-switches” 
CXX=”g++” 
CGO_ENABLED=”1” 
CGO_CFLAGS=”-g -O2” 
CGO_CPPFLAGS=”” 
CGO_CXXFLAGS=”-g -O2” 
CGO_FFLAGS=”-g -O2” 
CGO_LDFLAGS=”-g -O2” 
PKG_CONFIG=”pkg-config
这里几个比较关键的变量 GOPATH 和GOROOT 
GOPATH是go get指令默认下载和安装包的位置,通过go get指令,获取go的包,默认下载到GOPATH所指示的目录中. 
GOROOT是go安装的位置,也是go可执行文件的位置,也就是说,当我们命令行中打出go的指令时,系统能不能准确调用go的可执行文件 
这里GOROOT=”/usr/lib/go” 
通过以下命令 
cd /usr/lib/go 
ls 
就可以看到
catik@catik-Aspire-V3-471:/usr/lib/go$ ls 
bin doc favicon.ico.gz go pkg src test VERSION
bin中存的就是go的可执行文件了,我们可以试一下:
catik@catik-Aspire-V3-471:/usr/lib/go/bin$ ./go version 
go version go1.9.2 linux/amd64
这与我们在命令行中直接输入go是一样的 
2.配置环境变量 
默认的时候,GOPATH是没有配置好的,那么我们怎么修改这些环境变量呢 
首先,我们可以按照自己的意愿,在一个位置建一个文件夹,比如
mkdir /home/catik/GoDownload
然后,配置环境变量有三个方法:
1]:最根本的方法就是修改/etc/profile文件
sudo gedit /etc/profile 
注意这里必须要sudo,因为系统目录下的文档不允许任意修改的 
在最后添加export GOPATH=/home/catik/GoDownload 
这个办法修改是对所有的用户都生效的,修改之后要重启就会另修改生效
2]:这个办法也可以,修改用户目录下的.profile文件
比如这里是/home/catik/.profile 
通过gedit /home/catik/.profile打开之后就能修改了 
修改的方法跟第一种是一样的,就是再最后添加 
export GOPATH=/home/catik/GoDownload
3]:临时性的起作用,只有本次生效,当你关闭terminal之后,不再生效
直接在命令行中 
catik@catik-Aspire-V3-471:~$ export GOPATH=/home/catik/GoDownload
 
升级系统的golang
如果你的电脑中已经安装了golang,但是,并不是最新版的,那么把你的电脑中的golang升级到最新的版本呢 
比如原来安装的是go1.6,最新的版本为go1.9
首先卸载电脑中的老版本
sudo apt-get remove golang-1.6
然后安装最新版的
sudo apt-get install golang-1.9
等待安装好之后,发现
go version
version 还是1.6,竟然不管用?重启电脑,还是这样,那么问题出在哪里了呢 
我们循着GOROOT的地方去看看
catik@catik-Aspire-V3-471: cd /usr/lib/go 
catik@catik-Aspire-V3-471: ls 
bin doc favicon.ico.gz go pkg src test VERSION 
catik@catik-Aspire-V3-471: cat VERSION 
go1.6
这样我们就看出来了原来这里的go还是原来的可执行文件,原来卸载之后并没有把这里的文件卸载干净,这里的可执行文件也没有变。 
所以我们把1.9版本的go的文件复制到这里来,顺便说一句,原来的这个go文件夹是一个硬链接,连接的目标是原来的go-1.6文件夹,当我们安装好go-1.9之后,这两个文件夹同时存在,这里我们需要把go-1.6删除
sudo rm go-1.6 -r
把原来的链接文件也删除
sudo rm go -r
建一个新的go文件夹
sudo mkdir go
把go-1.9中的全部文件复制过去
sudo cp ./go-1.9/* ./go
再次查看go的版本
go version 
go-1.9.2
问题顺利解决。
 
ubuntu16.10上部署golang1.7.4:http://www.linuxdiyf.com/linux/27423.html
ubuntu下golang跨平台编译windows程序:http://www.linuxdiyf.com/linux/24732.html
Ubuntu16.04下部署golang配置环境:http://www.linuxdiyf.com/linux/24581.html
Ubuntu 14.04上搭建Golang开发环境配置:http://www.linuxdiyf.com/linux/8790.html
二进制包安装Golang:http://www.linuxdiyf.com/linux/8639.html