2013-01-11 48 views
21

हम इसका परीक्षण करेंगे, लेकिन ऐसा नहीं होने पर हमारे देव पर्यावरण को बर्बाद करने का जोखिम नहीं उठाना चाहते हैं।Gemfile.lock को समझना: क्या Gemfile.lock को हटाना ठीक है, फिर बंडल को फिर से इंस्टॉल करें?

क्या Gemfile.lock को हटाना ठीक है?

हम रेल 3.0.6 पर हैं।

+2

केवल 'रैंड अपडेट अपडेट रेल' का उपयोग करने पर विचार करें, केवल आपको आवश्यक रत्न अपडेट करने के लिए। –

उत्तर

22

शायद आप अपने देव पर्यावरण को बर्बाद नहीं कर रहे हैं। हालांकि, आप पहले की तुलना में रत्नों के नए संस्करणों के साथ समाप्त हो सकते हैं। यह इस बात पर निर्भर करता है कि आपने उन्हें Gemfile में कैसे परिभाषित किया है।

आप की तरह प्रविष्टियों उपयोग कर रहे हैं:

gem "rails"

तो फिर तुम नवीनतम rails मणि, जो कुछ भी है कि हो सकता है मिल जाएगा।

आप की तरह प्रविष्टियों उपयोग कर रहे हैं:

gem "rails", "3.2.11"

तो फिर तुम 3.2.11 फिर से मिल जाएगा।

यह सब कहकर, यह शाखाएं हैं। git, hg, या जो भी आप उपयोग कर रहे हैं, में एक शाखा बनाएं, Gemfile.lock को उड़ाएं, bundle install चलाएं, और फिर अपना परीक्षण सूट देखें। यदि यह भयानक है, तो आप गलत तरीके से पता लगाते समय शाखा छोड़ सकते हैं।

एक और युक्ति: जब भी मैं कभी ऐसा करना चाहता था, मैंने पाया कि यह मेरे सभी स्थापित रत्नों को भी साफ़ करने में उपयोगी था। आप gemsets साथ rvm उपयोग कर रहे हैं यह चल रहा है के रूप में सरल है

rvm gemset empty [gemset_name]

0

मैं यह पहले से ही उत्तर दिया गया है, लेकिन बाकी सब है कि गूगल पर इस पोस्ट के पार आने के लिए होता है के लिए, तो आप उस आदेश को पता होना चाहिए पता bundle init जेमफाइल को पुन: उत्पन्न करेगा।

+0

हम्म, मेरे लिए मुझे एक त्रुटि संदेश मिला 'Gemfile पहले से ही/home/bla bla bla पर मौजूद है ...'। यह फ़ाइल को पुन: उत्पन्न नहीं किया। शायद इसका मतलब है कि .lock फ़ाइल को हटाया जा सकता है और 'बंडल इनिट' के साथ पुन: उत्पन्न किया जा सकता है, हालांकि यदि मामला है तो बस और बस बंडल इंस्टॉल के बीच क्या अंतर होगा? –

0

यह Gemfile.lock हटाना सिर्फ

bundle install 

एक नई Gemfile.lock उत्पन्न करने के लिए चलाने के लिए ठीक है। ध्यान दें कि यदि आपने अपने Gemfile पर किसी मणि के किसी भी संस्करण को निर्दिष्ट नहीं किया है, तो आपको हमेशा नवीनतम