2011-09-11 6 views
17

हर बार जब मैं एक नया प्रोजेक्ट बना रहा निम्न त्रुटियों मिलती है:और "विकृत हैं आवश्यकता" जब भी मैं रेल में एक नया प्रोजेक्ट बना (ककड़ी मुद्दा) "में अवैध gemspec"

 
Adams-MacBook-Pro:for_testing adam$ rails new outsidein 
Invalid gemspec in [/Users/adam/.rvm/gems/[email protected]/specifications/cucumber-1.0.4.gemspec]: Illformed requirement ["# 0.8.4"] 

Invalid gemspec in [/Users/adam/.rvm/gems/[email protected]/specifications/cucumber-1.0.4.gemspec]: Illformed requirement ["# 0.8.4"] 
Invalid gemspec in [/Users/adam/.rvm/gems/[email protected]/specifications/cucumber-1.0.4.gemspec]: Illformed requirement ["# 0.8.4"] 

मैं ककड़ी को नवीनीकृत किया है और ककड़ी-रेल लेकिन मुझे जगह पर त्रुटियां मिलती हैं। मैं क्या करूं?

+0

क्या आप "मणि सूची" और "कौन सी रेल" से आउटपुट पोस्ट कर सकते हैं। –

+0

@andywaite मणि सूची: अमान्य gemspec [/Users/adamtal/.rvm/gems/[email protected]/specifications/cucumber-1.0.4.gemspec]: विकृत आवश्यकता ["# 0.8.4 "] *** स्थानीय रत्न *** [/Users/adamtal/.rvm/gems/[email protected]/specifications/cucumber में अमान्य gemspec -1.0.4.gemspec]: विकृत आवश्यकता ["# 0.8.4"] सार (1.0.0) ... बहुत सारे रत्न !!! ... ZenTest (4.5.0) जो रेल /Users/adamtal/.rvm/gems/[email protected]/bin/rails – AdamT

+0

सही ढंग से रिक्ति नहीं। उपस्थिति के बारे में खेद है। – AdamT

उत्तर

1

ककड़ी-रेल 0.3.2 आवश्यक ककड़ी> 0.8.0, लेकिन जब बंडलर ने हमें 0.10.2 से 1.04 तक बदल दिया तो यह टूट गया। 0.10.2 की तरह एक पुराने ककड़ी की आवश्यकता होती है और यह,

मणि 'ककड़ी-रेल', '0.3.2' मणि 'ककड़ी' काम करेंगे '0.10.2'

+0

(हमारे ककड़ी-रेल संस्करण को हमारे निर्दिष्ट नोकोगिरी संस्करण, एफवीआईवी द्वारा भी सीमित किया गया था) – BF4

+0

(हम rubygems 1.3.6 पर हैं। Rvm rubygems 1.3.6 इंस्टॉल करें; ActiveSupport :: निर्भरता :: म्यूटेक्स त्रुटि को भी ठीक करता है) – BF4

+0

ऐसा लगता है काम करने के लिए! इसे और अधिक परीक्षण करने की आवश्यकता होगी। हालांकि, क्या मैं कुछ बिंदु पर बंडलर के अपने वर्तमान संस्करण के साथ ककड़ी के नए संस्करण का उपयोग करने में सक्षम हूं? – AdamT

4

क्या मुझे बाहर में मदद मिली देखें:

$ gem update --system 
... 
$ bundle update 

नोट्स:

  1. मैं रूबी 1.8.7-352 का उपयोग करें।
  2. ककड़ी बम्बलर के माध्यम से बम्बलर के लिए दृश्यमान है ताकि मैं वहां से अपना संस्करण प्रबंधित कर सकूं।

मुझे लगता है कि कुंजी rubygems को अद्यतन कर रही है।

+0

विचार के लिए धन्यवाद लेकिन मैंने पहले ही यह कर लिया है। मैं बंडलर का नवीनतम संस्करण चला रहा हूं। मैंने रेल 3.0.10 के साथ रूबी 1 9 2 पी 180 का उपयोग करके एक नया रत्न भी बनाया और मुझे यह त्रुटि मिली जब मैंने एक बंडल इंस्टॉल किया जो मेरे रत्न में 'ककड़ी-रेल' घोषित कर रहा था। – AdamT

+0

मैं सिर्फ उत्सुक हूं: क्या आपने मणि अपडेट - सिस्टम चलाया? मुझे यकीन है कि यह सभी मणि (1) समस्या है: उन्होंने सुरक्षा मुद्दों पर कुछ काम किया है। –

9

यह समस्या सबसे अच्छा RubyGems पर वर्णन किया गया है ब्लॉग:

http://blog.rubygems.org/2011/08/31/shaving-the-yaml-yak.html

टी एल; डॉ: gem update --system और gem update bundler

RubyGems 1.8.10 इस को हल करती है।

+1

मैंने सफलता के बिना इसे कुछ बार कोशिश की है। – AdamT

+1

यदि मणि पहले से स्थापित है, टूटा हुआ gemspec पहले से ही है। आप इसे मणि हटाने और इसे फिर से स्थापित करके हल कर सकते हैं। –

62

आपको रूबीगेम्स के नवीनतम संस्करण में अपडेट करने की आवश्यकता है, लेकिन आपको रूबीगेम्स के पुराने संस्करण पर स्थापित किसी भी रत्न को हटाने की भी आवश्यकता हो सकती है।

आप gemsets साथ rvm का उपयोग कर रहे हैं, यह काफी आसान है:

$ rvm gemset empty 

अब आप अद्यतन कर सकते हैं RubyGems:

$ gem update --system 

आप बंडलर खो गया है, क्योंकि यह में स्थापित किया गया था अपने gemset, वैश्विक gemset में इसे स्थापित तो यह आपके सभी gemsets के लिए नहीं है, अच्छे के लिए:

$ rvm @global gem install bundler 

अब तुम ca अब

$ bundle 

मुबारक: n चमकदार नया RubyGems पर एक अच्छी साफ gemset में अपने सभी रत्नों को पुनर्स्थापित?

+0

क्या यह मेरे सभी रत्नों को वर्तमान रूबी कार्यान्वयन में हटा देगा? इसके अलावा, "आरवीएम रत्न साफ" काम नहीं किया। क्या आपका मतलब "आरवीएम रत्न स्पष्ट" था? धन्यवाद – AdamT

+3

मुझे लगता है कि यह 'आरवीएम रत्न खाली है '। – rchampourlier

+1

हाँ 'आरवीएम रत्न खाली'। यह आपके रत्न को उड़ा देगा, लेकिन यह अच्छा है। ताजा स्थापित करने के लिए पुनर्नवीनीकरण 'बंडल'। –

4

मेरे पास इस तरह की त्रुटियों में भी बहुत कुछ था। मैंने मैन्युअल रूप से संपादित किया है। Gemspec फ़ाइलें और #<Syck::DefaultKey-blah-blah= बदल दी गईं। खोज के लिए खोज और प्रतिस्थापित करें %s/#<Syck::DefaultKey:0x.*>/=/ है।

1

मैंने अभी 1.0.2 तक ककड़ी खींची है, इस पल के लिए मदद करता है ...

gem 'cucumber', "1.0.2" 
    gem 'cucumber-rails', "1.0.2" 
संबंधित मुद्दे