七叶笔记 » golang编程 » gRPC学习之二:GO的gRPC开发环境准备

gRPC学习之二:GO的gRPC开发环境准备

欢迎访问我的 GitHub

内容:所有原创文章分类和汇总,及配套源码,涉及 Java Docker Kubernetes 、DevOPS等;

本篇概览

  • 本文《gRPC学习》系列的第二篇,前文在CentOS7环境装好了GO,接下来要把gRPC开发环境准备好,总的来说一共三步:

安装protoc

  1. protoc是编译工具,安装方式是下载二进制文件,直接复制粘贴以下命令执行即可:
 mkdir -p $GOPATH/ bin  \
&& mkdir ~/temp-protoc-download \
&& wget https:// github .com/protocolbuffers/protobuf/releases/download/v3.14.0/protoc-3.14.0-linux-x86_64.zip -O ~/temp-protoc-download/protoc.zip \
&& cd ~/temp-protoc-download \
&& unzip protoc.zip \
&& cp ./bin/protoc $GOPATH/bin/ \
&& cd ~/ \
&& rm -rf ~/temp-protoc-download  
  1. 执行 protoc –version 检查protoc安装是否成功:
 [golang@centos7 ~]$ protoc --version
libprotoc 3.14.0  

安装protoc-gen-go和grpc包遇到的问题

  • 实际证明,用 go get 命令安装protoc-gen- go 和grpc包的时候经常提示网络错误,于是我写了个shell 脚本 ,将protoc-gen-go和grpc包的源码从GitHub下载下来,在本地编译构建,达到 go get 安装相同的效果;
  • 使用 git clone 命令下载源码比较耗时(文件数量太多),因此我写的脚本是下载对应的源码包(zip文件),再解压,和 git clone 效果相同但是耗时减少很多;
  • 因此,接下来的操作是一个脚本完成protoc-gen-go和grpc包的安装;

安装protoc-gen-go和grpc包

  1. 执行以下命令即可完成protoc-gen-go和grpc包的安装:
 curl -o install-grpc.sh \
 \
&& chmod a+x ./install-grpc.sh \
&& ./install-grpc.sh  
  1. 控制台输出以下信息,无错误,表示安装成功:
 ...
install protoc-gen-go
go: downloading google.golang.org/protobuf v1.23.0
install grpc
clear resource
install finish  
  1. $GOPATH/bin 目录可见 protoc-gen-go
 [golang@centos7 ~]$ cd $GOPATH/bin
[golang@centos7 bin]$ ls
protoc  protoc-gen-go  
  • 至此,gRPC开发环境已经准备完毕,下一篇可以开始gRPC开发实战了;

安装脚本一览

protoc-gen-go和grpc包的安装过程都在 install-grpc.sh 中完成,该脚本内容如下所示,可见都是些很简单的操作:下载源码、解压、构建

 #!/bin/ bash 

mkdir ~/temp-grpc-install

 echo  "clear old files"
rm -rf $GOPATH/src/google.golang.org/grpc
rm -rf $GOPATH/src/golang.org/x
rm -rf $GOPATH/src/google.golang.org/protobuf
rm -rf $GOPATH/src/github.com/golang/protobuf
rm -rf $GOPATH/src/google.golang.org/genproto

echo "create directory"
mkdir -p $GOPATH/src/google.golang.org/
mkdir -p $GOPATH/src/golang.org/x
mkdir -p $GOPATH/src/github.com/golang/

echo "1. grpc"
cd ~/temp-grpc-install
wget  -O grpc-go.zip
unzip grpc-go.zip -d $GOPATH/src/google.golang.org/
cd $GOPATH/src/google.golang.org/ 
mv grpc-go-master grpc

echo "2. x/net"
cd ~/temp-grpc-install
wget  -O net.zip
unzip net.zip -d $GOPATH/src/golang.org/x/
cd $GOPATH/src/golang.org/x/ 
mv net-master net

echo "3. x/text"
cd ~/temp-grpc-install
wget  -O text.zip
unzip text.zip -d $GOPATH/src/golang.org/x/
cd $GOPATH/src/golang.org/x/ 
mv text-master text

echo "4. protobuf-go"
cd ~/temp-grpc-install
wget  -O protobuf-go.zip
unzip protobuf-go.zip -d $GOPATH/src/google.golang.org/ 
cd $GOPATH/src/google.golang.org/
mv protobuf-go-master protobuf

echo "5. protobuf"
cd ~/temp-grpc-install
wget  -O protobuf.zip
unzip protobuf.zip -d $GOPATH/src/github.com/golang/
cd $GOPATH/src/github.com/golang/
mv protobuf-master protobuf

echo "6. go-genproto"
cd ~/temp-grpc-install
wget  -O go-genproto.zip
unzip go-genproto.zip -d $GOPATH/src/google.golang.org/
cd $GOPATH/src/google.golang.org/
mv go-genproto-master genproto

echo "7. x/sys"
cd ~/temp-grpc-install
wget  -O sys.zip
unzip sys.zip -d $GOPATH/src/golang.org/x/
cd $GOPATH/src/golang.org/x
mv sys-master sys

echo "install protoc-gen-go"
cd $GOPATH/src/github.com/golang/protobuf/protoc-gen-go/
go build
go install

echo "install grpc"

cd $GOPATH/src/
go install google.golang.org/grpc

echo "clear resource"
cd ~/
rm -rf ~/temp-grpc-install

echo "install finish"  

欢迎关注我的公众号:程序员欣宸

相关文章