Ich möchte die ältere Version von Google Protocol Buffers (protobuf-2.4.1) über die Terminal-Befehlszeile auf einem Mac installieren. Ich habe es mit versuchtbrew install protobuf
, aber die neueste Version 2.5.0 wurde installiert. Ist es möglich, die ältere Version vom Terminal aus zu installieren?
Vielen Dank
protocol-buffers
homebrew
Informatiker
quelle
quelle
.pb.h
und.pb.cc
-Dateien neu generieren.Antworten:
Es gibt einige Probleme beim Erstellen von protobuf 2.4.1 aus dem Quellcode auf einem Mac. Es gibt einen Patch, der ebenfalls angewendet werden muss. All dies ist in der Homebrew-Formel protobuf241 enthalten, daher würde ich die Verwendung empfehlen.
Um den Protokollpuffer Version 2.4.1 zu installieren, geben Sie Folgendes in ein Terminal ein:
Wenn Sie bereits eine Protokollpufferversion haben, die Sie aus dem Quellcode installieren wollten, können Sie Folgendes in ein Terminal eingeben, damit der Quellcode von der Homebrew-Version überschrieben wird:
Überprüfen Sie, ob Sie jetzt die richtige Version installiert haben, indem Sie Folgendes eingeben:
Es sollte 2.4.1 anzeigen
quelle
Warning: homebrew/versions was deprecated. This tap is now empty as all its formulae were migrated.
Dies erfolgt nicht über das Brauen, aber das Endergebnis ist das gleiche.
Die Schritte 4 bis 7 stammen aus der Datei README.txt des Protobuf-Tarballs.
quelle
/protobuf/src/README.md
, möchte ich es in der warREADME.md
im/protobuf
VerzeichnisEs ist ein neues Jahr und es gibt eine neue Diskrepanz zwischen der Version von
protobuf
in Homebrew und der neuesten Version. Stand Februar 2016,brew install protobuf
Sie Version 2.6.1.Wenn Sie stattdessen die Beta-Version 3.0 möchten, können Sie sie installieren mit:
quelle
Wenn Sie hier gelandet sind und nach Informationen zur Installation von Protokollpuffern auf einem Mac suchen, können Sie dies mit Homebrew tun, indem Sie den folgenden Befehl ausführen
Es installiert die neueste verfügbare Version von protobuf. Für mich war zum Zeitpunkt des Schreibens die Version 3.7.1 installiert
Wenn Sie eine ältere Version installieren möchten, schlagen Sie die verfügbaren auf der Paketseite Protobuf Package - Homebrew nach und installieren Sie diese spezifische Version des Pakets.
Die älteste verfügbare Protobuf-Version in diesem Paket ist v3.6.1.3
quelle
Von https://github.com/paulirish/homebrew-versions-1 . Funktioniert bei mir!
quelle
Aus irgendeinem Grund muss ich protobuf 2.4.1 in meinem Projekt unter OS X El Capitan verwenden. Homebrew hat jedoch protobuf241 aus seiner Formel entfernt. Ich installiere es manuell gemäß der Antwort von @ kksensei und muss während des Vorgangs einen Fehler beheben.
Während des Erstellungsprozesses erhalte ich 3 Fehler wie folgt:
(Entschuldigung, ich weiß nicht, wie ich Code anhängen soll, wenn der Code '`' enthält.)
Wenn Sie den gleichen Fehler erhalten, bearbeiten Sie bitte src / google / protobuf / message.cc, fügen Sie ihn
#include <istream>
oben in die Datei ein und$ make
wiederholen Sie den Vorgang. Sollte keine Fehler auftreten. Danach tun$ sudo make install
. Nach Abschluss der Installation$protoc --version
sollte das richtige Ergebnis angezeigt werden.quelle
Ich habe Macports benutzt
quelle
Wenn es Ihnen sagt "protobuf-2.6.1 bereits installiert": 1.
brew uninstall --devel protobuf
2.brew link libtool
3.brew install --devel protobuf
quelle
FWIW., Die neueste Version von Brew ist bei protobuf 3.0 und enthält keine Formeln für die älteren Versionen. Dies ist etwas "unpraktisch".
Während Protobuf auf Wire-Ebene kompatibel sein kann, ist es auf der Ebene der generierten Java-Klassen absolut nicht kompatibel: Sie können keine mit Protoc 2.4 generierten .class-Dateien mit der Protobuf-2.5-JAR usw. usw. verwenden. Aus diesem Grund wird aktualisiert Protobuf-Versionen sind ein so heikles Thema im Hadoop-Stack: Sie erfordern ausnahmslos eine Koordination zwischen verschiedenen Projekten und sind traumatisch genug, dass niemand sie gerne macht.
quelle
So installieren Sie den Protokollpuffer (ab heutiger Version v3.7.0)
Laden Sie die Zip-Datei entsprechend Ihrem Betriebssystem herunter (z. B. protoc-3.7.0-osx-x86_64.zip). Dies gilt auch für andere Betriebssysteme.
Verschieben Sie die ausführbare Datei in protoc-3 / bin / protoc in eines Ihrer Verzeichnisse in PATH. Auf dem Mac schlage ich vor, es in / usr / local / bin abzulegen
Jetzt kannst du loslegen 💪🏾
(optional) Es gibt auch eine Include-Datei, die Sie hinzufügen können. Dies ist ein Ausschnitt aus README.md
quelle
Es gibt einen anderen offiziellen Weg von Google, wie von einem anderen Nutzer erwähnt.
Lesen Sie es vollständig durch, bevor Sie es versuchen.
Hier sind die Schritte:
Öffnen Sie das Terminal und geben Sie Folgendes ein
PROTOC_ZIP=protoc-3.7.1-osx-x86_64.zip
curl -OL https://github.com/google/protobuf/releases/download/v3.7.1/$PROTOC_ZIP
sudo unzip -o $PROTOC_ZIP -d /usr/local bin/protoc
rm -f $PROTOC_ZIP
Hat für mich gearbeitet.
PS
Dies ist nur für Version 3.7.1 in OSX. Wenn Sie eine andere Version / Plattform installieren möchten, besuchen Sie den Release-Link, überprüfen Sie die Details der neuesten Version und verwenden Sie diese Informationen. Referenz
quelle
Sie können von der offiziellen Link-Seite installieren, die von Google http://google.github.io/proto-lens/installing-protoc.html bereitgestellt wird
quelle
Für v3 Benutzer.
http://google.github.io/proto-lens/installing-protoc.html
quelle
HomeBrew-Versionen wurden entfernt und Formeln wurden geleert. Daher empfehle ich, es manuell zu installieren, indem Sie die folgenden Schritte ausführen.
Vorerst müssen Sie das Toolset "Protokollpuffer" manuell erstellen und installieren.
Quellcode herunterladen: https://github.com/google/protobuf/releases/download/v2.4.1/protobuf-2.4.1.tar.gz
tar xvfz protobuf-2.4.1.tar.gz
cd protobuf-2.4.1
Lauf
./configure
Bearbeiten Sie src / google / protobuf / message.cc und fügen Sie #include oben in die Datei ein
Führen Sie den
make
Befehl vom Stammverzeichnis des Ordners aus, dh protobuf-2.4.1 /Lauf
sudo make install
Ausführen
/usr/local/bin/protoc --version
, um die Version der Protobuf-Compiler-Version zu überprüfen. Die Terminalausgabe sollte sein:Version: libprotoc 2.4.1
quelle