Skip to content

Latest commit

 

History

History
113 lines (84 loc) · 3.64 KB

02_Go编译环境安装和配置.md

File metadata and controls

113 lines (84 loc) · 3.64 KB

2. Go 编译环境安装和配置

确保执行了:Linux服务器配置

2.1 Go 编译工具安装和配置

安装 Go 的编译环境步骤比较简单,你只需下载源码包、设置相应的环境变量即可。具体步骤如下。

  1. 下载安装包。

可以从 Go 语言官方网站下载对应的 Go 安装包以及源码包,下面的命令会下载 go1.18.3 安装包:

$ wget -P /tmp/ https://golang.google.cn/dl/go1.18.3.linux-amd64.tar.gz
  1. 解压并安装。

执行以下命令解压并安装 Go 编译工具和源码:

$ mkdir -p $HOME/go
$ tar -xvzf /tmp/go1.18.3.linux-amd64.tar.gz -C $HOME/go
$ mv $HOME/go/go $HOME/go/go1.18.3
  1. 配置 $HOME/.bashrc 文件

你可以执行以下命令,将下列环境变量追加到 $HOME/.bashrc 文件中。

$ tee -a $HOME/.bashrc <<'EOF'
# Go envs
export GOVERSION=go1.18.3 # Go 版本设置
export GO_INSTALL_DIR=$HOME/go # Go 安装目录
export GOROOT=$GO_INSTALL_DIR/$GOVERSION # GOROOT 设置
export GOPATH=$WORKSPACE/golang # GOPATH 设置
export PATH=$GOROOT/bin:$GOPATH/bin:$PATH # 将 Go 语言自带的和通过 go install 安装的二进制文件加入到 PATH 路径中
export GO111MODULE="on" # 开启 Go moudles 特性
export GOPROXY=https://goproxy.cn,direct # 安装 Go 模块时,代理服务器设置
export GOPRIVATE=
export GOSUMDB=off # 关闭校验 Go 依赖包的哈希值
EOF
  1. 测试是否安装成功

如果你执行 go version 命令可以成功输出 Go 的版本,就说明 Go 编译环境安装成功。具体命令如下:

$ bash
$ go version
go version go1.18.3 linux/amd64
  1. 初始化工作区

本书使用的 Go 版本为 go1.18.3,go1.18.3 支持多模块工作区,所以这里也需要初始化工作区。初始化命令如下:

$ mkdir -p $GOPATH && cd $GOPATH
$ go work init
$ go env GOWORK # 执行此命令,查看 go.work 工作区文件路径
/home/going/workspace/golang/go.work

2.2 ProtoBuf 编译环境安装

这里我们再来安装 protobuf 的编译器 protocprotoc 需要 protoc-gen-go 插件来完成 Go 语言的代码转换,因此我们需要安装 protocprotoc-gen-go 这 2 个工具。它们的安装方法比较简单,具体分为以下两步:

  1. 安装 protobuf
$ cd /tmp/
$ git clone -b v3.21.1 --depth=1 https://github.com/protocolbuffers/protobuf
$ cd protobuf
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install
$ protoc --version # 查看 protoc 版本,成功输出版本号,说明安装成功
libprotoc 3.21.1

在执行 autogen.sh 脚本时,如果遇到以下错误:

configure.ac:48: installing './install-sh'
configure.ac:109: error: required file './ltmain.sh' not found
configure.ac:48: installing './missing'
benchmarks/Makefile.am: installing './depcomp'
conformance/Makefile.am:362: warning: shell python --version 2>&1: non-POSIX variable name
conformance/Makefile.am:362: (probably a GNU make extension)
conformance/Makefile.am:372: warning: shell python --version 2>&1: non-POSIX variable name
conformance/Makefile.am:372: (probably a GNU make extension)
parallel-tests: installing './test-driver'
autoreconf: automake failed with exit status: 1

可以通过以下命令配置 libtoolize,并再次运行 autogen.sh 来解决:

$ libtoolize --automake --copy --debug –force
$ ./autogen.sh
  1. 安装 protoc-gen-go
$ go install github.com/golang/protobuf/[email protected]

当你第一次执行 go install 命令的时候,因为本地无缓存,需要下载所有的依赖模块,所以安装速度会比较慢,请你耐心等待。