前書き
死ぬほど苦戦しました。
protobufの入れ方が幾つかあるのですが、上手くいかないものが沢山あり、ようやくインストールする方法が見つかりました。
前提
- go version go1.13.8 linux/amd64
- NAME="Ubuntu"
VERSION="20.04.2 LTS (Focal Fossa)"
protobuf
sudo apt install protobuf-compiler
だとバージョンが古すぎてAPIv2が使えません。
公式のリポジトリからコードを引っ張ってきてインストールすることになります。
sudo apt install autoconf automake libtool curl make g++ unzip -y
git clone https://github.com/google/protobuf.git
cd protobuf
git submodule update --init --recursive
./autogen.sh
configure
make
make check
sudo make install
sudo ldconfig
引用 [Ubuntu 20.04に最新のProtobufをインストールする](https://qiita.com/reoring/items/0b9b6ce0623a4d8266f0)
`make`や`make check`等は劇遅です。
環境によっては1時間ほどかかるかも。
ターミナルを一度再起動して
```bash
protoc --version
で最新バージョンになっていればOKです。
Goのライブラリ
go install google.golang.org/grpc
go install github.com/golang/protobuf/protoc-gen-go
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc
PAHTが通っていないのであれば
protoc-gen-go-grpc: program not found or is not executable
Please specify a program using absolute path or make sure the program is available in your PATH system variable
このようなエラーが出る場合はPATHが通っていないので
~/.bashrc
を開くor作成して
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
を追記
以上
後は任意のprotoに対してprotocコマンドを実行。
以上で生成できました。