OS X 10.9 पर रूबी की उपेक्षा करें क्योंकि एक्सटेंशन नहीं बने हैं


36

हर कुछ दिन ऐसा होगा जब रूबी सीएलआई में विभिन्न चीजें करते हैं (विशेष रूप से, knifeशेफ के लिए उपयोगिता का उपयोग करते हुए ) ओएस एक्स पर (अन्य वातावरणों में दोहराने में असमर्थ; लिनक्स, फ्रीबीएसडी, आदि)।

Ignoring bcrypt-3.1.7 because its extensions are not built.  Try: gem pristine bcrypt-3.1.7
Ignoring bigdecimal-1.2.5 because its extensions are not built.  Try: gem pristine bigdecimal-1.2.5
Ignoring ffi-yajl-1.1.0 because its extensions are not built.  Try: gem pristine ffi-yajl-1.1.0
Ignoring gem-wrappers-1.2.5 because its extensions are not built.  Try: gem pristine gem-wrappers-1.2.5
Ignoring gem-wrappers-1.2.4 because its extensions are not built.  Try: gem pristine gem-wrappers-1.2.4
Ignoring pg-0.17.1 because its extensions are not built.  Try: gem pristine pg-0.17.1
Ignoring psych-2.0.6 because its extensions are not built.  Try: gem pristine psych-2.0.6
Ignoring sqlite3-1.3.9 because its extensions are not built.  Try: gem pristine sqlite3-1.3.9

और जबकि यह एक साधारण फिक्स है, यह होता रहता है। क्या किसी ने पहले इसका सामना किया है?

$ ruby -v
ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-darwin11.2.0]

जवाबों:


5

मैं हाल ही में से स्विच करने rvmके लिए chrubyऔर भाग गया gem update --system, thats जब मुद्दा मेरे लिए होने वाली शुरू कर दिया। उसके बाद, कभी भी मैं भाग गया बंडल मैं एक ही चेतावनी के साथ मारे गए थे। अभी भी निश्चित नहीं है कि इस मुद्दे का कारण क्या है।

Ignoring curb-0.8.6 because its extensions are not built. Try: gem pristine curb-0.8.6

निश्चित नहीं है कि इसे क्या तय किया गया था, लेकिन मैंने 2 चीजें कीं और चेतावनी गायब हो गई:

gem uninstall bundler
gem install bundler

gem install curb

अजीब तरह से पर्याप्त है, यह मेरे लिए शुरू हुआ जब मैंने ओएस एक्स-बंडल वाले रूबी से आरवीएम पर स्विच किया। आम तौर पर, यह कुछ दिनों के बाद या यदि मैं एक नया सत्र खोलता हूं (जो दोपहर होने पर परेशानी का एक प्रकार है) को साफ करता है। मुझे आमतौर पर एक निश्चित समय पर जो कुछ भी मैं उपयोग कर रहा हूं उसे पुन: स्थापित करना है, और यह आमतौर पर चाकू है।
tony_perkis666

यह मेरी मशीन पर दर्जनों रत्नों के लिए हो रहा था। मुझे लगता है कि उन्हें बस पुनर्निर्माण करना था
lfender6445

खुद के लिए, मुझे प्रत्येक रत्न को अनइंस्टॉल करना पड़ा, जिसके लिए वह चेतावनी दे रहा था और फिर से पुन: स्थापित करेंbundle install
नूह Passalacqua

"मुझे कत्ल कर दिया गया" - वाह।
बी सेवन

मैं जो भी कोशिश करता हूं You don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory, मुझे वे मुद्दे अपने आप ही शुरू हो जाते हैं, मैं उन सभी के लिए माणिक का उपयोग भी नहीं कर रहा हूं जिन्हें मैं जानता हूं। लेकिन clocale-0.0.3जब भी मैं एक नया शेल शुरू करता हूं , तो मेरे द्वारा बनाए गए एक्सटेंशन के बारे में त्रुटियां हो जाती हैं
वाडोरक्वेस्ट

62

मेरे मामले में मैं स्थापित करने के बाद इस त्रुटियों को देखना शुरू करता हूं rvm

मैं इस तरह की समस्या का समाधान करता हूं: gem pristine --all


क्या एक उपयोगी कमांड
lfender6445

2
यह काम किया ... लेकिन मुझे पता नहीं क्यों
हुब्रो

1
बंडल की स्थापना रद्द करने और स्थापित करने से काम नहीं चला। लेकिन यह एक काम किया! धन्यवाद!
श्रीकांत जीव

3
यह स्वीकृत उत्तर होना चाहिए था।
ILikeTurtles

19

यह समस्या तब होती है, अगर वर्तमान में चल रहे एक अलग लिब्रुबी के खिलाफ एक मणि संकलित किया गया था। उदाहरण के लिए, यदि कोई क्रब के साथ अपने घर की निर्देशिका में स्थित माणिक का उपयोग करता है और ~ / .gem / रूबी के लिए रत्न स्थापित करता है, लेकिन एक स्क्रिप्ट चलाता है जो कॉल करता है / usr / बिन / रूबी, जो वहां स्थापित रत्नों का पुन: उपयोग करता है। इस मामले में gem pristine --allमदद नहीं करेगा, क्योंकि रत्नों को केवल एक रूबी संस्करण के खिलाफ जोड़ा जा सकता है।


अहह धन्यवाद! "रेल्स एस" को चलाते समय मुझे वह त्रुटि मिल रही थी। मैंने "बंडल एग्ज़िक रेल्स s" स्विच किया और समस्या गायब हो गई।
गेरी

1
इसका स्वीकृत उत्तर होना चाहिए
डोमिनिक श्रेइबर

1
यह उत्तर सही है। यदि समस्या रेल रिपॉजिटरी में होती है vendor/bundle, जहां रत्नों को बचाया जाता है , तो बस उन्हें हटा दें rm -rf vendor/bundleऔर उनके साथ पुन: स्थापित करें bundle install
विमीकेट

धन्यवाद। मैंने gem pristine --allतब तक कोशिश की जब तक मैं चेहरे पर नीली थी और अब मुझे पता है कि यह काम क्यों नहीं किया ...
जीडीपी 2


2

इसने मेरे लिए मैकओस सिएरा पर काम किया:

xcode-select --install
gem install nokogiri

मैंने ऊपर दिए गए आदेशों को चलाने के लिए पहले से ही पूरा xcode स्थापित कर लिया था, लेकिन मुझे यह वैसे भी करना था, शायद इसलिए कि पहली स्क्रिप्ट कुछ आंतरिक पुस्तकालयों / निर्भरताओं को अपडेट करती है।


यह वही है जो मैं मैकओएस सिएरा समाधान की तलाश में था। धन्यवाद
Sakares

1

सुनिश्चित करें कि आप माणिक के सही संस्करण के लिए "मणि प्रिस्टाइन --all" चला रहे हैं। यदि / usr / bin / माणिक को बुलाया जा रहा है ... "/ usr / bin / gem pristine --all" का उपयोग करें। यह स्पष्ट नहीं है यदि आप rvm का उपयोग कर रहे हैं और आपके पास माणिक के 10 संस्करण स्थापित हैं।

इससे मेरी समस्या एक दिन के लिए ठीक हो गई और फिर वापस आ गई।

ऐसा लगता है कि एक अधिक स्थायी समाधान "rvm रीसेट" करना है ताकि डिफ़ॉल्ट माणिक स्थापित OSX संस्करण / usr / bin / ruby ​​और / usr / bin / gem हो। अगर मैं किसी प्रोजेक्ट के लिए रूबी के नए संस्करण का उपयोग करना चाहता हूं, जो मैं उपयोग करता हूं। आदर्श नहीं ... लेकिन यह इस त्रुटि को दूर करना चाहिए।



0

मैं रेल के लिए बहुत नया हूं, इसलिए यह पूरी तरह से गलत सलाह हो सकती है, लेकिन चूंकि मेरे लिए कोई अन्य समाधान काम नहीं करता है, इसलिए मुझे लगा कि मैं अपना हिस्सा दूंगा।

Mic92 और Gerry ने मुझे सही रास्ते पर रखा: मैं उपयोग कर रहा था rails sजो त्रुटियों का कारण बन सकता है क्योंकि यह एक रेल संस्करण चलाता है जो परियोजना की तुलना में एक अलग संस्करण हो सकता है।

मैंने साथ जुड़ने की कोशिश की bin/rails server, मुझे एक अलग त्रुटि (लापता रत्न) मिली तो मैं भाग गयाbundle install

इस बिंदु पर मुझे एक तीसरी त्रुटि मिली ("असंगत लाइब्रेरी संस्करण"), जो spring stopठीक हो गया।

फिर मैं rails generate controllerफिर से भागा , वसंत फिर से शुरू हुआ और सब कुछ काम किया (मैं थोड़ा रोया)।

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