बंडल JSON मणि क्यों स्थापित नहीं करेगा?


82

मुझे चलाने के लिए प्रयास करते समय निम्न त्रुटि मिलती है cap production deploy

DEBUG [dc362284]    Bundler::GemNotFound: Could not find json-1.8.1.gem for installation
DEBUG [dc362284]    An error occurred while installing json (1.8.1), and Bundler cannot continue.
DEBUG [dc362284]    Make sure that `gem install json -v '1.8.1'` succeeds before bundling.

यह नोट करना महत्वपूर्ण हो सकता है कि यह तैनाती काम कर रही थी, क्योंकि मैंने एन्कोडिंग त्रुटि को हटाने के लिए रूबी 2.1.0 में अपग्रेड किया था। मैंने स्थानीय स्तर पर अपग्रेड किया जिसने ठीक काम किया। मैं भाग गया rvm install 2.1.0और rvm use 2.1.0फिर .ruby-versionइस रूबी उन्नयन को प्रतिबिंबित करने के लिए अपनी फ़ाइल बदल दी ।

bundle installआदेश स्थानीय स्तर पर काम करता है, लेकिन एक ही उपरोक्त त्रुटि पैदा करता है जब मैं गंतव्य सर्वर पर SSH और इस आदेश को चलाते हैं।

अगर मैं दौड़ता gem listहूं तो मैं इसे रत्नों की सूची में देख सकता हूं।

...
jquery-rails (3.0.4)
json (1.8.1)
less (2.3.2)
...

यदि मैं अनुशंसित समाधान को gem install json -v '1.8.1'स्थानीय रूप से और गंतव्य सर्वर पर कोशिश करता हूं तो मुझे निम्न आउटपुट प्राप्त होता है:

Building native extensions.  This could take a while...
Successfully installed json-1.8.1
Parsing documentation for json-1.8.1
Done installing documentation for json after 0 seconds
1 gem installed

तो ऐसा लगता है कि मणि स्थापित है, है ना? ये क्यों हो रहा है? इसे कैसे हल किया जा सकता है? किसी भी तरह की सहायता का स्वागत किया जाएगा।


आपको क्या bundle show jsonदेता है?
user2503775

gem json, '1.8.1'Gemfile में जोड़ें
user2503775

मेरे पास मणि जसन है, मेरे मणिभ में '1.8.1' दुर्भाग्य से
थॉमस

बंडल शो जोंस दे / यूजर्स/ME/.rvm/rubies/ruby
थॉमस

6
मुझे sudo apt-get install ruby-devअपने उबंटू की जरूरत थी ।
e9t

जवाबों:


74
$ bundle update json
$ bundle install

2
यह मेरे लिए रूबी 2.4.0 पर किया था!
विंडमिल

राबिन रूबी 2.4.1 के लिए भी काम करता है (डेबियन / ubuntu)
अलेक्सी डेरागिन

यह मेरे लिए भी काम किया। रूबी 2.4.0 उच्च सिएरा। धन्यवाद!
18-22 को रॉबर्ट_T_Taylor

रूबी संस्करण २.४.२ पी १ ९ ed के तहत भी मेरे लिए काम किया। धन्यवाद।
फतहुरुन

मैंने इस उत्तर को गलत ठहराया क्योंकि यह मेरे लिए काम करता था जबकि स्वीकृत उत्तर नहीं था। @Robert_T_Taylor की तरह, मैंने macOS High Sierra पर इसे चलाया।
स्कॉट लॉरेंस

68

तो इस पर एक आधे दिन के बाद और लगभग अपने सवाल पोस्ट करने के तुरंत बाद मुझे जवाब मिल गया। बुंडलर 1.5.0 में एक बग है जहां यह डिफ़ॉल्ट रत्नों को नहीं पहचानता है जैसा कि यहां संदर्भित है

समाधान 1.5.1 का उपयोग करके बंडल करने के लिए अद्यतन करना था gem install bundler -v '= 1.5.1'


10
बंडल अपडेट करने के बाद भी यही समस्या थी, gem install json -v '1.8.1'अपडेट करने के बाद मेरे लिए त्रुटि संदेश तय किया गया।
जेसन डेनी

5
gem install json -v '1.8.1'इसके बाद bundle packageमेरे लिए चाल
चली गई

मुझे कुछ शपथ शब्द दिए। इसके लिए धन्यवाद!
कैटफ़िश

1
क्या बंडल आपके लिए इन रत्नों को स्थापित करने वाला नहीं है? मुझे समझ नहीं आ रहा है कि आपको रत्नों को मैन्युअल रूप से क्यों स्थापित करना है। bundler.io/rationale.html मैं बुंडलर संस्करण 1.7.11 का उपयोग कर रहा हूं
स्नोक्रैश

2
मैं बंडलर संस्करण 1.14.6 का उपयोग कर रहा हूं और इस त्रुटि को भी पा रहा हूं
कैटफ़िश

49

इस कमांड को चलाएं तो सबकुछ ठीक हो जाएगा

sudo apt-get install libgmp-dev

मेरे लिए भी काम किया :) धन्यवाद!
दीपक कुमार पढी

@ इमरान आपको इसे एक लिनक्स टर्मिनल पर रखना होगा। मुझे लगता है कि आप खिड़कियां चला रहे हैं?
Rcordoval

41

यदि आप MacOS सिएरा में हैं और आपका रूबी संस्करण 2.4.0 है। माणिक संस्करण जोंस 1.8.3 के साथ संगत नहीं है।

आप अपने Gemfile में इस लाइन को जोड़ने का प्रयास कर सकते हैं:

gem 'json', github: 'flori/json', branch: 'v1.8'

यह मेरे लिए काम करता है!


धन्यवाद, इसने मुझे बहुत हताशा से बचाया!
इकोनॉन

33

इस समस्या को हल करने के लिए, बस चलाएं:

bundle update

यह आपके बंडलर के संस्करण को अपडेट करेगा। फिर भागो:

bundle install

आपकी समस्या का समाधान हो जाएगा। समाधान यहाँ अच्छी तरह से समझाया गया है


1
+1 वास्तव में मददगार है और मुझे अनस्टक मिला है। के बाद bundle update, स्थापित महान काम किया। स्वच्छ समाधान के लिए धन्यवाद।
ट्विनकाब

3
bundle update अपने सभी रत्नों को अद्यतन करेगा। gem update bundlerबंडल अद्यतन करेगा।
eebbesen

20

मैं समाधान पाया यहाँ । Json संस्करण 1.8.1 और रूबी 2.2.3 के साथ एक समस्या है, इसलिए json 1.8.3 संस्करण स्थापित करें।

gem install json -v1.8.3

1
इसने मेरे लिए OSX, उबंटू में json मणि के कई बुरे संस्करणों पर काल्पनिक रूप से काम किया। एक मामले में मुझे लॉक फ़ाइल को हटाना और खरोंच से पुनर्निर्माण करना था: git rm Gemfile.lock बंडल इंस्टॉल
fuzzygroup

2
ठीक काम किया, सबसे पहले मैं हटाता हूं Gemfile.lockऔर फिर बस चलाता हूं bundle installऔर वह है।
अलेवेंटुराइयो

12

तुम्हें कोशिश करनी चाहिए

$ sudo gem install json -v '1.8.2'

मेरे मामले में (Ubuntu 14.04) जो सीधे काम नहीं करता था और मुझे यह करना पड़ा:

$ sudo apt-get install ruby-dev

और फिर मैं मणि स्थापित कर सकता था और जारी रख सकता था। एक और समस्या थी जो इसके द्वारा तय की गई थी:

$ sudo apt-get install libsqlite3-dev

आशा से मदद मिलती है।


9

यदि अनुशंसित उत्तर में मदद नहीं मिली क्योंकि आप पहले से ही बंडलर के नए संस्करण का उपयोग कर रहे हैं। मेरे लिए काम किया समाधान का प्रयास करें।

अपने विक्रेता फ़ोल्डर के अंदर सब कुछ हटा दें। अपने मणिभ के लिए एक रेखा जोड़ें

gem 'json', '1.8.0'

फिर दौड़ो - bundle update json

यह 1.8.1 के साथ एक मुद्दा लगता है, इसलिए 1.8.0 पर वापस जाना मेरे लिए चाल है।


रूबी 2.0.0 से 2.2.4 में अपग्रेड करते समय काम किया।
23

1
सब कुछ हटाने की आवश्यकता नहीं है। "बंडल अपडेट जसन" पर्याप्त है।
जोफ्री बाराथियोन

1
gem 'json', '1.8.6'मेरे लिए काम करना । आप कोशिश कर सकते हैं कि।
etagwerker

7

मैं अपने स्थानीय देव बॉक्स (OSX 10.6) पर चलने की परियोजना प्राप्त करने की कोशिश करते समय इस त्रुटि में भाग गया, Sinatra और Postgresql (activerecord के माध्यम से), एक rvm'd रूबी 2.1 पर चल रहा है। मुझे यहाँ अपना उत्तर मिला: https://github.com/wayneeseguin/rvm/issues/2511

मेरी सटीक समस्या (लॉग प्रविष्टियों के पहले ब्लॉक के बाद):

रत्नों के लिए देशी एक्सटेंशन बनाने की कोशिश करते समय मुझे एक त्रुटि भी मिलती है

जवाब :

rvm 2.1.0 --disable- बाइनरी को फिर से इंस्टॉल करें

स्पष्टीकरण :

OSX में एक पैकेज मैनेजर नहीं है, इसलिए सभी पुस्तकालयों को उपयोगकर्ता द्वारा मैन्युअल रूप से स्थापित किया जाना है, इससे द्विआधारी को गतिशील रूप से लिंक करना असंभव हो जाता है, और जैसा कि आप देख सकते हैं कि (छद्म) सांख्यिकीय रूप से जुड़े बाइनरी के साथ समस्याएं हैं।

पूर्णता की खातिर, मैं पहले आरवीएम ( rvm get head) को अपडेट करना भूल गया था , जिसमें कुछ अन्य त्रुटियां थीं, लेकिन --disable-binaryएक बार ऐसा करने के बाद भी मुझे ध्वज की आवश्यकता थी।


अपने समाधान के साथ निम्नलिखित त्रुटि प्राप्त करें: "संस्करण '2.1.0' अस्पष्ट है। रूबी कार्यान्वयन / संस्करण का चयन नहीं किया जा सकता है, कृपया अधिक विशिष्ट हो। अज्ञात पैकेज को पुनर्स्थापित नहीं कर सकता" "
पवित्र्रेडबर्ड

आपके पास रूबी 2.1.0, या आरवीएम के माध्यम से स्थापित एक से अधिक संस्करण नहीं हो सकता है। भागो rvm list, और आप देखेंगे कि आपका वर्तमान संस्करण क्या है। 2.1.0उपर्युक्त के बजाय पूर्ण स्ट्रिंग (जैसे रूबी-2.0.0-p451) का उपयोग करें ।
मथायस


5

जब मैंने जसन मणि को स्थापित करने की कोशिश की, तो मैंने gem install jsonजो प्रयोग किया , bundle installउसे देखते हुए मैंने इसका ERROR: Failed to build gem native extension.उपयोग किया

    apt-get install ruby-dev

चाल चली


अद्भुत - आपने मेरा दिन बचाया!
अंक 12

3

OS X के लिए सुनिश्चित करें कि आपके पास कोर्यूटिल्स हैं

$ brew install coreutils
$ bundle

1
हालांकि मुझे एक चेतावनी मिली "चेतावनी: कोर्यूटिल्स 8.32 पहले से ही स्थापित है और अप-टू-डेट है", यह चाल चली।
पॉल वर्शूर

2

ऐसा प्रतीत होता है कि बुंडलर में एक बग है जो रूबी 2.x के साथ स्थापित डिफ़ॉल्ट रत्नों को नहीं पहचानता है। मैंने अभी भी बंडलर (1.5.3) के नवीनतम संस्करण के साथ समस्या का अनुभव किया।

एक उपाय बस है कि डिफ़ॉल्ट रत्नस्पर्श निर्देशिका से जसन-1.8.1.gemspec को हटा दिया जाए।

rm ~/.rubies/ruby-2.1.0/lib/ruby/gems/2.1.0/specifications/default/json-1.8.1.gemspec

ऐसा करने के बाद, बंडल को मणि का पता लगाने में कोई समस्या नहीं होनी चाहिए। ध्यान दें कि मैं क्रुबी का उपयोग कर रहा हूं। यदि आप कुछ अन्य रूबी प्रबंधक का उपयोग कर रहे हैं, तो आपको अपने मार्ग को तदनुसार अपडेट करना होगा।


हाँ, यह json बंडल के साथ एक समस्या को हल करने के लिए सरल है। धन्यवाद
hainguyen

2

मुझे याद आ रहा था C हेडर समाधान Xcode के लिए इसे डाउनलोड करना था, यह सबसे अच्छा तरीका है।

xcode-select --install

आशा है कि इससे सहायता मिलेगी।


2

बंडल json -v '1.8.1' को स्थापित करने में विफल रहा और मेरे Gemfile.lock को हटाकर बंडल को फिर से मेरे लिए इस समस्या को हल किया।


1

मैंने json का नवीनतम संस्करण स्थापित किया है:

gem install json

फिर Gemfile.lock से लाइन जसन (1.8.1) को हटा दिया और ए

bundle install

और फिर Gemfile.lock फ़ाइल एरोस के बिना json (1.8.3) का उपयोग करती है


1
बस एक बंडल अपडेट चलाने से मेरे लिए यह समस्या हल हो गई ... दूसरे शब्दों में एक नए JSON मणि बिल्ड का उपयोग करके।
फ्रांसिस मैलोच

0

Rvm के साथ 1.9 से 2.2 तक के स्विच रूबी वर्जन ने मेरे लिए काम किया


0

मेरे लिए, पहले बताए गए कुछ उत्तर समझने के दृष्टिकोण से सहायक थे, लेकिन उन लोगों ने मेरी समस्या का समाधान नहीं किया।

इसलिए इस मुद्दे को हल करने के लिए मैंने ऐसा किया।

  • जेन्स (2.0.2) को अपडेट करने के लिए संशोधित जेमफाइल.लॉक ( इससे पहले, यह 1.8.3 था )
  • इंस्टॉल किए गए बुंडलर संस्करण की जांच करें (Bundler -v कमांड) । मेरे पास संस्करण 1.12.5 स्थापित था
  • बंडल संस्करण स्थापित करें 1.11.2 (उपयोग करके gem install bundler -v '1.11.2')
  • फिर बंडल इंस्टॉल चलाएं

0

MacOS सिएरा के लिए:

मैं इस त्रुटि में भाग गया जब मैंने बंडल का उपयोग किया (v1.15.3 रेल्स ( v4.2) प्रोजेक्ट में ) का । मेरे लिए समाधान है gem uninstall bundler -v '1.15.3'और gem install bundler -v '1.14.6'

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