作为程序员一定要保持良好的睡眠,才能好编程

源码编译安装go linux安装go 源码安装go go安装

发布时间:2020-05-24


在安装go1.4之后的版本,需要先安装go1.4  才能安装新版的go。


可能说,您云里雾里的,那么接着往下看:


1、安装新版  go1.14.3 

下载地址:https://studygolang.com/dl


image.png


首先下载源码安装包,放在 /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

image.png


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 目录


image.png


我们看到已经是 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

 

image.png


4、进入/usr/local/go/src 目录,执行 all.bash

如果出现下面提示,证明第三步未做好,请确保 /root/go1.4/bin/go 可以执行。

image.png

要安装新版go,必须先安装go1.4。
 

./all.bash 开始安装,稍等会。。。

image.png

##### 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一下,这里就不赘述了。