रेल बंडल साफ


88

बंडल को अपडेट करने के बाद, आपके पास कुछ रत्न होंगे जो अप्रचलित हो सकते हैं - चूंकि उस रत्न का एक नया संस्करण स्थापित किया गया है। bundleनिष्पादन योग्य के तहत ऐसा कोई आदेश नहीं है bundle clean। इन अप्रचलित रत्नों से कैसे छुटकारा पाया जा सकता है?

यह मेरे रेल एप में स्लग साइज को कम करने का एक प्रयास है।

जवाबों:


132

यदि आप बुंडलर 1.1 का उपयोग कर रहे हैं या बाद में आप उपयोग कर सकते हैं bundle clean, जैसे आपने कल्पना की थी। यदि आप उपयोग कर रहे हैं तो यह निरर्थक है bundle install --path(बुंडलर उस स्थान को प्रबंधित करता है जिसे आप --पथ के साथ निर्दिष्ट करते हैं, इसलिए पुराने रत्नों को निकालने की जिम्मेदारी लेता है), लेकिन यदि आपने बुंडलर का उपयोग रत्नों को सिस्टम रत्नों के रूप में स्थापित करने के लिए किया है, तो bundle clean --forceकिसी भी सिस्टम रत्नों को नहीं हटाया जाएगा अपने Gemfile द्वारा आवश्यक। स्पष्ट रूप से स्पष्ट चेतावनी: ऐसा न करें यदि आपके पास अन्य एप्लिकेशन हैं जो सिस्टम रत्नों पर भरोसा करते हैं जो आपके जेमफाइल में नहीं हैं!

पैट Shaughnessy bundle cleanबंडलर 1.1 में और अन्य नए परिवर्धन का एक अच्छा वर्णन है ।


30
आरवीएम का उपयोग करने वालों के लिए, ध्यान दें कि bundle clean --forceआपके वैश्विक रत्नों को नहीं छूता है, लेकिन केवल आपके वर्तमान रत्नों में। तो bundle clean --forceउसी परिणाम का उत्पादन करता है और उसके rvm gemset emptyबाद तेजी से होता है bundle install
गाबे कोपले

19
अस्वीकरण: "बंडल साफ - प्रवर्तन" यदि आप सावधान नहीं हैं, तो बड़ी संख्या में रत्न उड़ा सकते हैं। इस प्रतिक्रिया की पहली पंक्ति होनी चाहिए ... खासकर क्योंकि इसमें बहुत सारे वोट हैं। सावधान रहे!
jerrylroberts

36

यदि आप आरवीएम का उपयोग कर रहे हैं, तो आप rvm gemset emptyवर्तमान रत्न के लिए उपयोग कर सकते हैं - यह कमांड चालू रत्न (रत्नों में ही रहेगा) पर स्थापित सभी रत्नों को हटा देगा। फिर bundle installरत्नों के वास्तविक संस्करण को स्थापित करने के लिए चलाएं । यह भी सुनिश्चित करें कि आप इस तरह के सामान्य रत्नों को रेक, बंडलर इत्यादि के दौरान नहीं हटाते हैं rvm gemset empty(यदि यह मामला है तो उन्हें gem installपहले से मैन्युअल रूप से इंस्टॉल करें bundle install)।


22

आप RVM उपयोग कर रहे हैं आप अपने जवाहरात स्थापित कर सकते हैं gemsets । इस तरह जब आप एक पूर्ण सफाई करना चाहते हैं, तो आप केवल रत्नसेट को हटा सकते हैं, जो बदले में इसमें स्थापित सभी रत्नों को हटा देता है। आपका अन्य विकल्प केवल अपने अप्रयुक्त रत्नों की स्थापना रद्द करना और अपने bundle installआदेश को फिर से चलाना है ।

चूंकि बंडलर एक प्रोजेक्ट-प्रति-प्रोजेक्ट मणि संस्करण उपकरण है, जो इसे एक bundle cleanकमांड प्रदान नहीं करता है । ऐसा करने का मतलब होगा अन्य परियोजनाओं से जुड़े रत्नों को हटाने की संभावना, जो वांछनीय नहीं होगा। इसका मतलब है कि बंडलर शायद आपकी मणि निर्देशिका का प्रबंधन करने के लिए उपयोग करने के लिए गलत उपकरण है। मेरी व्यक्तिगत सिफारिश होगी कि आप अपने रत्नों को कुछ परियोजनाओं या रूबी संस्करणों में सैंडबॉक्स के लिए आरवीएम रत्न का उपयोग करें।


41
रत्न निकालने की आवश्यकता नहीं है, आप बस 'आरवीएम रत्न खाली रत्नसेट_नाम' टाइप कर सकते हैं और फिर 'बंडल इंस्टाल' को फिर से चला सकते हैं।
JAG

महान व्याख्या। यह जानते हुए कि बंडल के बारे में मदद करता है। धन्यवाद।
वोल्ट

9
बंडल साफ - प्रवर्तन कार्य करेगा
नाविक

आरवीएम के साथ, फ़ोल्डर को मिटा दें। आरवीएम / रत्न / रूबी-एक्सएक्सएक्सएक्सएक्सएक्सएक्स / विनिर्देशों यदि "बंडल इंस्टाल" रत्नों को फिर से डाउनलोड करने से इनकार करता है।
बार्बेकैन

@JAG मैं यह जोड़ना चाहूंगा कि रत्न को साफ करने के बाद आपको 'रत्न इंस्टॉल बंडलर' की जरूरत होगी, बंडल इंस्टाल
maleta

13

ईमानदारी से, मुझे बंडलर परिपत्र निर्भरता के साथ समस्याएं थीं और जाने का सबसे अच्छा तरीका है rm -rf .bundle। अपने आप को सिरदर्द से बचाएं और बस हथौड़ा का उपयोग करें।


1
मुझे ऐसा करने के लिए इसे रोकना पड़ा, ताकि आप मुझे "- तैनाती के साथ बंडल इंस्टाल" कह सकें। साभार
केविन

2
विचार के लिए धन्यवाद। हालांकि मेरे लिए, एक बड़े हथौड़ा का उपयोग करने में मदद मिली। rvm implode --forceऔर फिर rvm को पुनः स्थापित करें
Ryan

1

मुझे लगता है कि तुम में रत्न स्थापित vendor/bundle? यदि हां, तो सभी रत्नों को हटाकर साफ-सुथरा क्यों न करें bundle install?


मेरा विक्रेता निर्देशिका केवल संपत्ति और स्थापित प्लगइन्स का ट्रैक रखता है। मैं
रेलगाड़ी

फिर अप्रयुक्त रत्नों को हटाने का क्या कारण है अगर वे तैनात नहीं हैं? वे उतनी जगह नहीं लेते।
लियोनिद शेवत्सोव

मैं एक इंट्रानेट पर इस रेल एप्लिकेशन को तैनात कर रहा हूं; मतलब मैं स्थानीय रूप से फाइलों और पर्यावरण को संभालता हूं। यदि आप इसके लिए उपयोग किए जाने वाले किसी भी समाधान के बारे में जानते हैं, तो कृपया साझा करें।
इब्बनम


0

बस अपने रत्न से अप्रचलित रत्नों को हटा दें। यदि आप हरोकू के बारे में बात कर रहे हैं (आपने इसका उल्लेख नहीं किया है) तो स्लग प्रत्येक नई रिलीज़ को संकलित करता है, बस उस फ़ाइल की वर्तमान सामग्री का उपयोग करके।


यह उसके लिए जरूरी नहीं है। मैं खुद रेल के आकार को कम करना चाहता हूं।
इब्बानम

0

बस निष्पादित, जवाहरात अप्रचलित साफ करने के लिए और बंडल के बाद प्रिंट चेतावनी को हटा दें।

bundle clean --force

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.