一·、Go语言的官方网站 https://golang.org/dl/ 二、安装Go语言 Linux版本:mac版本和windows版本安装没啥说的,一直“ok”“下一步”就可以了

tar zxf go1.11.4.linux-amd64.tar.gz mv go /usr/local/ mkdir -p /usr/local/go/gocode/{bin,pkg,src} 

解释:gocode:是工作空间,涉及源代码的存放和包的管理,生产环境下建议放在用户个人目录下。

文件夹 作用
bin 存放编译后的可执行程序
pkg 存放编译后的包文件(.a文件)
src 存放源代码

三、设置GOPATH和GOROOT环境变量

vim /etc/profile

增加这三行:

export GOROOT=/usr/local/go export PATH=$GOROOT/bin:$PATH export GOPATH=$GOROOT/gocode 

使其生效:source /etc/profile

四、验证

执行:go version

go version go1.11.4 linux/amd64 

五、Go环境变量介绍

执行:go env

GOARCH="amd64" GOBIN="" GOCACHE="/root/.cache/go-build" GOEXE="" GOFLAGS="" GOHOSTARCH="amd64" GOHOSTOS="linux" GOOS="linux" GOPATH="/usr/local/go/gocode/" GOPROXY="" GORACE="" GOROOT="/usr/local/go" GOTMPDIR="" GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64" GCCGO="gccgo" CC="gcc" CXX="g++" CGO_ENABLED="1" GOMOD=""386、 CGO_CFLAGS="-g -O2" CGO_CPPFLAGS="" CGO_CXXFLAGS="-g -O2" CGO_FFLAGS="-g -O2" CGO_LDFLAGS="-g -O2" PKG_COnFIG="pkg-config" GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build119196690=/tmp/go-build -gno-record-gcc-switches" 

GOROOT="/usr/local/go" //表示Go在服务器上安装位置 GOPATH="/usr/local/go/gocode/" //表示Go语言的工作目录 GOARCH="amd64" //表示机器的处理器架构,值可以是:386、amd64、arm GOOS="linux" //表示当前机器的操作系统,值可以是:darwin、freebsd、linux、windows(其中darwin就是mac系统) GOBIN="" //表示编译器和链接器的安装位置,默认位置是 $GOROOT/bin,一般情况下你可以将它的值设置为空,Go 将会使用前面提到的默认值

六、Go语言源码路径说明

[root@Go ~]# ls -l /usr/local/go total 180 drwxr-xr-x 2 root root 258 Dec 15 07:36 api -rw-r--r-- 1 root root 55284 Dec 15 07:36 AUTHORS drwxr-xr-x 2 root root 42 Dec 15 07:48 bin -rw-r--r-- 1 root root 1339 Dec 15 07:36 CONTRIBUTING.md -rw-r--r-- 1 root root 71070 Dec 15 07:36 CONTRIBUTORS drwxr-xr-x 8 root root 4096 Dec 15 07:36 doc -rw-r--r-- 1 root root 5686 Dec 15 07:36 favicon.ico drwxr-xr-x 2 root root 6 Jan 23 15:30 gocode drwxr-xr-x 3 root root 18 Dec 15 07:36 lib -rw-r--r-- 1 root root 1479 Dec 15 07:36 LICENSE drwxr-xr-x 15 root root 202 Dec 15 07:48 misc -rw-r--r-- 1 root root 1303 Dec 15 07:36 PATENTS drwxr-xr-x 9 root root 199 Dec 15 07:48 pkg -rw-r--r-- 1 root root 1607 Dec 15 07:36 README.md -rw-r--r-- 1 root root 26 Dec 15 07:36 robots.txt drwxr-xr-x 46 root root 4096 Dec 15 07:36 src drwxr-xr-x 22 root root 8192 Dec 15 07:48 test -rw-r--r-- 1 root root 8 Dec 15 07:36 VERSION 

1)bin目录

-rwxr-xr-x 1 root root 13057654 Dec 15 07:38 go -rwxr-xr-x 1 root root 16006569 Dec 15 07:48 godoc -rwxr-xr-x 1 root root 3373518 Dec 15 07:38 gofmt 

包含可执行文件,如:编辑器、Go工具

2)doc目录

drwxr-xr-x 3 root root 85 Dec 15 07:36 articles -rw-r--r-- 1 root root 33541 Dec 15 07:36 asm.html -rw-r--r-- 1 root root 3006 Dec 15 07:36 cmd.html -rw-r--r-- 1 root root 16933 Dec 15 07:36 code.html drwxr-xr-x 2 root root 202 Dec 15 07:46 codewalk -rw-r--r-- 1 root root 8701 Dec 15 07:36 conduct.html -rw-r--r-- 1 root root 4586 Dec 15 07:36 contrib.html -rw-r--r-- 1 root root 36834 Dec 15 07:36 contribute.html -rw-r--r-- 1 root root 16577 Dec 15 07:36 debugging_with_gdb.html drwxr-xr-x 2 root root 65 Dec 15 07:36 devel -rw-r--r-- 1 root root 17573 Dec 15 07:36 diagnostics.html -rw-r--r-- 1 root root 8865 Dec 15 07:36 docs.html -rw-r--r-- 1 root root 1405 Dec 15 07:36 editors.html -rw-r--r-- 1 root root 116452 Dec 15 07:36 effective_go.html -rw-r--r-- 1 root root 4319 Dec 15 07:36 gccgo_contribute.html -rw-r--r-- 1 root root 17052 Dec 15 07:36 gccgo_install.html -rw-r--r-- 1 root root 59265 Dec 15 07:36 go1.10.html -rw-r--r-- 1 root root 36305 Dec 15 07:36 go1.11.html -rw-r--r-- 1 root root 40411 Dec 15 07:36 go1.1.html -rw-r--r-- 1 root root 35000 Dec 15 07:36 go1.2.html -rw-r--r-- 1 root root 23115 Dec 15 07:36 go1.3.html -rw-r--r-- 1 root root 33535 Dec 15 07:36 go1.4.html -rw-r--r-- 1 root root 47800 Dec 15 07:36 go1.5.html -rw-r--r-- 1 root root 37592 Dec 15 07:36 go1.6.html -rw-r--r-- 1 root root 43702 Dec 15 07:36 go1.7.html -rw-r--r-- 1 root root 59014 Dec 15 07:36 go1.8.html -rw-r--r-- 1 root root 37538 Dec 15 07:36 go1.9.html -rw-r--r-- 1 root root 7216 Dec 15 07:36 go1compat.html -rw-r--r-- 1 root root 71461 Dec 15 07:36 go1.html -rw-r--r-- 1 root root 89479 Dec 15 07:36 go_faq.html -rw-r--r-- 1 root root 8843 Dec 15 07:36 go-logo-black.png -rw-r--r-- 1 root root 9360 Dec 15 07:36 go-logo-blue.png -rw-r--r-- 1 root root 21469 Dec 15 07:36 go-logo-white.png -rw-r--r-- 1 root root 13497 Dec 15 07:36 go_mem.html drwxr-xr-x 3 root root 4096 Dec 15 07:36 gopher -rw-r--r-- 1 root root 204825 Dec 15 07:36 go_spec.html -rw-r--r-- 1 root root 3128 Dec 15 07:36 help.html -rw-r--r-- 1 root root 34 Dec 15 07:36 ie.css -rw-r--r-- 1 root root 9159 Dec 15 07:36 install.html -rw-r--r-- 1 root root 19777 Dec 15 07:36 install-source.html drwxr-xr-x 2 root root 131 Dec 15 07:36 play drwxr-xr-x 2 root root 4096 Dec 15 07:36 progs -rw-r--r-- 1 root root 4520 Dec 15 07:36 root.html -rw-r--r-- 1 root root 8411 Dec 15 07:36 security.html -rw-r--r-- 1 root root 2993 Dec 15 07:36 share.png -rw-r--r-- 1 root root 360 Dec 15 07:36 tos.html 

包含示例程序、代码工具、本地文档等

3)lib目录

[root@Go go]# ls -l lib/ drwxr-xr-x 2 root root 59 Jan 24 17:33 time [root@Go go]# ls -l lib/time/ -rw-r--r-- 1 root root 378 Dec 15 07:36 README -rwxr-xr-x 1 root root 1367 Dec 15 07:36 update.bash -rw-r--r-- 1 root root 365101 Dec 15 07:36 zoneinfo.zip 

包含文档模板

4)misc目录

drwxr-xr-x 2 root root 64 Dec 15 07:36 android drwxr-xr-x 2 root root 15 Dec 15 07:36 arm -rwxr-xr-x 1 root root 110 Dec 15 07:36 benchcmp drwxr-xr-x 20 root root 4096 Dec 15 07:36 cgo drwxr-xr-x 3 root root 24 Dec 15 07:36 chrome -rw-r--r-- 1 root root 159 Dec 15 07:36 editors drwxr-xr-x 2 root root 24 Dec 15 07:36 git drwxr-xr-x 2 root root 86 Dec 15 07:36 ios drwxr-xr-x 2 root root 26 Dec 15 07:36 linkcheck drwxr-xr-x 3 root root 150 Dec 15 07:36 nacl drwxr-xr-x 2 root root 23 Dec 15 07:36 sortac drwxr-xr-x 4 root root 35 Dec 15 07:36 swig drwxr-xr-x 7 root root 79 Dec 15 07:48 tour drwxr-xr-x 2 root root 53 Dec 15 07:36 trace drwxr-xr-x 2 root root 71 Dec 15 07:36 wasm 

包含与支持Go编辑器有关的配置文件以及cgo的示例

5)src目录

-rwxr-xr-x 1 root root 407 Dec 15 07:36 all.bash -rw-r--r-- 1 root root 726 Dec 15 07:36 all.bat -rwxr-xr-x 1 root root 385 Dec 15 07:36 all.rc -rwxr-xr-x 1 root root 2622 Dec 15 07:36 androidtest.bash drwxr-xr-x 4 root root 28 Dec 15 07:36 archive -rwxr-xr-x 1 root root 3738 Dec 15 07:36 bootstrap.bash drwxr-xr-x 2 root root 123 Dec 15 07:36 bufio -rwxr-xr-x 1 root root 1818 Dec 15 07:36 buildall.bash drwxr-xr-x 2 root root 24 Dec 15 07:36 builtin drwxr-xr-x 2 root root 234 Dec 15 07:36 bytes -rwxr-xr-x 1 root root 521 Dec 15 07:36 clean.bash -rw-r--r-- 1 root root 565 Dec 15 07:36 clean.bat -rwxr-xr-x 1 root root 380 Dec 15 07:36 clean.rc drwxr-xr-x 24 root root 289 Dec 15 07:36 cmd -rw-r--r-- 1 root root 1519 Dec 15 07:36 cmp.bash drwxr-xr-x 8 root root 83 Dec 15 07:36 compress drwxr-xr-x 5 root root 42 Dec 15 07:36 container drwxr-xr-x 2 root root 131 Dec 15 07:36 context drwxr-xr-x 20 root root 275 Dec 15 07:36 crypto drwxr-xr-x 3 root root 17 Dec 15 07:36 database drwxr-xr-x 8 root root 82 Dec 15 07:36 debug drwxr-xr-x 13 root root 161 Dec 15 07:36 encoding drwxr-xr-x 2 root root 68 Dec 15 07:36 errors drwxr-xr-x 2 root root 45 Dec 15 07:36 expvar drwxr-xr-x 2 root root 115 Dec 15 07:36 flag drwxr-xr-x 2 root root 176 Dec 15 07:36 fmt drwxr-xr-x 14 root root 173 Dec 15 07:36 go drwxr-xr-x 6 root root 201 Dec 15 07:36 hash drwxr-xr-x 3 root root 151 Dec 15 07:36 html drwxr-xr-x 9 root root 4096 Dec 15 07:36 image drwxr-xr-x 3 root root 33 Dec 15 07:36 index drwxr-xr-x 12 root root 194 Dec 15 07:36 internal drwxr-xr-x 3 root root 146 Dec 15 07:36 io -rwxr-xr-x 1 root root 2116 Dec 15 07:36 iostest.bash drwxr-xr-x 3 root root 76 Dec 15 07:36 log -rwxr-xr-x 1 root root 6339 Dec 15 07:36 make.bash -rw-r--r-- 1 root root 3946 Dec 15 07:36 make.bat -rw-r--r-- 1 root root 553 Dec 15 07:36 Make.dist -rwxr-xr-x 1 root root 3136 Dec 15 07:36 make.rc drwxr-xr-x 6 root root 8192 Dec 15 07:36 math drwxr-xr-x 5 root root 4096 Dec 15 07:36 mime -rwxr-xr-x 1 root root 1255 Dec 15 07:36 naclmake.bash -rwxr-xr-x 1 root root 1216 Dec 15 07:36 nacltest.bash drwxr-xr-x 10 root root 8192 Dec 15 07:36 net drwxr-xr-x 5 root root 4096 Dec 15 07:39 os drwxr-xr-x 3 root root 117 Dec 15 07:36 path drwxr-xr-x 2 root root 70 Dec 15 07:36 plugin -rwxr-xr-x 1 root root 976 Dec 15 07:36 race.bash -rw-r--r-- 1 root root 1037 Dec 15 07:36 race.bat drwxr-xr-x 2 root root 4096 Dec 15 07:36 reflect drwxr-xr-x 4 root root 232 Dec 15 07:36 regexp -rwxr-xr-x 1 root root 1681 Dec 15 07:36 run.bash -rw-r--r-- 1 root root 1147 Dec 15 07:36 run.bat -rwxr-xr-x 1 root root 418 Dec 15 07:36 run.rc drwxr-xr-x 10 root root 16384 Dec 15 07:36 runtime drwxr-xr-x 2 root root 334 Dec 15 07:36 sort drwxr-xr-x 3 root root 4096 Dec 15 07:36 strconv drwxr-xr-x 2 root root 333 Dec 15 07:36 strings drwxr-xr-x 3 root root 4096 Dec 15 07:36 sync drwxr-xr-x 3 root root 12288 Dec 15 07:36 syscall drwxr-xr-x 5 root root 335 Dec 15 07:36 testing drwxr-xr-x 5 root root 54 Dec 15 07:36 text drwxr-xr-x 2 root root 4096 Dec 15 07:36 time drwxr-xr-x 4 root root 252 Dec 15 07:36 unicode drwxr-xr-x 2 root root 23 Dec 15 07:36 unsafe drwxr-xr-x 3 root root 24 Dec 15 07:36 vendor 

包含源代码构建脚本和标准库的包的完整源代码

6)src/cmd目录

drwxr-xr-x 2 root root 46 Dec 15 07:36 addr2line drwxr-xr-x 3 root root 73 Dec 15 07:36 api drwxr-xr-x 3 root root 51 Dec 15 07:36 asm drwxr-xr-x 2 root root 38 Dec 15 07:36 buildid drwxr-xr-x 2 root root 130 Dec 15 07:36 cgo drwxr-xr-x 3 root root 87 Dec 15 07:36 compile drwxr-xr-x 3 root root 121 Dec 15 07:41 cover drwxr-xr-x 2 root root 4096 Dec 15 07:38 dist drwxr-xr-x 3 root root 85 Dec 15 07:36 doc drwxr-xr-x 2 root root 4096 Dec 15 07:36 fix drwxr-xr-x 4 root root 258 Dec 15 07:43 go drwxr-xr-x 3 root root 149 Dec 15 07:36 gofmt drwxr-xr-x 15 root root 178 Dec 15 07:36 internal drwxr-xr-x 3 root root 115 Dec 15 07:36 link drwxr-xr-x 2 root root 73 Dec 15 07:36 nm drwxr-xr-x 3 root root 60 Dec 15 07:36 objdump drwxr-xr-x 2 root root 55 Dec 15 07:36 pack drwxr-xr-x 2 root root 71 Dec 15 07:36 pprof drwxr-xr-x 2 root root 21 Dec 15 07:36 test2json drwxr-xr-x 2 root root 184 Dec 15 07:36 trace drwxr-xr-x 4 root root 95 Dec 15 07:36 vendor drwxr-xr-x 5 root root 4096 Dec 15 07:41 vet 

包含Go和C的编辑器和命令行脚本