.box
डाउनलोड और बॉक्स इंस्टॉलेशन पूरा होने के बाद वास्तविक फ़ाइल वैग्रैंट द्वारा हटा दी जाती है। जैसा कि अन्य उत्तरों में उल्लेख किया गया है, डाउनलोड करते समय, .box फ़ाइल इस प्रकार संग्रहीत की जाती है:
~/.vagrant.d/tmp/boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
जहां फ़ाइल का नाम 'बॉक्स' है, उसके बाद 40 बाइट हेक्साडेसिमल हैश है। उदाहरण के लिए मेरे सिस्टम पर एक अस्थायी फ़ाइल है:
~/.vagrant.d/tmp/boxc74a85fe4af3197a744851517c6af4d4959db77f
जहां तक मैं बता सकता हूं, यह फ़ाइल एक *.box
एक्सटेंशन के साथ कभी भी सहेजा नहीं गया है , जो बताता है कि ऊपर की खोजें इसे खोजने में विफल क्यों रहीं। वास्तविक बॉक्स फ़ाइल को पुनः प्राप्त करने के दो तरीके हैं:
Vagrantcloud.com से .box फ़ाइल डाउनलोड करें
- उस बॉक्स को ढूंढें जिसे आप एटलस में रुचि रखते हैं । उदाहरण के लिए,
https://atlas.hashicorp.com/ubuntu/boxes/trusty64/versions/20150530.0.0
- डोमेन नाम से बदलें
vagrantcloud.com
। तो https://atlas.hashicorp.com/ubuntu/boxes/trusty64/versions/20150530.0.1
हो जाता है https://vagrantcloud.com/ubuntu/boxes/trusty64/versions/20150530.0.1/providers/virtualbox.box ।
/providers/virtualbox.box
उस URL के अंत में जोड़ें । तो https://vagrantcloud.com/ubuntu/boxes/trusty64/versions/20150530.0.1 हो जाता है https://vagrantcloud.com/ubuntu/boxes/trusty64/versions/20150530.0.1/providers/virtualbox.box
- .Box फ़ाइल सहेजें
- उदाहरण के लिए, .box का उपयोग करें, उदाहरण के लिए, इसे स्वयं होस्ट करें और
config.vm.box_url
URL पर इंगित करें। या
Vagrant से सीधे .box प्राप्त करें
यह आपको सफल डाउनलोड के बाद बॉक्स को हटाने से रोकने के लिए माणिक स्रोत को संशोधित करने की आवश्यकता है।
- अपनी Vagrant स्थापना निर्देशिका में box_add.rb फ़ाइल की स्थिति जानें। मेरे सिस्टम पर यह स्थित है
/Applications/Vagrant/embedded/gems/gems/vagrant-1.5.2/lib/vagrant/action/builtin/box_add.rb
- Box_add फ़ंक्शन खोजें।
box_add
फ़ंक्शन के भीतर , एक ब्लॉक है जो पढ़ता है:
यह सुनिश्चित करें कि हम इसे जोड़ने के बाद # अस्थायी फ़ाइल को हटा दें, # जब तक हम बाधित नहीं हुए थे, उस स्थिति में हम इसे चारों ओर रखते हैं # इसलिए हम बाद में डाउनलोड को फिर से शुरू कर सकते हैं। if @download_interrupted @ logger.debug ("अस्थायी बॉक्स हटाना: # {box_url}") बॉक्स_url.delete प्रारंभ करें यदि box_url बचाव Errno :: ENOENT # एक बड़ा सौदा नहीं है, तो अस्थायी फ़ाइल वास्तव में अंत तक मौजूद नहीं हो सकती है
- इस ब्लॉक को कमेंट करें।
- एक और बॉक्स का उपयोग कर जोड़ें
vagrant add box <boxname>
।
- इसके डाउनलोड होने का इंतजार करें। आप इसे
~/.vagrant.d/tmp/
निर्देशिका में boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
फ़ाइल के रूप में सहेज कर देख सकते हैं ।
- फ़ाइल को कुछ और उपयोगी बनाने के लिए नाम बदलें। जैसे
mv boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX trusty64.box
,।
आप ऐसा क्यों चाहेंगे?
मेरे लिए, यह .box फ़ाइल को पुनः प्राप्त करने के लिए उपयोगी है, इसलिए इसे HashiCorp के एटलस बॉक्स कैटलॉग या किसी अन्य बॉक्स प्रदाता से डाउनलोड करने के विपरीत स्थानीय, तेज़ बुनियादी ढांचे पर होस्ट किया जा सकता है ।
यह वास्तव में डिफ़ॉल्ट Vagrant कार्यक्षमता का हिस्सा होना चाहिए क्योंकि इसमें एक बहुत ही निश्चित उपयोग का मामला है।
sudo find / -name lucid32.box
।