web-dev-qa-db-ja.com

MacでのGoogle Protocol Buffersのインストール

ターミナルコマンドラインを使用して、Macに古いバージョンのGoogle Protocol Buffers(protobuf-2.4.1)をインストールしたいと思います。 brew install protobufで試しましたが、最新バージョン2.5.0がインストールされています。ターミナルから古いバージョンをインストールすることは可能ですか?.

ありがとう

88
informatiker

Macのソースからprotobuf 2.4.1をビルドする場合、いくつかの問題があります。パッチも適用する必要があります。これらはすべて自作のprotobuf241式に含まれているので、使用することをお勧めします。

プロトコルバッファバージョン2.4.1をインストールするには、以下を端末に入力します。

brew tap homebrew/versions
brew install protobuf241

ソースからインストールしようとしたプロトコルバッファーバージョンが既にある場合は、ターミナルに次を入力して、homebrewバージョンでソースコードを上書きできます。

brew link --force --overwrite protobuf241

次のように入力して、正しいバージョンがインストールされていることを確認します。

protoc --version

2.4.1と表示されるはずです

135
John Gilmore

これはbrew経由ではありませんが、最終結果は同じです。

  1. https://protobuf.googlecode.com/files/protobuf-2.4.1.tar.gz からprotobuf-2.4.1をダウンロードします
  2. Tar.gzファイルを抽出します。
  3. $ cd〜/ Downloads/protobuf-2.4.1
  4. $。/ configure
  5. $ make
  6. $ makeチェック
  7. $ Sudo make install
  8. $ protoc
  9. $ protoc --version

手順4〜7は、protobuf tarballのREADME.txtファイルからのものです。

66
kksensei

それは新年であり、Homebrewのprotobufのバージョンと最先端のリリースの間に新しい不一致があります。 2016年2月現在、brew install protobufはバージョン2.6.1を提供します。

代わりに3.0ベータリリースが必要な場合は、次の方法でインストールできます。

brew install --devel protobuf
34
danvk

https://github.com/paulirish/homebrew-versions-1 から。私のために働く!

brew install https://raw.githubusercontent.com/paulirish/homebrew-versions-1/master/protobuf241.rb
12
Van

何らかの理由で、OS X El Capitanのプロジェクトでprotobuf 2.4.1を使用する必要があります。しかし、homebrewはその式からprotobuf241を削除しました。 @kksenseiの回答に従って手動でインストールし、プロセス中にエラーを修正する必要があります。

Makeプロセス中に、次のような3つのエラーが表示されます。

google/protobuf/message.cc:130:60: error: implicit instantiation of undefined template 'std::__1::basic_istream<char, std::__1::char_traits<char> >'

  return ParseFromZeroCopyStream(&zero_copy_input) && input->eof();

                                                           ^

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/iosfwd:108:28: note: template is declared here

    class _LIBCPP_TYPE_VIS basic_istream;

                           ^

google/protobuf/message.cc:135:67: error: implicit instantiation of undefined template 'std::__1::basic_istream<char, std::__1::char_traits<char> >'

  return ParsePartialFromZeroCopyStream(&zero_copy_input) && input->eof();

                                                                  ^

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/iosfwd:108:28: note: template is declared here

    class _LIBCPP_TYPE_VIS basic_istream;

                           ^

google/protobuf/message.cc:175:16: error: implicit instantiation of undefined template 'std::__1::basic_ostream<char, std::__1::char_traits<char> >'

  return output->good();

               ^

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/iosfwd:110:28: note: template is declared here

    class _LIBCPP_TYPE_VIS basic_ostream;

                           ^

(申し訳ありませんが、コードに '`'が含まれている場合にコードを添付する方法はわかりません)

同じエラーが発生する場合は、src/google/protobuf/message.ccを編集し、ファイルの先頭に#include <istream>を追加して、もう一度$ makeを実行してください。エラーは発生しません。その後、$ Sudo make installを実行します。インストールが完了すると、$protoc --versionは正しい結果を表示するはずです。

11
Xiaoqi Chu

私はmacportsを使用しました

Sudo port install protobuf-cpp
7
brew install --devel protobuf

「protobuf-2.6.1 already installed」と表示された場合:1. brew uninstall --devel protobuf 2. brew link libtool 3. brew install --devel protobuf

FWIW。、brewの最新バージョンはprotobuf 3.0であり、古いバージョンの公式は含まれていません。これはやや「不便」です。

Protobufはワイヤレベルでは互換性がありますが、生成されたJavaクラスのレベルではまったく互換性がありません。protoc2.4で生成された.classファイルをprotobuf-2.5 JARなどで使用することはできません。これが、protobufバージョンの更新がHadoopスタックで非常にデリケートなトピックである理由です。異なるプロジェクト間での調整が必ず必要であり、誰もそれを好まないほどのトラウマです。

2
Steve Loughran

このプロセスは単純化され、

brew install protobuf

利用可能なprotobufの最新バージョンをインストールします。私にとって、これを書いている時点で、これはv3.7.1をインストールしました

googleが提供する公式リンクページからインストールできます http://google.github.io/proto-lens/installing-protoc.html

1
Jabongg

プロトコルバッファをインストールするには(現在のバージョンv3.7.0以降)

  1. これに行く ウェブサイト
  2. oSに応じてZipファイルをダウンロードします(例:protoc-3.7.0-osx-x86_64.Zip)。これは他のOSにも適用されます。

  3. Protoc-3/bin/protocの実行可能ファイルをPATH内のいずれかのディレクトリに移動します。 Macでは、/ usr/local/binに置くことをお勧めします

さあ、行くのはいいですか????????

(オプション)インクルードファイルもあり、追加できます。これはREADME.mdのスニペットです

If you intend to use the included well known types then don't forget to
copy the contents of the 'include' directory somewhere as well, for example
into '/usr/local/include/'.

Please refer to our official github site for more installation instructions:
https://github.com/protocolbuffers/protobuf
0
Imran

別のユーザーが述べたように、Googleによる別の公式な方法があります。

試みる前にそれを完全に読んでください。

手順は次のとおりです。

ターミナルを開き、次を入力します

  1. PROTOC_Zip=protoc-3.7.1-osx-x86_64.Zip
  2. curl -OL https://github.com/google/protobuf/releases/download/v3.7.1/$PROTOC_Zip
  3. Sudo unzip -o $PROTOC_Zip -d /usr/local bin/protoc
  4. rm -f $PROTOC_Zip

私のために働いた。

追伸.
これは、osxのバージョン3.7.1専用です。他のバージョン/プラットフォームをインストールする場合は、 releases link にアクセスして、最新バージョンの詳細を確認し、それらの情報を使用してください。 参照

0