grpc测试环境搭建全过程

1 篇文章 0 订阅

第一、安装 Golang

MAC版安装go环境:
1、安装命令:
brew install go
2、检查:
输入brew info go或者go env即可查看当前安装的golang版本信息
3、配置go路径环境
主要是GOROOT和GOPATH
GOROOT:就是go的安装环境
GOPATH:作为编译后二进制的存放目的地和import包时的搜索路径。其实说通俗点就是你的go项目工作目录。通常情况下GOPATH包含三个目录:bin、pkg、src。
src目录下主要存放go的源文件
pkg目录存放编译好的库文件,主要是*.a文件;
bin目录主要存放可执行文件
注意:千万不要把GOPATH设置成go的安装路径,可以自己在用户目录下创建一个目录,例如mygo

一般安装好go之后,使用go env查看一下当前环境。此时显示出来的GOROOT就是你使用brew安装go的安装目录,这个路径要记下来。接下来要在bash_profile文件中进行配置。
使用vim ~/.bash_profile
然后在这个文件中进行编辑,下面以我的电脑为例,路径这种要根据不同人的情况而定
GOROOT=/usr/local/Cellar/go/1.10.1/libexec
export GOROOT
export GOPATH=/Users/xxx/mygo
export GOBIN= G O P A T H / b i n e x p o r t P A T H = GOPATH/bin export PATH= GOPATH/binexportPATH=PATH: G O B I N : GOBIN: GOBIN:GOROOT/bin
GOROOT: go安装目录
GOPATH:go工作目录
GOBIN:go可执行文件目录
PATH:将go可执行文件加入PATH中,使GO命令与我们编写的GO应用可以全局调用
编辑完之后退出保存文件,然后使用
source ~/.bash_profile
使之生效,然后再使用go env查看当前环境,可以发现已经是你配置文件中设置的路径环境了

Linux版安装GO环境:
下载最新版本的 Golang 安装包
gRPC 依赖于 1.6 以上版本,如果对其他版本有诉求可以在 https://golang.org/dl/ 选择下载

$ wget https://dl.google.com/go/go1.11.2.linux-amd64.tar.gz

解压安装包

$ tar zxvf go1.11.2.linux-amd64.tar.gz

配置环境变量

$ mkdir /home/dc2-user/gopath
$ sudo vim /etc/profile.d/go.sh
export GOROOT=/home/dc2-user/go
export GOPATH=/home/dc2-user/gopath
export PATH=$GOROOT/bin:$GOPATH/bin:$PATH
$ source /etc/profile.d/go.sh

检查安装结果

$ go version && go env

出现以下信息则表明安装成功
go version go1.11.2 linux/amd64
GOARCH=“amd64”
GOBIN=“”
GOCACHE=“/home/dc2-user/.cache/go-build”
GOEXE=“”
GOFLAGS=“”
GOHOSTARCH=“amd64”
GOHOSTOS=“linux”
GOOS=“linux”
GOPATH=“/home/dc2-user/gopath”
GOPROXY=“”
GORACE=“”
GOROOT=“/home/dc2-user/go”
GOTMPDIR=“”
GOTOOLDIR=“/home/dc2-user/go/pkg/tool/linux_amd64”
GCCGO=“gccgo”
CC=“gcc”
CXX=“g++”
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 -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build425133327=/tmp/go-build -gno-record-gcc-switches”

先配置环境再下载安装:

export GOPATH=/home/op/mygo
export GOROOT=/home/op/go1.12.5
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOBIN:$GOROOT/bin:$GOPATH/bin

第二、安装 Protocol Buffers

下载最新版本的 Protobuf 安装包

$ wget https://github.com/protocolbuffers/protobuf/releases/download/v3.6.1/protobuf-all-3.6.1.tar.gz

解压安装包

$ tar zxvf protobuf-all-3.6.1.tar.gz

安装 Protobuf

$ cd protobuf-3.6.1/
$ ./configure && make && sudo make install

安装 Protobuf Golang 插件

$ go get -u -v github.com/golang/protobuf/protoc-gen-go

检查安装结果

$ protoc --version && which protoc-gen-go
libprotoc 3.7.1
/Users/xueqiu/Downloads/mygo/bin/protoc-gen-go

第三、安装 gRPC

方案一:(首选方案)
golang安装gRpc

https://www.jianshu.com/p/dba4c7a6d608

安装官方安装命令:

go get google.golang.org/grpc

是安装不起的,会报错:

package google.golang.org/grpc: unrecognized import path "google.golang.org/grpc"(https fetch: Get https://google.golang.org/grpc?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)

原因是这个代码已经转移到github上面了,但是代码里面的包依赖还是没有修改,还是google.golang.org这种,
所以不能使用go get的方式安装,正确的安装方式:

 git clone https://github.com/grpc/grpc-go.git $GOPATH/src/google.golang.org/grpc
 git clone https://github.com/golang/net.git $GOPATH/src/golang.org/x/net
 git clone https://github.com/golang/text.git $GOPATH/src/golang.org/x/text
 go get -u github.com/golang/protobuf/{proto,protoc-gen-go}
 git clone https://github.com/google/go-genproto.git $GOPATH/src/google.golang.org/genproto
 cd $GOPATH/src/
 go install google.golang.org/grpc

方案二:(备选方案)
网络环境允许的同学安装 gRPC 非常方便,直接执行以下命令即可安装完成:

$ go get -u -v google.golang.org/grpc
Fetching https://google.golang.org/grpc?go-get=1
https fetch failed: Get https://google.golang.org/grpc?go-get=1: dial tcp 216.239.37.1:443: i/o timeout
package google.golang.org/grpc: unrecognized import path "google.golang.org/grpc" (https fetch: Get https://google.golang.org/grpc?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)

如果出现以上问题,则可以按照下面的方式进行安装:
在 GOPATH 下创建 google.golang.org 目录

$ mkdir -p $GOPATH/src/google.golang.org/
$ cd $GOPATH/src/google.golang.org/

下载 gRPC 最新代码并解压

$ wget https://github.com/grpc/grpc-go/archive/master.tar.gz
$ tar zxvf master.tar.gz
$ mv grpc-go-master/ grpc

安装 gRPC

$ go install google.golang.org/grpc
grpc/internal/transport/controlbuf.go:27:2: cannot find package "golang.org/x/net/http2" in any of:
/home/dc2-user/go/src/golang.org/x/net/http2 (from $GOROOT)
/home/dc2-user/gopath/src/golang.org/x/net/http2 (from $GOPATH)
grpc/internal/transport/controlbuf.go:28:2: cannot find package "golang.org/x/net/http2/hpack" in any of:
/home/dc2-user/go/src/golang.org/x/net/http2/hpack (from $GOROOT)
/home/dc2-user/gopath/src/golang.org/x/net/http2/hpack (from $GOPATH)
grpc/server.go:36:2: cannot find package "golang.org/x/net/trace" in any of:
/home/dc2-user/go/src/golang.org/x/net/trace (from $GOROOT)
/home/dc2-user/gopath/src/golang.org/x/net/trace (from $GOPATH)
grpc/internal/channelz/types_linux.go:26:2: cannot find package "golang.org/x/sys/unix" in any of:
/home/dc2-user/go/src/golang.org/x/sys/unix (from $GOROOT)
/home/dc2-user/gopath/src/golang.org/x/sys/unix (from $GOPATH)
grpc/status/status.go:37:2: cannot find package "google.golang.org/genproto/googleapis/rpc/status" in any of:
/home/dc2-user/go/src/google.golang.org/genproto/googleapis/rpc/status (from $GOROOT)
/home/dc2-user/gopath/src/google.golang.org/genproto/googleapis/rpc/status (from $GOPATH)

如果在安装过程中出现以上错误,表明 gRPC 依赖的库缺失,则需按照错误提示逐步补全安装其依赖库
安装 golang.org/x/*
golang.org/x/ 在 github.com/golang/ 下均有 mirror,利用这个我们可以以 GitHub 为跳板来安装相应依赖。执行以下脚本则可以自动完成 golang.org/x/* 的安装

#!/bin/bash
MODULES="crypto net oauth2 sys text tools"
for module in ${MODULES}
do
wget https://github.com/golang/${module}/archive/master.tar.gz -O ${GOPATH}/src/golang.org/x/${module}.tar.gz
cd ${GOPATH}/src/golang.org/x && tar zxvf ${module}.tar.gz && mv ${module}-master/ ${module}
done

安装 google.golang.org/genproto
google.golang.org/genproto 在GitHub 上的 mirror 地址为:github.com/google/go-genproto
$ wget https://github.com/google/go-genproto/archive/master.tar.gz -O ${GOPATH}/src/google.golang.org/genproto.tar.gz
$ cd ${GOPATH}/src/google.golang.org && tar zxvf genproto.tar.gz && mv go-genproto-master genproto
依赖安装完毕后再次执行 go install google.golang.org/grpc 即可完成 gRPC 的安装,自此环境相关的准备工作完成。

第四、安装 gRPC-gateway

go get -v -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway
cd $GOPATH/src/github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway
go build
go install 

第五、保证编译生成的二进制文件在 G O P A T H / b i n 目 录 中 , 然 后 把 GOPATH/bin目录中,然后把 GOPATH/binGOPATH/bin放入$PATH中。

第六、配置idea环境

如果你在mac上运行,需要配置以下操作:
1、升级mac自带的bash版本
mac自带的bash为3.2版本,而最新的bash是4.9,需要升级了,才能支持关联数组等新特性。
1、brew install bash
2、安装到/usr/local/bin/bash里面。可以通过修改/etc/shells文件,来完成开机使用新版本的bash
3、但是,无法改变/bin/bash的版本,这里仍旧为3.2版本,这给使用脚本带来不便,因为默认都是#!/bin/bash
4、细查后,发现原来mac系统禁止更改系统目录的权限,引入sip机制,需要先关闭,修改,再打开这一系列操作。
5、下面是打开和关闭sip的步骤。
(1)重启OSX系统,然后按住Command+R
(2)出现界面之后,选择Utilities menu中Terminal
(3)在Terminal中输入csrutil disable关闭SIP(csrutil enable打开SIP)
(4)重启reboot OSX
6、关闭sip后,加入软连接,在打开sip
sudo mv /bin/bash /bin/bash.origin sudo ln -s /usr/local/bin/bash /bin/bash

1、配置gsed:

brew install gnu-sed

系统环境变量加入:

alias sed=gsed

2、安装BashSupport插件并配置:
setttings->plugins→下载安装BashSupport
在这里插入图片描述
在这里插入图片描述

3、修改系统默认shell /bin/bash

chsh -s /bin/bash

第七、运行:有两种方式

方式一:以BashSupport插件方式右键运行shell脚本
在这里插入图片描述

方式二:终端方式运行,运行命令:/bin/bash grpcautotestfordic.sh
在这里插入图片描述
备注:命令前面一定以 /bin/bash运行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值