在安装go1.4之后的版本,需要先安装go1.4 才能安装新版的go。
可能说,您云里雾里的,那么接着往下看:
1、安装新版 go1.14.3
下载地址:https://studygolang.com/dl
首先下载源码安装包,放在 /usr/local/src 目录下。 目录您随便定义。
2、解压目录,放在/usr/local/go 下
[root@iz25vpndgurz src]# wget https://studygolang.com/dl/golang/go1.14.3.src.tar.gz https://studygolang.com/dl/golang/go1.14.3.src.tar.gz Resolving studygolang.com (studygolang.com)... 59.110.219.94 Connecting to studygolang.com (studygolang.com)|59.110.219.94|:443... connected. HTTP request sent, awaiting response... 303 See Other Location: https://dl.google.com/go/go1.14.3.src.tar.gz [following] --2020-05-24 07:52:15-- https://dl.google.com/go/go1.14.3.src.tar.gz Resolving dl.google.com (dl.google.com)... 203.208.43.67, 203.208.43.78, 203.208.43.65, ... Connecting to dl.google.com (dl.google.com)|203.208.43.67|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 22534103 (21M) [application/octet-stream] Saving to: ‘go1.14.3.src.tar.gz’ 100%[===================================================================================================================>] 22,534,103 18.7MB/s in 1.1s
解压到/usr/local/go 下
tar -C /usr/local -xf go1.14.3.src.tar.gz
3、安装go1.4版本
3.1 通过 git 克隆go的源码包 ,把目录还放在 /usr/local/src 目录下
$ git clone https://github.com/golang/go.git goroot Cloning into 'goroot'... remote: Enumerating objects: 16, done. remote: Counting objects: 100% (16/16), done. remote: Compressing objects: 100% (16/16), done. remote: Total 421263 (delta 1), reused 2 (delta 0), pack-reused 421247 Receiving objects: 100% (421263/421263), 210.17 MiB | 471.00 KiB/s, done. Resolving deltas: 100% (335457/335457), done.
3.2 下载完成后,切换分支到 go1.4对应的一个
[root@localhost software]# cd go [root@localhost go]# git branch * master [root@localhost go]# git checkout release-branch.go1.4 Branch release-branch.go1.4 set up to track remote branch release-branch.go1.4 from origin. Switched to a new branch 'release-branch.go1.4' [root@localhost go]# git branch master * release-branch.go1.4
3.3 进入src目录下,执行 ./all.bash 待程序安装完成。
# ./all.bash # Building C bootstrap tool. cmd/dist # Building compilers and Go bootstrap tool for host, linux/amd64. lib9 libbio liblink cmd/cc cmd/gc cmd/6l cmd/6a cmd/6c cmd/6g runtime errors sync/atomic sync io unicode ... testing/quick text/scanner Build complete; skipping tests. To force tests, set GO14TESTS=1 and re-run, but expect some failures.
安装完成。
3.4 检验测试,进入 /usr/local/src/goroot/bin 目录
我们看到已经是 go1.4 版本了。
3.5 把安装好的go项目复制一份到/root/go1.4
[root@iz25vpndgurz goroot]# ls api AUTHORS bin CONTRIBUTORS doc favicon.ico include lib LICENSE misc PATENTS pkg README robots.txt src test VERSION [root@iz25vpndgurz goroot]# pwd /usr/local/src/goroot [root@iz25vpndgurz goroot]# cp -R /usr/local/src/goroot /root/go1.4 [root@iz25vpndgurz goroot]# ls /root/go1.4/ api AUTHORS bin CONTRIBUTORS doc favicon.ico include lib LICENSE misc PATENTS pkg README robots.txt src test VERSION [root@iz25vpndgurz goroot]# /root/go1.4/bin/go version go version go1.4-bootstrap-20170531 linux/amd64
4、进入/usr/local/go/src 目录,执行 all.bash
如果出现下面提示,证明第三步未做好,请确保 /root/go1.4/bin/go 可以执行。
要安装新版go,必须先安装go1.4。
./all.bash 开始安装,稍等会。。。
##### API check
Go version is "go1.14.3", ignoring -next /usr/local/go/api/next.txt
ALL TESTS PASSED
---
Installed Go for linux/amd64 in /usr/local/go
Installed commands in /usr/local/go/bin
*** You need to add /usr/local/go/bin to your PATH.
5、设置环境变量
打开 /etc/profile
vim /etc/profile
export GOROOT="/usr/local/go"
export GOPATH="/data/go_project"
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
source /etc/profile
[root@iz25vpndgurz go_project]# go version
go version go1.14.3 linux/amd64
其他扩展知识
[root@iz25vpndgurz go_project]# env | grep GO GOROOT=/usr/local/go GOPATH=/data/go_project [root@iz25vpndgurz go_project]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/mysql5.5/bin:/usr/local/php/php7.2.12/bin:/root/bin:/usr/local/mysql5.5/bin:/usr/local/php/php7.2.12/bin:/usr/local/go/bin:/data/go_project/bin
关于Go的一些介绍
环境变量:
$GOROOT:
表示Go的安装目录。也就是上面我们解压出来的文件夹里面的go文件夹。
$GOPATH:
表示我们的工作空间。用来存放我们的工程目录的地方。
GOPATH目录:
一般来说GOPATH下面会有三个文件夹:bin、pkg、src,没有的话自己创建。每个文件夹都有其的作用。
bin:编译后可的执行文件的存放路径
pkg:编译包时,生成的.a文件的存放路径
src:源码路径,一般我们的工程就创建在src下面。
注意:如果要用Go Mod(Go1.11及以上支持)进行包管理,则需要在 GOPATH 以外的目录创建工程。关于Go Mod的使用,可以自行Google一下,这里就不赘述了。