2011-12-02 7 views
5

मुझे लगता है मैं क्या सोचा बंडलर के मानक कार्यक्षमता था के साथ संघर्ष कर लगता है, the manual specifiy है कि जवाहरात :platforms विकल्प या platforms ब्लॉकबंडलर और विभिन्न मंच मणि आवश्यकताओं के साथ कार्य करना

का उपयोग कर कुछ प्लेटफार्मों के लिए पर आवश्यक होना चाहिए क्षमता अनुसार

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

source "http://rubygems.org" 
gem "trollop", "~> 1.16.2" 
gem "chronic", "~> 0.6.4" 
gem "highline", "~> 1.6.2" 
gem "colorize", "~> 0.5.8" 
gem "queryparams", "~> 0.0.3" 

platforms :ruby_18 do 
    gem "json" 
    gem "activesupport", "~>2.8.9" 
end 

platforms :ruby_19 do 
    gem "activesupport", "~>3.1.3" 
end 

हालांकि यह विफल specifcy करना चाहते हैं जब bundle install

01 चल रहा
You cannot specify the same gem twice with different version requirements. 
You specified: activesupport (~> 2.8.9) and activesupport (~> 3.1.3) 
+0

आप एक Gemfile में मंच-विशिष्ट आवश्यकताओं को हो सकता है, कृपया जांच करें मेरा उत्तर – klaffenboeck

उत्तर

2

मुझे पूरा यकीन है कि यह करने योग्य नहीं है। एक रत्न में अलग-अलग संस्करणों के साथ निर्दिष्ट एक ही मणि नहीं हो सकता है। विभिन्न प्लेटफार्मों के भीतर इतना ही नहीं लेकिन फिर भी अलग-अलग समूहों (group_ruby_18, group_ruby_19) में नहीं है और फिर group_ruby_18

--without स्थापित तो यह भी असफल हो जायेगी बंडल कोशिश कर रहा द्वारा।

मुझे पहले यह समस्या थी और मुझे मिला एकमात्र समाधान 2 अलग-अलग GEMFILES था।

+2

धन्यवाद, अजीब लगता है, मैं सोचा था कि यह एक बहुत ही आम आवश्यकता होगी। – Rob

3

प्लेटफार्म-विशिष्ट मणि-आवश्यकताओं को प्राप्त करने के लिए आपको 2 अलग-अलग Gemfiles की आवश्यकता नहीं है। बस RUBY_VERSION के लिए जाँच करें और सशर्त खंड के कुछ प्रकार में अपने जवाहरात डाल:

if(defined?(JRUBY_VERSION)) 
    gem 'warbler' 
else 
    case(RUBY_VERSION) 
    when('1.8.7') 
    gem 'ruby-debug' 
    when('1.9.2') 
    gem 'ruby-debug19' 
    when('1.9.3') 
    gem 'debugger' 
    end 
end 

कि चाल करना चाहिए।

साथ सादर

,

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