यदि मैं बंडलर का उपयोग करने के लिए एक प्रोजेक्ट स्थापित कर रहा हूं, और मेरे पास प्रोजेक्ट के लिए पहले से ही एक आरवीएम जेमसेट है, तो Gemfile
(या, उस मामले के लिए, default.gems
फ़ाइल में कनवर्ट सूची निर्यात करने का एक आसान तरीका है) Gemfile
प्रारूप)? या हम सब सिर्फ खोज और बदल रहे हैं?क्या RVM default.gems फ़ाइलों को बंडलर जेमफाइल में कनवर्ट करने के लिए उपयोगिता है?
उत्तर
वहाँ उस के लिए rvm में एक कमांड है: इस रेक कार्य की इसकी वर्णन है कि यह होगा
rvm gemset export Gemfile
यह होगा Gemfile
जेमसेट में सभी रत्नों के साथ उत्पन्न करें।
"बंडल इंस्टॉल" चलाएं!
यह जवाहरात जो कमांड लाइन पर RVM के तहत स्थापित किया गया (अगर वे पहले से ही स्थापित कर रहे हैं)
जांच रयान बेट्स Bundler पर RailsCast का उपयोग करेगा: http://railscasts.com/episodes/201-bundler
मैं एक पुराने के लिए एक Gemfile उत्पन्न करने के लिए चाहता था रेल परियोजना और मैंने मेरी मदद करने के लिए इस छोटी लिपि लिखी।
#!/usr/bin/env ruby
#Save in file to_gemfile.rb
gem_file = File.open("Gemfile", "w")
gem_file.write("source :rubygems\n")
STDIN.readlines.each do |line|
line = line.chomp
line =~ /(.*)\s\((.*)\)/
gem_name = $1
versions = $2.split(",")
gem_file.write("gem \"#{gem_name}\", \"#{versions.first}\"\n")
end
gem_file.close
की तरह तो
$ gem list | ./to_gemfile.rb
अरे, यह मेरे बाद के करीब है! एकमात्र लापता लिंक यह है कि इसमें रत्नों को पहले से स्थापित करने की आवश्यकता होती है (यानी, मुझे 'जेमफाइल' उत्पन्न करने से पहले रत्न आयात करने की आवश्यकता होगी) लेकिन शायद इसे डिफ़ॉल्ट.gems पढ़ने के लिए स्क्रिप्ट को अनुकूलित करके प्रबंधित किया जा सकता है 'मणि सूची 'के पाइप आउटपुट की बजाय फ़ाइल। – pjmorse
मुझे यकीन नहीं है कि default.gems प्रारूप कैसा दिखता है, लेकिन यदि यह रत्न की सूची के करीब है तो आप './to_gemfile.rb
@ user420504 कर सकते हैं यह' gem इंस्टॉल ... 'जैसा है लेकिन छीन लिया 'मणि इंस्टॉल' के साथ, ताकि आप वहां '--version' या' -v' निर्दिष्ट कर सकें और यदि आवश्यक हो तो अतिरिक्त संकलन झंडे निर्दिष्ट कर सकते हैं – mpapis
ऐसा लगता है कि rails_upgrade प्लगइन अपने rake rails:upgrade:gems
कार्य के माध्यम से यह क्षमता प्रदान करता है यह प्रयोग करें।
एक Gemfile अपने config.gem निर्देशों से उत्पन्न
यदि रत्न पहले ही इंस्टॉल किए गए थे, हालांकि, मुझे 'इंस्टॉल बंडल' क्यों करना होगा? मैं जो उम्मीद कर रहा हूं वह एक 'जेमफाइल' है जिसे मैं एससीएम में देख सकता हूं, इसलिए मेरी बाकी टीम को भी बदलाव मिलते हैं, जिस तरह से हमने 'default.gems' के साथ किया था। हो सकता है कि मुझे 'इंस्टॉल बंडल' करने की आवश्यकता है और फिर 'जेमफाइल' पर निर्यात करें? – pjmorse
'बंडल इंस्टॉल' लपेटता है और Gemfile.lock फ़ाइल जेनरेट करके अपने रत्न को फ्रीज करता है - इसलिए आप अवांछित संस्करणों को गोपनीय रूप से मिश्रित नहीं करते हैं .. यहां अधिक जानकारी के लिए जांचें: http://gembundler.com/, उदा। "समझना बंडलर" टैब – Tilo
मैंने इसे आज़माया। अगर मेरे पास पहले से 'Gemfile' नहीं है, तो' बंडल इंस्टॉल 'एक त्रुटि देता है ("Gemfile का पता नहीं लगा सका")। अगर मेरे पास खाली है, तो 'बंडल इंस्टॉल' इसे नहीं बनाता है। जो मैं ढूंढ रहा था वह 'जेमफाइल' का एक मार्ग था, लेकिन एक परियोजना-विशिष्ट आरवीएम रत्न, जिसमें 'जेमफाइल' और 'जेमफाइल.लॉक' है, जो कि आरएमवी जेमसेट को प्रतिबिंबित करता है, मैन्युअल रूप से 'जेमफाइल' में रत्नों को सूचीबद्ध किए बिना '। – pjmorse