Mac'e Terminal komut satırını kullanarak Google Protokol Tamponlarının (protobuf-2.4.1) eski sürümünü yüklemek istiyorum. Denedim brew install protobuf
, ancak en son sürüm 2.5.0 yüklendi. Eski sürümü terminalden kurmak mümkün mü?
Teşekkürler
Mac'e Terminal komut satırını kullanarak Google Protokol Tamponlarının (protobuf-2.4.1) eski sürümünü yüklemek istiyorum. Denedim brew install protobuf
, ancak en son sürüm 2.5.0 yüklendi. Eski sürümü terminalden kurmak mümkün mü?
Teşekkürler
Yanıtlar:
Mac'te kaynaktan protobuf 2.4.1 oluşturmada bazı sorunlar vardır. Ayrıca uygulanması gereken bir yama var. Bütün bunlar homebrew protobuf241 formülünde bulunur, bu yüzden onu kullanmanızı tavsiye ederim.
Protokol arabelleği sürüm 2.4.1'i kurmak için aşağıdakileri bir terminale yazın:
brew tap homebrew/versions
brew install protobuf241
Kaynaktan yüklemeye çalıştığınız bir protokol arabellek sürümüne zaten sahipseniz, homebrew sürümünün kaynak kodunun üzerine yazılmasını sağlamak için aşağıdakileri bir terminale yazabilirsiniz:
brew link --force --overwrite protobuf241
Şimdi yazarak doğru sürümün kurulu olup olmadığını kontrol edin:
protoc --version
2.4.1 göstermelidir
Warning: homebrew/versions was deprecated. This tap is now empty as all its formulae were migrated.
Bu, demleme yoluyla değil, ancak sonuç aynı.
4-7. Adımlar protobuf tarball'daki README.txt dosyasındandır.
/protobuf/src/README.md
, bunu olsaydı README.md
içinde /protobuf
dizinde
Buraya Mac'te Protokol Arabelleklerini nasıl kuracağınızı ararken, aşağıdaki komutu çalıştırarak Homebrew kullanılarak yapılabilir.
brew install protobuf
Mevcut protobuf'un en son sürümünü yükler. Benim için, yazarken v3.7.1'i yükledi
Daha eski bir sürümü yüklemek istiyorsanız, lütfen Protobuf Paketi - Homebrew paket sayfasından mevcut olanlara bakın ve paketin bu belirli sürümünü kurun.
Bu paketteki en eski protobuf sürümü v3.6.1.3'tür.
Gönderen https://github.com/paulirish/homebrew-versions-1 . Benim için çalışıyor!
brew install https://raw.githubusercontent.com/paulirish/homebrew-versions-1/master/protobuf241.rb
Her nedense OS X El Capitan'daki projemde protobuf 2.4.1 kullanmam gerekiyor. Ancak homebrew, protobuf241'i formülünden çıkardı. @ Kksensei'nin cevabına göre manuel olarak kuruyorum ve işlem sırasında bazı hataları düzeltmem gerekiyor.
Yapma işlemi sırasında aşağıdaki gibi 3 hata alıyorum:
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;
^
(Maalesef kod '' 'içerdiğinde kodu nasıl ekleyeceğimi bilmiyorum)
Aynı hatayı alırsanız, lütfen src / google / protobuf / message.cc #include <istream>
dosyasını düzenleyin, dosyanın en üstüne ekleyin ve $ make
tekrar yapın ve hata almayın. Bundan sonra yapın $ sudo make install
. Kurulum bittiğinde $protoc --version
doğru sonucu göstermelidir.
Macports kullandım
sudo port install protobuf-cpp
brew install --devel protobuf
Size "protobuf-2.6.1 zaten kurulu" diyorsa: 1. brew uninstall --devel protobuf
2. brew link libtool
3.brew install --devel protobuf
FWIW., Brew'ın en son sürümü protobuf 3.0'dadır ve eski sürümler için herhangi bir formül içermez. Bu biraz "sakıncalıdır".
Protobuf kablo seviyesinde uyumlu olsa da, üretilen java sınıfları seviyesinde kesinlikle uyumlu değildir: protobuf-2.5 JAR ile protoc 2.4 ile oluşturulan .class dosyalarını kullanamazsınız, vb. Bu nedenle güncelleme protobuf sürümleri, Hadoop yığınında çok hassas bir konudur: her zaman farklı projeler arasında koordinasyon gerektirir ve kimsenin bunu yapmaktan hoşlanmayacağı kadar travmatiktir.
zip dosyasını işletim sisteminize göre indirin (örneğin: protoc-3.7.0-osx-x86_64.zip). Bu, diğer işletim sistemleri için de geçerlidir.
Protoc-3 / bin / protoc içindeki yürütülebilir dosyayı PATH içindeki dizinlerinden birine taşıyın. Mac'te / usr / local / bin içine koymanızı öneririm
(isteğe bağlı) Ekleyebileceğiniz bir içerme dosyası da vardır. Bu, README.md'nin bir pasajıdır.
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
Başka bir kullanıcının bahsettiği gibi Google'ın başka bir resmi yolu var.
Denemeden önce tamamını okuyun.
İşte adımlar:
Terminal'i açın ve aşağıdakileri yazın
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
Benim için çalıştı.
PS
Bu, yalnızca osx'teki 3.7.1 sürümü içindir. Başka bir sürüm / platform yüklemek istiyorsanız, sürümler bağlantısını ziyaret edin ve en son sürümün ayrıntılarına göz atın ve bu bilgileri kullanın.
Referans
google http://google.github.io/proto-lens/installing-protoc.html tarafından sağlanan resmi bağlantı sayfasından yükleyebilirsiniz.
V3 kullanıcıları için.
http://google.github.io/proto-lens/installing-protoc.html
PROTOC_ZIP=protoc-3.7.1-osx-x86_64.zip
curl -OL https://github.com/protocolbuffers/protobuf/releases/download/v3.7.1/$PROTOC_ZIP
sudo unzip -o $PROTOC_ZIP -d /usr/local bin/protoc
sudo unzip -o $PROTOC_ZIP -d /usr/local 'include/*'
rm -f $PROTOC_ZIP
HomeBrew sürümleri kaldırıldı ve formüller boşaltıldı. Bu nedenle, tavsiyem aşağıdaki adımları izleyerek manuel olarak kurmanızdır.
Şu an için Protokol Tamponları araç setini manuel olarak oluşturmanız ve kurmanız gerekecektir.
Kaynak kodunu indirin: 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
Çalıştırmak ./configure
Src / google / protobuf / message.cc dosyasını düzenleyin, dosyanın en üstüne #include ekleyin
make
Komut dosyasını klasörün kökünden çalıştırın , yani protobuf-2.4.1 /
Çalıştırmak sudo make install
/usr/local/bin/protoc --version
Protobuf derleyici sürümünün sürümünü kontrol etmek için çalıştırın Terminal çıktısı şöyle olmalıdır:
Version: libprotoc 2.4.1
.pb.h
Ve.pb.cc
dosyalarını yeniden oluşturduğunuz sürece geriye doğru uyumludurlar .