Vagrant अपनी .box फ़ाइलों को कहाँ से डाउनलोड करता है?


267

निम्न कमांड निष्पादित होने के बाद .box फ़ाइल का क्या होता है?

vagrant box add lucid32 http://files.vagrantup.com/lucid32.box

lucid32.boxडाउनलोड पूरा होने के बाद मुझे फ़ाइल सिस्टम पर फ़ाइल नहीं मिल रही है ।


मुझे लगता है कि मैं आपकी बात को पूरी तरह याद कर रहा हूं क्योंकि पहली चीज जो मेरे दिमाग में है sudo find / -name lucid32.box
अपरिमेय जॉन

वास्तव में मैंने क्या किया, लेकिन मुझे कुछ याद आ रहा है क्योंकि मैं lucid32.boxइस सटीक कमांड का उपयोग नहीं कर पाया ...
केल्विन चेंग

3
शायद यह उस नाम के साथ मौजूद नहीं है। वाइल्ड कार्ड *.boxशायद ऐसे खोजता है ? (BTW, विस्तार नहीं होगा .vbox?)
तर्कहीन जॉन

हाँ आप सही है। खोज के लिए किया जाना चाहिए *.vboxऔर not *.box। रहस्य सुलझ गया। :-) क्या आप एक उत्तर में कुंजी देना चाहेंगे ताकि मैं इसे स्वीकार कर सकूं? धन्यवाद!
केल्विन चेंग

1
@CalvinCheng: मुझे लगता है कि आप इसके बारे में गलत हैं कि यह केवल एक टार संग्रह में एक .vbox छवि है। यह वास्तव में एक टार अभिलेखागार है, लेकिन इसमें बॉक्स-डिस्क 1.vmdk, box.ovf और वैग्रांटाइल जैसी फाइलें शामिल हैं। मुझे नहीं पता कि उन फ़ाइलों को बनाने के लिए कैसे उपयोग किया जाता है जो वर्चुअलबॉक्स उपयोग करता है, लेकिन यदि आप VB की .vbox फ़ाइल को खोलते हैं तो आप देखेंगे कि यह सिर्फ XML है। मैं मान रहा हूं कि वैग्रांट एक्सएमएल और बाइनरी फाइलों को वर्चुअलबॉक्स द्वारा इस्तेमाल की जाने वाली अपनी फाइलों (साथ ही एक बाइनरी और एक्सएमएल फाइल, प्लस वैग्रांटफाइल) में बदल देती है। यदि आप बाइनरी फ़ाइलों को खोलते हैं, तो आप देखेंगे कि वे अलग हैं, इसलिए यह असत्य और नाम बदलने का एक साधारण मामला नहीं है।
इकोनॉस्टल

जवाबों:


397

डॉक्स में उल्लेख किया गया है , बक्से यहां संग्रहीत हैं:

  • मैक ओएस एक्स और लिनक्स: ~/.vagrant.d/boxes
  • खिड़कियाँ: C:/Users/USERNAME/.vagrant.d/boxes

1
आह। स्पष्टीकरण के लिए धन्यवाद। डॉक्स में उस स्पष्टीकरण को याद करने के लिए मुझे अंधा होना चाहिए।
केल्विन चेंग

1
@manojisions: प्रश्न पर मेरी टिप्पणी फिर से देखें: .vbox फ़ाइल। यह अपने आप से VM नहीं है, यह सिर्फ एक XML फ़ाइल है।
आइकनोकॉस्ट

विंडोज ओएस पर एक ही जगह?
अरुडा

34
आप .vagrant.d का स्थान निर्दिष्ट करने के लिए env var VAGRANT_HOME का भी उपयोग कर सकते हैं, जैसा कि VAGRANT_HOME = D: \-vagrant.d में है (हाँ, यह Windows में भी काम करता है)।
स्वेन

5
में C:\Users\{username}\.vagrant.d\boxesपर खिड़कियां, मैं केवल पाया .vmdkफ़ाइल नहीं .box!!
बिलाल

76

मैक / लिनक्स सिस्टम पर, सफलतापूर्वक डाउनलोड किए गए बॉक्स यहां स्थित हैं:

~/.vagrant.d/boxes

और असफल बॉक्स यहां स्थित हैं:

~/.vagrant.d/tmp

विंडोज सिस्टम पर यह यूजर फोल्डर के नीचे स्थित है:

C:\Users\%userprofile%\.vagrant.d\boxes

आशा है कि यह मदद करेगा। धन्यवाद


10
यकीन नहीं हो रहा था कि यह क्यों ठुकरा दिया गया। असफल डाउनलोड के गंतव्य के बारे में जानकारी उपयोगी थी।
एलेक्स कॉवेंट्री

~/.vagrant.d/boxesकभी भी .box फ़ाइल को स्टोर नहीं करता है, बस यह सामग्री है। ~/.vagrant/tmpअस्थायी रूप से डाउनलोड करते समय .box को संग्रहीत करने के लिए उपयोग किया जाता है, लेकिन वैग्रांट के भीतर स्थापना पर हटा दिया जाता है।
ल्यूक पीटरसन

तीसरी पंक्ति (विंडोज के लिए)%userprofile%\.vagrant.d\boxes
जे स्कॉट एल्बलिन

यह उत्तर उस मामले के लिए है जिसे आप वास्तव में अपने हार्ड डिस्क स्थान की परवाह करते हैं।
किलटेक

45

पथ को बदलने के लिए, आप एक नए पथ को नामांकित-परिवर्तनीय नाम पर सेट कर सकते हैं: VAGRANT_HOME

export VAGRANT_HOME=my/new/path/goes/here/

यदि आप चाहते हैं कि उन HDD पर एक और अधिक स्पष्ट-छवियाँ है तो शायद अच्छा है।

अधिक जानकारी यहाँ दस्तावेजों में: http://docs.vagrantup.com/v2/other/environmental-variables.html


20

.boxडाउनलोड और बॉक्स इंस्टॉलेशन पूरा होने के बाद वास्तविक फ़ाइल वैग्रैंट द्वारा हटा दी जाती है। जैसा कि अन्य उत्तरों में उल्लेख किया गया है, डाउनलोड करते समय, .box फ़ाइल इस प्रकार संग्रहीत की जाती है:

~/.vagrant.d/tmp/boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

जहां फ़ाइल का नाम 'बॉक्स' है, उसके बाद 40 बाइट हेक्साडेसिमल हैश है। उदाहरण के लिए मेरे सिस्टम पर एक अस्थायी फ़ाइल है:

~/.vagrant.d/tmp/boxc74a85fe4af3197a744851517c6af4d4959db77f

जहां तक ​​मैं बता सकता हूं, यह फ़ाइल एक *.boxएक्सटेंशन के साथ कभी भी सहेजा नहीं गया है , जो बताता है कि ऊपर की खोजें इसे खोजने में विफल क्यों रहीं। वास्तविक बॉक्स फ़ाइल को पुनः प्राप्त करने के दो तरीके हैं:

  1. Vagrantcloud.com से .box फ़ाइल डाउनलोड करें

    1. उस बॉक्स को ढूंढें जिसे आप एटलस में रुचि रखते हैं । उदाहरण के लिए, https://atlas.hashicorp.com/ubuntu/boxes/trusty64/versions/20150530.0.0
    2. डोमेन नाम से बदलें 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
    3. /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
    4. .Box फ़ाइल सहेजें
    5. उदाहरण के लिए, .box का उपयोग करें, उदाहरण के लिए, इसे स्वयं होस्ट करें और config.vm.box_urlURL पर इंगित करें। या
  2. Vagrant से सीधे .box प्राप्त करें

    यह आपको सफल डाउनलोड के बाद बॉक्स को हटाने से रोकने के लिए माणिक स्रोत को संशोधित करने की आवश्यकता है।

    1. अपनी Vagrant स्थापना निर्देशिका में box_add.rb फ़ाइल की स्थिति जानें। मेरे सिस्टम पर यह स्थित है/Applications/Vagrant/embedded/gems/gems/vagrant-1.5.2/lib/vagrant/action/builtin/box_add.rb
    2. Box_add फ़ंक्शन खोजें। box_addफ़ंक्शन के भीतर , एक ब्लॉक है जो पढ़ता है:

      यह सुनिश्चित करें कि हम इसे जोड़ने के बाद # अस्थायी फ़ाइल को हटा दें, # जब तक हम बाधित नहीं हुए थे, उस स्थिति में हम इसे चारों ओर रखते हैं # इसलिए हम बाद में डाउनलोड को फिर से शुरू कर सकते हैं। if @download_interrupted @ logger.debug ("अस्थायी बॉक्स हटाना: # {box_url}") बॉक्स_url.delete प्रारंभ करें यदि box_url बचाव Errno :: ENOENT # एक बड़ा सौदा नहीं है, तो अस्थायी फ़ाइल वास्तव में अंत तक मौजूद नहीं हो सकती है

    3. इस ब्लॉक को कमेंट करें।
    4. एक और बॉक्स का उपयोग कर जोड़ें vagrant add box <boxname>
    5. इसके डाउनलोड होने का इंतजार करें। आप इसे ~/.vagrant.d/tmp/निर्देशिका में boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXफ़ाइल के रूप में सहेज कर देख सकते हैं ।
    6. फ़ाइल को कुछ और उपयोगी बनाने के लिए नाम बदलें। जैसे mv boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX trusty64.box,।

आप ऐसा क्यों चाहेंगे?

मेरे लिए, यह .box फ़ाइल को पुनः प्राप्त करने के लिए उपयोगी है, इसलिए इसे HashiCorp के एटलस बॉक्स कैटलॉग या किसी अन्य बॉक्स प्रदाता से डाउनलोड करने के विपरीत स्थानीय, तेज़ बुनियादी ढांचे पर होस्ट किया जा सकता है

यह वास्तव में डिफ़ॉल्ट Vagrant कार्यक्षमता का हिस्सा होना चाहिए क्योंकि इसमें एक बहुत ही निश्चित उपयोग का मामला है।


क्या बॉक्स फ़ोल्डर में सबफ़ोल्डर्स को इंस्टॉल करने योग्य बॉक्स फ़ाइल बनाना, ज़िप करना या टारगेट करना संभव है?
थोरसुमोनर

@ थोरसुमोनर हाँ, लेकिन आप अस्वस्थ होने के कारण वैगरेंट को उसी स्थिति में संभाल सकते हैं, उदाहरण के लिए, vagrant packageकमांड के माध्यम से : docs.vagrantup.com/v2/cli/package.html
ल्यूक पीटरसन

15

@ ल्यूक पीटरसन: .box फ़ाइल को प्राप्त करने का एक सरल तरीका है।

बस https://atlas.hashicorp.com/boxes/search पर जाएं , उस बॉक्स को खोजें जिसे आप डाउनलोड करना चाहते हैं। बॉक्स के URL पर ध्यान दें, जैसे:

https://atlas.hashicorp.com/ ubuntu / बक्से / भरोसेमंद / संस्करण / 20150530.0.1

फिर आप इस तरह URL का उपयोग करके इस बॉक्स को डाउनलोड कर सकते हैं:

https://vagrantcloud.com/ ubuntu / बक्से / भरोसेमंद / संस्करण / 20150530.0.1 /providers/virtualbox.box

मैंने उन सभी बॉक्सों को डाउनलोड करने और उन्हें सफलतापूर्वक आज़माया है जिनकी मुझे ज़रूरत है। उम्मीद है कि मदद


यह बहुत बढ़िया खोज है! धन्यवाद। ;)
ल्यूक पीटरसन

लिंक अब टूट गया है - app.vagrantup.com के साथ प्रतिस्थापित करने की आवश्यकता है ।
RtmY

6

विंडोज पर, स्थान यहां पाया जा सकता है। मुझे इसके लिए इंटरनेट पर कोई दस्तावेज नहीं मिला, और यह मेरे लिए तुरंत स्पष्ट नहीं था:

C:\Users\\{username}\\.vagrant.d\boxes


क्या% userprofile% \ vagrant.d \ बक्से तब काम करता है? % userprofile% c: \ users \ {उपयोगकर्ता नाम} का विस्तार करता है
TamusJRoyce

2

के अतिरिक्त

Mac:
~/.vagrant.d/

Windows:
C:\Users\%userprofile%\.vagrant.d\boxes

आपको क्लीन स्टार्ट बनाने के लिए VirtualBox / OtherVMprovider में फ़ाइलों को हटाना होगा।


0

Vagrant 2.2.2 के साथ विंडोज 10 पर , पर्यावरण चर की स्थापना यह सुनिश्चित करेगी कि बक्से को निर्दिष्ट फ़ोल्डर के एक सबफ़ोल्डर में डाउनलोड किया जाए ।VAGRANT_HOMEVAGRANT_HOME

मेरे मामले में मैं सेट VAGRANT_HOMEकरता हूं e:\vagrant_home, और बक्से के नीचे संग्रहीत हो जाते हैं e:\vagrant_home\boxes

यह मेरे लिए काम करता है।

यहीं पर बक्सों को संग्रहित किया जाता है। आभासी मशीनों फ़ोल्डर आभासी बॉक्स में विन्यस्त में बनाया जा रहा है। वर्चुअलबॉक्स VM संग्रहण फ़ोल्डर सेट करने के लिए, पर जाएँ VirtualBox GUI --> File --> Preferences --> General --> Default Machine Folder:।

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