मैक पर Google प्रोटोकॉल बफ़र स्थापित कर रहा है


101

मैं टर्मिनल कमांड लाइन का उपयोग करके मैक पर Google प्रोटोकॉल बफ़र्स (प्रोटोबॉफ़-2.4.1) के पुराने संस्करण को स्थापित करना चाहूंगा। मैंने कोशिश की brew install protobuf, लेकिन नवीनतम संस्करण 2.5.0 स्थापित किया गया है। क्या टर्मिनल से पुराने संस्करण को स्थापित करना संभव है।

धन्यवाद


2
आप एक पुराना संस्करण क्यों चाहते हैं? वे पीछे-संगत हैं, जब तक आप फ़ाइलों .pb.hऔर .pb.ccफ़ाइलों को पुन: उत्पन्न करते हैं ।
केंटन वर्दा

मैंने सोचा कि मैं पुराने संस्करण का बेहतर उपयोग करता हूं क्योंकि परियोजना 2.4.1 के साथ बनाई गई थी। लेकिन जैसा कि आपने कहा कि मैंने दो फाइलों को फिर से हासिल कर लिया है और यह ठीक काम करती है। धन्यवाद।
informatiker

4
और सामान्य तौर पर, यहां एक सूत्र के विशिष्ट संस्करण को कैसे स्थापित किया जाए
डुवराई

जवाबों:


146

मैक पर स्रोत से प्रोटोबुफ 2.4.1 के निर्माण के साथ कुछ समस्याएं हैं। एक पैच है जिसे भी लागू करना होगा। यह सब homebrew protobuf241 सूत्र के भीतर निहित है, इसलिए मैं इसका उपयोग करने की सलाह दूंगा।

प्रोटोकॉल बफर संस्करण को स्थापित करने के लिए 2.4.1 निम्नलिखित को टर्मिनल में टाइप करें:

brew tap homebrew/versions
brew install protobuf241

यदि आपके पास पहले से ही एक प्रोटोकॉल बफ़र संस्करण है जिसे आपने स्रोत से स्थापित करने का प्रयास किया है, तो आप होमबॉव संस्करण द्वारा अधिलेखित स्रोत कोड को टर्मिनल में टाइप कर सकते हैं:

brew link --force --overwrite protobuf241

जांचें कि आपके पास अब टाइप करके सही संस्करण स्थापित है:

protoc --version

इसे 2.4.1 प्रदर्शित करना चाहिए


2
हे मैं यह कोशिश की, प्रोटो - हॉवर्सन पर हॉइवर - मैं मिलता हूं - प्रोटॉक: कमांड नहीं मिला
ramin

संस्करण 2.4.1 "/usr/local/Cellar/protobuf241/2.4.1" पर स्थापित है, आपको बस "../2.4.1/protoc" का सिंबल बनाना चाहिए और इसे "usb / स्थानीय / बिन" में रखना चाहिए। "। "प्रोटोकास्ट" की तुलना में कोशिश करें और ठीक उसी तरह काम करना चाहिए जैसे यह होना चाहिए।
ग्युरि मजरसिक

4
यह नल किसी भी अधिक उपलब्ध नहीं है
मिहाई टोडर

22
अब काम नहीं कर रहा है। मुझे मिलता हैWarning: homebrew/versions was deprecated. This tap is now empty as all its formulae were migrated.
शिह-मिन ली

1
यह कोर में माइग्रेट हो गया था, इसके बजाय इसका उपयोग करें: काढ़ा नल homebrew / homebrew-core
Huy Hóm H atnh

70

यह काढ़ा के माध्यम से नहीं है, लेकिन अंतिम परिणाम समान है।

  1. प्रोट्रूफ़-2.4 को https://protobuf.googlecode.com/files/protobuf-2.4.1.t.t.zz से डाउनलोड करें
  2. Tar.gz फ़ाइल को निकालें।
  3. $ cd ~ / डाउनलोड / protobuf-2.4.1
  4. $। / कॉन्फ़िगर
  5. $ मेकअप
  6. $ चेक बनाते हैं
  7. $ सुडो मेक इनस्टॉल
  8. $ जो प्रोटोकास्ट
  9. $ प्रोटोकास्ट --version

स्टेप 4-7 प्रोटोबॉफ टारबॉल से README.txt फाइल से हैं।


2
मैंने काढ़ा दृष्टिकोण की कोशिश की, लेकिन ऊपर दिए चरणों की सटीक सूची का उपयोग करके सूत्रों से प्रोटोबुफ़ (अब 2.6.0) के नवीनतम संस्करण के लिए आसानी से संकलित करता है। यह तब और भी उपयोगी हो जाता है जब मानक प्रोटो डेफिशिएंसी को बढ़ाने की कोशिश की जाती है (जैसे, डिस्क्रिप्टर.प्रोटो का विस्तार करके फ़ील्ड विकल्प जोड़ना) जैसा कि आपको मूल स्रोतों की आवश्यकता है या अन्यथा स्थापना के घर-काढ़ा संस्करण में सेलर पथ का उल्लेख करना चाहिए (बदसूरत?) ।
नेक्रो

2
मेक कमांड चलाने पर मैं त्रुटियों के साथ समाप्त हो गया: 3 त्रुटियां उत्पन्न हुईं। Make [2]: *** [message.lo] त्रुटि 1 बनाते हैं [1]: *** [सभी-पुनरावर्ती] त्रुटि 1 बनाते हैं: *** [all] त्रुटि 2
Anandaraja_Srinivasan

यह वह उपाय है जो मेरे लिए काम करता है। लेकिन बनाने के दौरान त्रुटियों का सामना करते समय जिओयूकी चू का उत्तर देखें।
अमुधन

चरणों 4-7 पर हैं /protobuf/src/README.md, मैं चाहता हूँ यह था README.mdमें /protobufनिर्देशिका
केविन झाओ

4
यह मेरे लिए एकमात्र बदलाव है कि आपको github.com/google/protobuf/releases
r00tt

34

यह एक नया साल है और होमब्रेव के संस्करण protobufऔर अत्याधुनिक रिलीज के बीच एक नया बेमेल है । फरवरी 2016 तक, brew install protobufआपको 2.6.1 संस्करण दिया जाएगा।

यदि आप इसके बजाय 3.0 बीटा रिलीज़ चाहते हैं, तो आप इसे स्थापित कर सकते हैं:

brew install --devel protobuf

17

यदि आप मैक पर प्रोटोकॉल बफ़र स्थापित करने के तरीके की तलाश में यहां उतरे हैं, तो यह नीचे कमांड चलाकर होमब्रे का उपयोग करके किया जा सकता है

brew install protobuf

यह उपलब्ध प्रोटोबुफ़ के नवीनतम संस्करण को स्थापित करता है। मेरे लिए, लेखन के समय, इसने v3.7.1 स्थापित किया

यदि आप एक पुराने संस्करण को स्थापित करना चाहते हैं, तो कृपया पैकेज पेज प्रोटोबॉफ पैकेज - होमब्रे से उपलब्ध लोगों को देखें और पैकेज के उस विशिष्ट संस्करण को स्थापित करें।

इस पैकेज में सबसे पुराना उपलब्ध प्रोटोबॉफ़ संस्करण v3.6.1.3 है


1
लेकिन ओपी विशेष रूप से पुराने संस्करण को स्थापित करने के लिए कहता है।
हिमांशु तंवर

13

से https://github.com/paulirish/homebrew-versions-1 । मेरे लिये कार्य करता है!

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

आपने मेरा दिन बचाया। आपका बहुत बहुत धन्यवाद!
दीपंकर सरकार

ध्यान दें, अज्ञात स्रोतों से इंस्टॉल करते समय हमेशा फ़ार्मुलों के माध्यम से स्कैन करने की सिफारिश की जाती है। मैंने ऐसा किया, यह सुरक्षित था।
अगस्टोन होर्वाथ

12

किसी कारण से मुझे OS X El Capitan पर अपनी परियोजना में प्रोटोबॉफ़ 2.4.1 का उपयोग करने की आवश्यकता है। हालाँकि homebrew ने अपने फार्मूले से protobuf241 को हटा दिया है। मैं इसे मैन्युअल रूप से @ kksensei के उत्तर के अनुसार स्थापित करता हूं और प्रक्रिया के दौरान कुछ त्रुटि को ठीक करना पड़ता है।

बनाने की प्रक्रिया के दौरान, मुझे निम्नलिखित 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जाए तो सही परिणाम प्रदर्शित करना चाहिए।



6
brew install --devel protobuf

यदि यह आपको बताता है "प्रोटोबॉफ-2.6.1 पहले से ही स्थापित है": 1. brew uninstall --devel protobuf 2. brew link libtool 3।brew install --devel protobuf


2

FWIW।, काढ़ा का नवीनतम संस्करण प्रोटोबॉफ 3.0 पर है, और पुराने संस्करणों के लिए कोई सूत्र शामिल नहीं करता है। यह कुछ हद तक "असुविधाजनक" है।

जबकि प्रोटोबॉफ़ तार स्तर पर संगत हो सकता है, यह उत्पन्न जावा कक्षाओं के स्तर पर बिल्कुल संगत नहीं है: आप प्रोटोक्यूफ़ 2.5 JAR, आदि के साथ प्रोटोक 2.4 के साथ उत्पन्न .class फ़ाइलों का उपयोग नहीं कर सकते हैं। यही कारण है कि अद्यतन कर रहा है प्रोटोबुफ़ संस्करण हडोप स्टैक में इस तरह का एक संवेदनशील विषय है: इसे हमेशा विभिन्न परियोजनाओं में समन्वय की आवश्यकता होती है, और इतना दर्दनाक होता है कि कोई भी इसे करना पसंद नहीं करता है।


2

प्रोटोकॉल बफर स्थापित करने के लिए (आज के संस्करण v3.7.0 के रूप में)

  1. इस वेबसाइट पर जाएं
  2. अपने OS के अनुसार ज़िप फ़ाइल डाउनलोड करें (जैसे: protoc-3.7.0-osx-x86_64.zip)। यह अन्य OS पर भी लागू होता है।

  3. PATH में अपनी किसी एक निर्देशिका में प्रोटोक -3 / बिन / प्रोटोक में निष्पादन योग्य को स्थानांतरित करें। मैक में मैं इसे / usr / लोकल / बिन में डालने का सुझाव देता हूं

अब आपका 💪🏾 जाना अच्छा है

(वैकल्पिक) इसमें एक शामिल फ़ाइल भी है, आप जोड़ सकते हैं। यह 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

2

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

मेरे लिए काम किया।

PS
यह केवल ओएसएक्स में संस्करण 3.7.1 के लिए है। यदि आप कुछ अन्य संस्करण / प्लेटफ़ॉर्म स्थापित करना चाहते हैं, तो रिलीज़ लिंक पर जाएं और नवीनतम संस्करण के विवरण देखें, और उन सूचनाओं का उपयोग करें। संदर्भ


1
अच्छा और सरल। धन्यवाद! : टाडा:
रॉडरिगो-सिल्वेरा



0

HomeBrew संस्करण हटा दिए गए हैं और सूत्र खाली कर दिए गए हैं। इसलिए, मेरी सलाह है कि निम्नलिखित चरणों का पालन करके इसे मैन्युअल रूप से इंस्टॉल करें।

समय के लिए आपको मैन्युअल रूप से प्रोटोकॉल बफ़र्स टूलसेट बनाने और स्थापित करने की आवश्यकता होगी।

  1. स्रोत कोड डाउनलोड करें : https://github.com/google/protobuf/releases/download/v2.4.1/protobuf-2.4.1.tar.gz

  2. tar xvfz protobuf-2.4.1.tar.gz

  3. cd protobuf-2.4.1

  4. Daud ./configure

  5. संपादित करें src / google / protobuf / message.cc, फ़ाइल के शीर्ष पर #include जोड़ें

  6. makeफ़ोल्डर के रूट से कमांड चलाएँ , अर्थात प्रोटोबुफ़-2.4.1 /

  7. Daud sudo make install

  8. /usr/local/bin/protoc --versionप्रोटोबुफ़ संकलक संस्करण के संस्करण की जांच करने के लिए चलाएँ टर्मिनल आउटपुट होना चाहिए:

    Version: libprotoc 2.4.1

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.