关于spark:go系列1go的安装

46次阅读

共计 1859 个字符,预计需要花费 5 分钟才能阅读完成。

因为之前我的项目依赖到了 k8s, 且与 k8s 的集成比拟多,而 k8s 的源码是 go 写的,网上搜寻了一大堆对于 go 的信息,
发现很多云原生的我的项目都是由 go 写的,所以又来折腾以下 go 语言,因为之前用 brew install mac 装置了 go,也用了
pkg 包装置了 go,所以环境够的很乱,至此,特定来清理一下

装置形式

  1. brew install go
  2. 官网下载对应的安装包, 间接装置

留神:
第一种形式装置,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,上面咱们来解释一下

名词 解释
GOROOT go 语言装置目录
GOPATH 工程项目 workspace
GOBIN 可执行文件目录, 如 go install 会生成可执行文件间接放到 bin 目录下

而 GOPATH 也会蕴含三个目录

名词 解释
src 源文件
pkg 编译好的库文件,次要是 *.a 文件,如 go install 把编译的一般的包放到该 pkg 目录下
bin 可执行文件目录, 如 go install 会生成可执行文件间接放到 bin 目录下

一般来说,得将 go 可执行文件目录(${GOBIN})退出 PATH 中,使 GO 命令与咱们编写的 GO 利用能够全局调用,
这样咱们就实现了 golang 的装置了

正文完
 0