web-dev-qa-db-fra.com

Installation de Google Protocol Buffers sur mac

J'aimerais installer l'ancienne version de Google Protocol Buffers (protobuf-2.4.1) sur mac à l'aide de la ligne de commande Terminal J'ai essayé avec brew install protobuf, mais la dernière version 2.5.0 a été installée. Est-il possible d'installer l'ancienne version depuis un terminal?.

Merci

83
informatiker

La création de protobuf 2.4.1 à partir de la source sur un Mac pose quelques problèmes. Il y a un patch qui doit aussi être appliqué. Tout cela est contenu dans la formule de l'homebrew protobuf241, je vous conseillerais donc de l'utiliser.

Pour installer la version 2.4.1 du tampon de protocole, tapez ce qui suit dans un terminal:

brew tap homebrew/versions
brew install protobuf241

Si vous avez déjà essayé d'installer une version du tampon de protocole à partir de la source, vous pouvez saisir ce qui suit dans un terminal pour que le code source soit remplacé par la version homebrew:

brew link --force --overwrite protobuf241

Vérifiez que vous avez maintenant la bonne version installée en tapant:

protoc --version

Il devrait afficher 2.4.1

129
John Gilmore

Ce n'est pas par brassage, mais le résultat final est le même.

  1. Téléchargez le protobuf-2.4.1 à partir de https://protobuf.googlecode.com/files/protobuf-2.4.1.tar.gz
  2. Extrayez le fichier tar.gz.
  3. $ cd ~/Téléchargements/protobuf-2.4.1
  4. $./configure
  5. $ make
  6. $ make chèque
  7. $ Sudo make install
  8. $ quel protocole
  9. $ protoc --version

Les étapes 4 à 7 proviennent du fichier README.txt de l'archive protobuf.

64
kksensei

C'est une nouvelle année et il y a un nouveau décalage entre la version de protobuf dans Homebrew et la version tranchante. À partir de février 2016, brew install protobuf vous donnera la version 2.6.1.

Si vous souhaitez plutôt la version 3.0 bêta, vous pouvez l'installer avec:

brew install --devel protobuf
34
danvk

De https://github.com/paulirish/homebrew-versions-1 . Travaille pour moi!

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

Pour une raison quelconque, je dois utiliser protobuf 2.4.1 dans mon projet sur OS X El Capitan. Cependant, l'homebrew a supprimé le protobuf241 de sa formule. Je l'installe en fonction de la réponse de @ kksensei manuellement et je dois corriger une erreur pendant le processus. 

Pendant le processus de création, j'obtiens 3 erreurs comme suit:

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;

                           ^

(Désolé, je ne sais pas comment attacher un code quand le code contient '' ')

Si vous obtenez la même erreur, modifiez src/google/protobuf/message.cc, ajoutez #include <istream> en haut du fichier, puis relancez $ make et ne recevez aucune erreur. Après cela, faites $ Sudo make install. Une fois l'installation terminée, $protoc --version devrait afficher le résultat correct.

10
Xiaoqi Chu

J'ai utilisé macports

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

Si cela vous indique "protobuf-2.6.1 déjà installé": 1. brew uninstall --devel protobuf 2. brew link libtool 3. brew install --devel protobuf

FWIW., La dernière version de brasser est à protobuf 3.0, et n'inclut aucune formule pour les versions plus anciennes. C'est un peu "gênant".

Alors que protobuf peut être compatible au niveau du câblage, il n’est absolument pas compatible au niveau des classes Java générées: vous ne pouvez pas utiliser de fichiers .class générés avec le protocole 2.4 avec le fichier JOB protobuf-2.5, etc. C'est pourquoi la mise à jour Les versions de protobuf sont un sujet tellement sensible dans la pile Hadoop: elles nécessitent invariablement une coordination entre différents projets et sont suffisamment traumatisantes pour que personne n’aime le faire.

2
Steve Loughran

Ce processus a été simplifié pour simplement

brew install protobuf

Il installe la dernière version de protobuf disponible. Pour moi, au moment de l'écriture, cela a installé le v3.7.1

Pour installer le tampon de protocole (à partir de la version v3.7.0 actuelle)

  1. Aller à ce site web
  2. téléchargez le fichier Zip en fonction de votre système d’exploitation (par exemple: protoc-3.7.0-osx-x86_64.Zip). Cela s'applique également à d'autres systèmes d'exploitation.

  3. Déplacez l'exécutable de protoc-3/bin/protoc vers l'un de vos répertoires dans PATH. Sous Mac, je suggère de le mettre dans/usr/local/bin

Maintenant, votre bon pour aller ????????

(facultatif) Il existe également un fichier d'inclusion que vous pouvez ajouter. Ceci est un extrait du fichier 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

vous pouvez installer depuis la page de liens officielle fournie par google http://google.github.io/proto-lens/installing-protoc.html

0
Jabongg

Il existe un autre moyen officiel de Google, mentionné par un autre utilisateur.

Lisez-le complètement avant d'essayer.

Voici les étapes:

Ouvrez Terminal et tapez ce qui suit

  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

Travaillé pour moi.

P.S.
Ceci concerne uniquement la version 3.7.1 dans osx. Si vous souhaitez installer une autre version/plate-forme, visitez le lien releases release et consultez les détails de la dernière version, puis utilisez ces informations. Référence

0