确保执行了:Linux服务器配置
安装 Go 的编译环境步骤比较简单,你只需下载源码包、设置相应的环境变量即可。具体步骤如下。
- 下载安装包。
可以从 Go 语言官方网站下载对应的 Go 安装包以及源码包,下面的命令会下载 go1.18.3 安装包:
$ wget -P /tmp/ https://golang.google.cn/dl/go1.18.3.linux-amd64.tar.gz
- 解压并安装。
执行以下命令解压并安装 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
- 配置
$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
- 测试是否安装成功
如果你执行 go version
命令可以成功输出 Go 的版本,就说明 Go 编译环境安装成功。具体命令如下:
$ bash
$ go version
go version go1.18.3 linux/amd64
- 初始化工作区
本书使用的 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
这里我们再来安装 protobuf 的编译器 protoc
。protoc
需要 protoc-gen-go
插件来完成 Go 语言的代码转换,因此我们需要安装 protoc
和 protoc-gen-go
这 2 个工具。它们的安装方法比较简单,具体分为以下两步:
- 安装 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
- 安装
protoc-gen-go
$ go install github.com/golang/protobuf/[email protected]
当你第一次执行 go install
命令的时候,因为本地无缓存,需要下载所有的依赖模块,所以安装速度会比较慢,请你耐心等待。