NOTE: please update the sonipb in go.mod
Exmpmle: manual extract the code in cmd/gnmi "go get github.com/TeamNocsys/sonicpb@c83e46726b203e2ae2"
- docker pull golang:1.15.13-stretch
- git clone https://github.com/TeamNocsys/gnmi_server
- cd gnmi_server
- docker run -it -v "$PWD":/usr/src/myapp -w /usr/src/myapp golang:1.15.13-stretch bash
- ./build_deb.sh
$ cd cmd/gnmi
$ go build -tags debug当前目录下生成可执行文件gnmi
$ ls
gnmi gnmi.go$ cd cmd/gnmi
$ GOOS=linux go build -tags release
### 支持远程DEBUG
$ GOOS=linux go build --gcflags "all=-N -l" -tags=release
### 制作deb包,交换机需要安装daemonize才能正常运行
### 在Debian主机上执行
### 其中GO指令可以在任意平台执行,然后将gnmi拷贝到build/deb/usr/local/bin,即可注释掉脚本的GO指令
$ sudo apt install -y dh-make dpkg-dev devscripts
$ ./build_deb.sh当前目录下生成可执行文件gnmi
$ ls
gnmi gnmi.go1.将编译好的可执行文件复制到SONiC上
### 1.1 普通二进制安装(用于调试)
$ scp gnmi admin@192.168.200.47:/home/admin
### 1.2 deb包安装
$ scp gnmi.deb admin@192.168.200.47:/home/admin2.运行
### 2.1 普通二进制安装(用于调试,根据实际SSH认证信息修改用户名密码)
### 日志默认路径为/var/log/gnmi_server.log
$ sudo ./gnmi run --address 0.0.0.0 --port 5002 --username admin --password YourPaSsWoRd
### 指定数据库配置文件
$ sudo ./gnmi run --address 0.0.0.0 --port 5002 -v --config /var/run/redis/sonic-db/database_config.json --username admin --password YourPaSsWoRd
### 远程DEBUG模式,注意ROOT用户运行
# dlv --listen=:2345 --headless=true --api-version=2 --accept-multiclient exec ./gnmi -- run --address 0.0.0.0 --port 5002 --path . --username admin --password YourPaSsWoRd
### 2.2 deb包安装(根据实际SSH认证信息修改gnmi.service)
$ sudo dpkg -i gnmi.deb
$ sudo systemctl start gnmi1.执行下面的命令
$ go get github.com/aristanetworks/goarista/cmd/gnmi命令执行完成后在go目录下bin文件夹内生成gnmi可执行文件
2.将$GOPATH/bin添加到系统的PATH中
$ export PATH=$PATH:`go env GOPATH`/bin3.测试
$ gnmi -addr 192.168.200.47:5005 get /sonic-port/port/port-state-list/counters