由于之前项目依赖到了k8s,且与k8s的集成比较多,而k8s的源码是go写的,网上搜索了一大堆关于go的信息,
发现很多云原生的项目都是由go写的,所以又来折腾以下go语言,因为之前用brew install mac安装了go,也用了
pkg包安装了go,所以环境够的很乱,至此,特定来清理一下
安装方式
brew install go
官网下载对应的安装包,直接安装
注意:
第一种方式安装,go可执行文件在/usr/local/bin下,其实这个目录下的go是一个软连接,
➜ bin ll /usr/local/bin |grep go lrwxr-xr-x 1 ljh admin 26 9 28 10:46 go -> ../Cellar/go/1.15.2/bin/go lrwxr-xr-x 1 ljh admin 29 9 28 10:46 godoc -> ../Cellar/go/1.15.2/bin/godoc lrwxr-xr-x 1 ljh admin 29 9 28 10:46 gofmt -> ../Cellar/go/1.15.2/bin/gofmt
我们发现其实这个是链接到了brew install的go的安装目录下了
第二种方式安装,go的可执行文件在/usr/local/go/bin下,这个是go pkg包默认的安装目录
但是无论怎么安装,都得配置GOPATH/GOBIN/PATH,如下, 这三个变量稍后做解释
#go export GOPATH=/Users/ljh/go export GOBIN=$GOPATH/bin export PATH=$PATH:$GOBIN
这个时候,运行go env
GO111MODULE="" GOARCH="amd64" GOBIN="/Users/ljh/go/bin" GOCACHE="/Users/ljh/Library/Caches/go-build" GOENV="/Users/ljh/Library/Application Support/go/env" GOEXE="" GOFLAGS="" GOHOSTARCH="amd64" GOHOSTOS="darwin" GOINSECURE="" GOMODCACHE="/Users/ljh/go/pkg/mod" GONOPROXY="" GONOSUMDB="" GOOS="darwin" GOPATH="/Users/ljh/go" GOPRIVATE="" GOPROXY="https://proxy.golang.org,direct" GOROOT="/usr/local/Cellar/go/1.15.2/libexec" GOSUMDB="sum.golang.org" GOTMPDIR="" GOTOOLDIR="/usr/local/Cellar/go/1.15.2/libexec/pkg/tool/darwin_amd64" GCCGO="gccgo" AR="ar" CC="clang" CXX="clang++" CGO_ENABLED="1" GOMOD="" 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 -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/1l/mwvs7rf563x72kqcv7l6rb840000gn/T/go-build705548469=/tmp/go-build -gno-record-gcc-switches -fno-common"
发现还有一个GOROOT,下面我们来解释一下
而GOPATH也会包含三个目录
一般来说,得将go可执行文件目录(${GOBIN})加入PATH中,使GO命令与我们编写的GO应用可以全局调用,
这样我们就完成了golang的安装了