搭建Go开发环境
Go 环境安装
官方下载地址:
- macOS(x86-64)
- macOS(ARM64)
- Linux
- Windows
macOS 10.15 or later, Intel 64-bit processor
$ wget https://go.dev/dl/go1.22.3.darwin-amd64.tar.gz
解压并安装
$ tar -xvzf go1.22.3.darwin-amd64.tar.gz -C /usr/local
# 查看安装目录
$ ll /usr/local/go
# 查看安装的版本
$ go version
go version go1.22.3 darwin/amd64
macOS 11 or later, Apple 64-bit processor
$ wget https://go.dev/dl/go1.22.3.darwin-arm64.tar.gz
解压并安装
$ tar -xvzf go1.22.3.darwin-arm64.tar.gz -C /usr/local
# 查看安装目录
$ ll /usr/local/go
# 查看安装的版本
$ go version
go version go1.22.3 darwin/arm64
Linux 2.6.32 or later, Intel 64-bit processor
$ wget https://go.dev/dl/go1.22.3.linux-amd64.tar.gz
解压并安装
$ tar -xvzf go1.22.3.linux-amd64.tar.gz -C /usr/local
# 查看安装目录
$ ll /usr/local/go
# 查看安装的版本
$ go version
go version go1.22.3 linux/amd64
Windows 10 or later, Intel 64-bit processor
$ wget https://go.dev/dl/go1.22.3.windows-amd64.msi
默认情况下 .msi
文件会安装在 C:\Go
目录下,可选择自定义路径进行安装
# 查看安装的版本
$ go version
# Output
go version go1.22.3 windows/amd64
环境变量配置
vim $HOME/.bashrc
/.bashrc可以替换为 .zshrc, 配置文件以自己使用的为准
tee -a $HOME/.bashrc <<'EOF'
# go env
export GOROOT="/usr/local/go" # GOROOT 设置
export GOPATH=$HOME/go # GOPATH 设置
export PATH=$GOROOT/bin:$GOPATH/bin:$PATH # 加入到 PATH 路径
export GO111MODULE="on" # 开启 Go moudles
export GOPROXY=https://goproxy.cn,direct # 代理 服务器设置
export GOSUMDB=off # 关闭校验 Go 依赖包的哈希值
EOF
ProtoBuf 环境安装
安装 protoc 编译器
// macOS or linux
$ PB_REL="https://github.com/protocolbuffers/protobuf/releases"
# 如果是macOS 可以改为 osx
$ OS="linux"
$ VERSION="3.18.1"
$ curl -LO $PB_REL/download/v$VERSION/protoc-$VERSION-$OS-x86_64.zip
$ unzip protoc-$VERSION-$OS-x86_64.zip -d /usr/local
$ echo 'export PATH="$PATH:/usr/local/bin"' >> ~/.bashrc
source ~/.bashrc
// macOS
brew install protobuf@3 // 会安装3的最新版本 libprotoc 3.20.3
echo 'export PATH="/opt/homebrew/opt/protobuf@3/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
查看版本
protoc --version
libprotoc 3.18.1
安装 protoc-gen-go 插件
该插件的主要作用是生成 *.pb.go
代码,包含消息序列化代码,对应的是参数 --go_out=xx
运行:
# 安装
go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.27.1
# 更新到指定版本
go get -u google.golang.org/protobuf/cmd/protoc-gen-go@vX.X.X
编译后会安装 protoc-gen-go
到 $GOBIN
目录, 默认在 $GOPATH/bin
.
该目录必须在系统的环境变量 $PATH中
,这样在编译 .proto
文件时 protocol
编译器才能找到插件。
安装 protoc-gen-go-grpc 插件
该插件的主要作用是生成 *._grpc.pb.go
代码, 主要生成 gRPC
代码,对应的是参数 --go-grpc_out=xx
安装
# 安装
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.2.0
# 更新到指定版本
go get -u google.golang.org/grpc/cmd/protoc-gen-go-grpc@vX.X.X
这种参数方式
--go_out=plugins=grpc
是比较老的方式,新的都是按上面的方式使用的
参考:Differences between protoc-gen-go and protoc-gen-go-grpc
编译安装 protoc
如果需要,也可以进行编译安装
# 安装依赖工具
$ sudo yum -y install make autoconf automake cmake perl-CPAN libcurl-devel libtool gcc gcc-c++ glibc-headers zlib-devel git-lfs telnet ctags lrzsz jq expat-devel openssl-devel
# 编译安装 protoc
# 第一步:安装 protobuf
$ cd /tmp/
$ git clone --depth=1 https://github.com/protocolbuffers/protobuf
$ cd protobuf
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install
$ protoc --version # 查看 protoc 版本,成功输出版本号,说明安装成功
libprotoc 3.15.6
# 第二步:安装 protoc-gen-go
$ go get -u github.com/golang/protobuf/protoc-gen-go
📢 注意事项
protoc
和 protoc-gen-xxx
插件 和 grpc
和 protobuf
在选择哪个版本组合使用时,有没有推荐组合的版本号?
这里推荐:
protoc v3.18.1
protoc-gen-go v1.27.1
protoc-gen-go-grpc v1.1.0
grpc v1.43.0
protobuf v1.33.0
如果有新组合,欢迎告知,感谢~
Go 开发 IDE 安装和配置
主流的有三种
- Goland
- VSCode
- Vim(NeoVim)
可以根据个人爱好来进行选择。
安装vim
这里以 NeoVim 为例进行安装
# Linux
$ sudo pip3 install pynvim
$ sudo yum -y install neovim
# macOS
brew install neovim
python3 -m pip install pynvim
配置bashrc
tee -a $HOME/.bashrc <<'EOF'
# Configure for nvim
export EDITOR=nvim # 默认的编辑器
alias vim="nvim"
EOF
检查 nvim 是否安装成功
$ bash
$ vi --version # 输出 NVIM v0.3.8 说明安装成功
NVIM v0.3.8
Build type: RelWithDebInfo
...