2012-03-24 21 views
11

रूबी और रेल के लिए पूरा नया व्यक्ति यहां ... अतीत में कुछ ट्यूटोरियल आज़माएं, लेकिन यह इसके बारे में है। मैं 'रूबी ऑन ट्यूटोरियल' पुस्तक का पालन करने की कोशिश कर रहा हूं और एक रोडब्लॉक मारा है कि मुझे यहां और Google पर खोजने के बाद कोई मदद नहीं मिली है।बंडलर मणि "बंडलर" के लिए संगत संस्करण नहीं ढूंढ सका:

मैंने वास्तव में नहीं किया है कुछ भी अभी तक; केवल:

rails new first_app 

तो

gem 'sqlite3-ruby', '1.2.5', :require => 'sqlite3' 

को Gemfile sqlite3 बदल जब मैं मैं निम्नलिखित मिल 'स्थापित बंडल' चलाएँ:

Fetching gem metadata from http://rubygems.org/......... 
Bundler could not find compatible versions for gem "bundler": 
    In Gemfile: 
    rails (= 3.0.1) ruby depends on 
     bundler (~> 1.0.0) ruby 

    Current Bundler version: 
    bundler (1.1.3) 

This Gemfile requires a different version of Bundler. 
Perhaps you need to update Bundler by running `gem install bundler`? 

मैं

के माध्यम से बंडलर की स्थापना रद्द करने की कोशिश की है
gem uninstall bundler -v 1.1.3 

और फिर बी इंस्टॉल करना

gem install bundler -v 1.0.0 

के माध्यम से undler v1.0.0 लेकिन यह मुझे बंडलर 1.1.2 .. पाने के लिए लगता है

मैं बस लगता है कि मैं एक मरे हुए अंत तक पहुंचते हैं और पर कैसे करने के लिए किसी भी अधिक जानकारी नहीं मिल सकता है इस मुद्दे को हल करें।

किसी भी मदद की बहुत सराहना और बेकन के प्रचुर मात्रा के साथ पुरस्कृत किया जाएगा ...

अद्यतन अद्यतन अद्यतन

मैं बंडलर वी 1.1.2 की स्थापना रद्द करने के लिए नहीं मिल सकता है। मैं अंत में करने से जवाहरात के सभी की स्थापना रद्द करने में सक्षम था:

sudo gem list | cut -d" " -f1 > gem_list.txt 
cat gem_list.txt | xargs sudo gem uninstall -aIx 
cat gem_list.txt | xargs sudo gem install 

और फिर फिर से स्थापित करने ... यह मैं तो 'बंडल स्थापित' और ट्रैक पर मिल .. आपकी मदद के लिए आप सभी को धन्यवाद करने की अनुमति दी!

+0

क्या आप आरवीएम का उपयोग कर रहे हैं? –

+2

जब आप 'मणि सूची बंडलर' करते हैं तो यह क्या कहता है? शायद आपके पास 1.0.0 और 1.1.2 दोनों स्थापित हैं। –

+0

*** स्थानीय गेम्स *** बंडलर (1.1.3, 1.1.2, 1.0.0) – audioeric

उत्तर

5

सबसे पहले लोगों को आप नहीं चाहते को दूर अपने संस्करणों को सत्यापित करें कि वे सभी कर रहे हैं होने के लिए वर्तमान:

$ ruby -v 
ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-linux] 

$ rails -v   
Rails 3.2.2 

$ gem list bundler 
*** LOCAL GEMS *** 
bundler (1.1.3) 

आप गहरे लाल रंग का अद्यतन करने के लिए की जरूरत है, आप कर सकते हैं ruby-lang.org से इसे डाउनलोड करें या रूबी-बिल्ड जैसे टूल का उपयोग करें। यदि आपके पास रूबी 1.9.3 का कोई संस्करण है जो अभी ठीक है।

अपने सभी रत्नों को अद्यतन करने के लिए:

gem update --system 
gem update 

रत्न में कुछ अलग अलग स्थानों में जवाहरात स्थापित कर सकते हैं, और इन दूसरे के साथ हस्तक्षेप कर सकते हैं। सिस्टम रत्न हैं (आमतौर पर रूट द्वारा या सूडो का उपयोग करके) और आपके व्यक्तिगत उपयोगकर्ता रत्न हैं। इन्हें प्रबंधित करने का मेरा पसंदीदा तरीका आरबी-ईवीएन नामक एक साधारण उपकरण के साथ है। एक संबंधित उपकरण आरवीएम है। कुछ भी चलेगा।

अपने पहले ट्यूटोरियल के लिए, यदि आप अपने Gemfile में संस्करण संख्याओं का उपयोग कर छोड़ सकते हैं:

- gem 'sqlite3-ruby', '1.2.5', :require => 'sqlite3' 
+ gem 'sqlite3-ruby', :require => 'sqlite3' 

Bundler बाहर सही तरीके से सब कुछ को सॉर्ट होगा। आखिरकार आप संस्करण संख्या निर्दिष्ट करना चाहेंगे यदि आप अन्य डेवलपर्स के साथ समन्वय कर रहे हैं, या उत्पादन प्रणाली का निर्माण कर रहे हैं।

यहां प्रश्न पूछने के लिए स्वतंत्र महसूस करें और मैं इस उत्तर में जोड़ दूंगा।

+0

रूबी ठीक है, मेरे पास 1.9.3 पी 125 है। – audioeric

+0

जब मैं रेल करने की कोशिश करता हूं- मुझे लगता है कि यह वर्तमान में स्थापित नहीं है ... क्या सबकुछ अनइंस्टॉल करने का कोई तरीका है, यह सब एक नया इंस्टॉल करें? – audioeric

+0

ठीक है, मैंने सूडो मणि सूची के माध्यम से सभी रत्नों को अनइंस्टॉल किया। कट-डी "" -f1> gem_list.txt बिल्ली gem_list.txt | xargs sudo gem uninstall -aIx cat gem_list.txt | xargs sudo मणि स्थापित करें और इसने मुझे 'बंडल इंस्टॉल' करने की अनुमति दी है ... जो अब इस मुद्दे को हल करता है .. धन्यवाद! – audioeric

6

आप रेल 3.0 (3.0.12) के नवीनतम संस्करण का उपयोग कर सकते हैं। (और संभवतः अधिक संस्करण) यह नवीनतम बंडलर का समर्थन करता है, और मौलिक से 3.0.1

2

शायद तुम बंडलर 1.1.2 था और 1.1.3 आपकी मशीन पर इंस्टॉल अलग नहीं है

उपयोग

gem list bundler 

यह देखने के लिए कि आपके द्वारा इंस्टॉल किए गए बंडलर का कौन सा संस्करण (ओं) है।

फिर साथ

gem uninstall bundler -v VERSION_NUMBER 
+1

का उपयोग कर रहा हूं, मेरे पास 3 संस्करण स्थापित हैं, 1.0.0, 1.1.2, और 1.1.3। मैं 1.0.0 और 1.1.3 अनइंस्टॉल कर सकता हूं, लेकिन मैं 1.1.2 अनइंस्टॉल नहीं कर सकता। यदि मैं मणि अनइंस्टॉल बंडलर करता हूं, तो यह कहता है कि बंडलर स्थापित नहीं है। लेकिन अगर मैं मणि सूची बंडलर करता हूं, तो यह 1.1.2 सूचीबद्ध करता है ... – audioeric

3

ऐसा इसलिए है क्योंकि जवाहरात भी वैश्विक gemset में स्थापित कर रहे हैं, और आप का उपयोग कर इसे स्थापना रद्द कर सकते हैं:

rvm @global do gem uninstall bundler 

लेकिन आप यह भी का उपयोग कर बंडलर के अन्य संस्करण का उपयोग कर सकते हैं:

gem install bundler -v '~>1.0.0' 
bundle _1.0.0_ install 

1,0 की जगह .0 जो संस्करण स्थापित हुआ है (0 अन्य)

-1

बंडलर रेल का एक निर्भर मणि है, जिसके कारण आप इसेके बजाय केवल gemfile.lock में देख सकते हैं।

किसी विशेष रेल संस्करण के लिए केवल बंडलर रत्नों की एक श्रृंखला संगत है। मुझे यह त्रुटि भी मिली और मैंने बंडलर मणि के उस संस्करण को अनइंस्टॉल करने का प्रयास किया जिसकी मुझे आवश्यकता नहीं थी। मैंने bundle_x.x.x_install का उपयोग करके मजबूती से स्थापित करने का भी प्रयास किया, लेकिन जब चीजें काम नहीं करतीं तो मैंने स्पष्ट रूप से मणि का उल्लेख किया जो कि संस्करण संस्करण द्वारा आवश्यक सीमा के भीतर आने वाले संस्करण को निर्दिष्ट करता है। हो सकता है कि यह सही तरीका न हो लेकिन इस तरह चीजें मेरे लिए काम करती हैं।

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