2013-04-07 9 views
12

पर बंडल इंस्टॉल टूटा हुआ बस रूबी 2.0/रेल 4.0 में अपग्रेड किया गया और एक नई रेल परियोजना पर बंडल इंस्टॉल करने की कोशिश कर रहा है। जब भी यह कुछ है कि पहले से ही स्थापित नहीं कर रहा है मारता है, इसे थूक से बाहर होगी:रूबी 2.0 अपग्रेड

Installing coffee-rails (4.0.0.beta1) 
Errno::ENOENT: No such file or directory - /usr/lib/ruby/gems/2.0.0/build_info/coffee-rails-4.0.0.beta1.info 
An error occurred while installing coffee-rails (4.0.0.beta1), and Bundler cannot continue. 
Make sure that `gem install coffee-rails -v '4.0.0.beta1'` succeeds before bundling. 

तो फिर मैं तो

gem install coffee-rails -v '4.0.0.beta1' 

चलाने के लिए और यह ठीक स्थापित करता है, और मैं बंडल को फिर से चलाएं स्थापित करें और के लिए यह दोहराना जब भी यह एक मणि संस्करण में चलाता है मैं अभी तक स्थापित नहीं किया है। यहाँ क्या समस्या है?

+0

क्या आपके Gemfile कैसा दिखाई देता है। –

+0

नई रेल परियोजनाओं के लिए जो भी डिफ़ॉल्ट रत्न है? –

+0

बंडलर का कौन सा संस्करण? –

उत्तर

0

इसे अपने जेमफ़ाइल में रखें और फिर बंडल इंस्टॉल करें।

group :assets do 
    gem 'coffee-rails', github: 'rails/coffee-rails' 
end 
+0

यह मणि सिर्फ एक उदाहरण था, यह किसी भी मणि के साथ होता है जिसे मैंने इंस्टॉल नहीं किया है। –

+0

रेल 4 में अब कोई संपत्ति समूह नहीं है। – MarkoHiel

4

bundle निष्पादन सिर्फ एक खोल स्क्रिप्ट है, और यह एक कुटिया लाइन है जो एक विशेष रूबी निष्पादन की ओर इशारा करते हो जाएगा (या /usr/bin/env ruby करने के लिए) है। ऐसा लगता है कि शेबांग लाइन रुबी के एक अलग संस्करण की ओर इशारा कर रही है, 2.0 एक नहीं, और यह नहीं कि आपके gem निष्पादन योग्य में शेबांग लाइन इंगित कर रही है।

भागो यह है कि क्या यह की ओर इशारा करते है को देखने के लिए: head -1 $(which bundle)

जो भी लाइन से पता चलता है कि आप, #! उपसर्ग बंद पट्टी और देखने के लिए रूबी का कौन सा संस्करण यह है (अगर यह स्पष्ट नहीं है -v स्विच के साथ कि लाइन को चलाने)। तो यदि शेबांग लाइन #!/usr/bin/ruby थी तो /usr/bin/ruby -v चलाएं यदि मेरा सिद्धांत सही है तो आपको वहां एक गैर 2.0 संस्करण संख्या मिलेगी।

आपने जो कहा है उसके आधार पर, आपके gem निष्पादन योग्य 2.0 रूबी को इंगित कर रहा है, इसलिए यहां ठीक करें अनइंस्टॉल करना है और फिर बंडलर मणि को पुनर्स्थापित करना है। को अपने bundle निष्पादन योग्य में सही रूबी 2.0 शेबैंग लाइन डालना चाहिए।

8

मेरे मामले में यह पता चला कि बंडल वैश्विक स्थानों में /usr/lib/ruby/gems/2.0.0 पर रत्न स्थापित करने की कोशिश कर रहा था, लेकिन चूंकि मैंने इसे सूडो के माध्यम से नहीं बुलाया था, इसलिए यह अनुमति त्रुटि के साथ समाप्त हुआ । मैं अपने घर डीआईआर को किसी भी तरह से स्थापित करना चाहता था, इसलिए यह पता चला कि मैं कर सकता हूं:

GEM_HOME=~/.gem/ruby/2.0.0/ bundle 

और बाद में खुशी से रहें।

संबंधित मुद्दे