普段からMacを使っているわけではない人間にはつらいものがあった…
macOS: 10.14.4
homebrew-grpc: cf249dd
1. 公式スクリプトが通らない①
原因は詳しくは追っていないが、とりあえず幾つかのキータとかの記事で記載されている通りにやると invalid option などと怒られた。
$ brew tap grpc/grpc <- 通る
$ brew install --with-plugins grpc
Usage: brew install [options] formula
Install formula.
〜略〜
Error: invalid option: --with-plugins
もうちょっと色々出してくれたら対処しようがあるんだが…つらい。
2. 公式スクリプトが通らない②
こういう時は公式に立ち返ろう!ということで公式のインストール手順を見てみると、brewではなくcurlでスクリプトを落として実行できるようだ。やった!
$ curl -fsSL https://goo.gl/getgrpc | bash -s -- --with-plugins
Error: homebrew/dupes was deprecated. This tap is now empty as all its formulae were migrated.
つらい…brewをたまにしか使わない人間からすると、「まずformulaeって何だよ」ってなってしまう。
しかしこのエラーメッセージだと、もう触ってほしくない場所を指して探しに行っているっぽいなということが何となくわかる。
とりあえずGoogle先生にお尋ねしたところ こんな記事があった。homebrew/dupes を homebrew/homebrew-core に置き換えたらうまく行くかも?
$ curl -fsSL https://goo.gl/getgrpc | sed -e 's/homebrew\/dupes/homebrew\/homebrew-core/g' > getgrpc.sh
$ chmod +x getgrpc.sh
./getgrpc.sh --with-plugins
動きだした!はい勝ち!
そう思ってお茶を入れに行って戻ってきたところ…
ChecksumMismatchError(?)
なんか出ていた。つらい。
==> Installing google-protobuf from grpc/grpc
==> Downloading https://github.com/google/protobuf/archive/v3.2.0.tar.gz
==> Downloading from https://codeload.github.com/protocolbuffers/protobuf/tar.gz/v3.2.0
######################################################################## 100.0%
Error: An exception occurred within a child process:
ChecksumMismatchError: SHA256 mismatch
Expected: 2a25c2b71c707c5552ec9afdfb22532a93a339e1ca5d38f163fe4107af08c54c
Actual: a839d3f1519ff9d68ab908de5a0f269650ef1fc501c10f6eefd4cae51d29b86f
Archive: /Users/USERNAME/Library/Caches/Homebrew/downloads/2573e3a57501d43763355c341e6069ca853ef0eaf9abb5f3f275cf257e3a87ea--protobuf-3.2.0.tar.gz
To retry an incomplete download, remove the file above.
えっ 大丈夫なのこれ…
またもGoogle先生にお尋ね。ローカルで保持している値を書き換えれば通るという記事があったものの、それやってしまったらハッシュ確認している意味が…しかし背に腹はかえられぬということで、リスクを覚悟して下記を実施した。
brew edit grpc/grpc/google-protobuf <- エディタで "sha256" の行をActualの値へ変更する
これで再度 ./getgrpc.sh –with-plugins を実行したところ、無事protocがインストールされました。やれやれ。
$ protoc --version
libprotoc 3.2.0