vagrant.d होम फोल्डर के बाहर


80

मुझे यह समस्या है कि मेरी होम निर्देशिका वास्तव में एक दूरस्थ सर्वर पर स्थित है और ~ / .vagrant.d के साथ उस सर्वर पर बैठी है, योनि का प्रदर्शन भारी कम हो जाता है (और फ़ाइल-सर्वर बैकअप आकार बढ़ जाता है)।

तो क्या घर निर्देशिका से कम से कम ~ / vagrant.d / बक्से को स्थानांतरित करने का कोई तरीका है?

चीयर्स।

जवाबों:


117

डिफ़ॉल्ट रूप से Vagrant उपयोग करता है ~/.vagrant.d। सौभाग्य से, योनि एक पर्यावरण चर प्रदान करती VAGRANT_HOMEहै जिसे आप घर पर सेट कर सकते हैं।

योनि गृह को बदलने के लिए बस निम्नलिखित करें (यह केवल वर्तमान सत्र में काम करता है)

export VAGRANT_HOME=/path/to/vagrant

इसे स्थायी बनाने के लिए, इसे अपने ~/.bash_profile(लॉगिन शेल के लिए) में जोड़ें।

अद्यतन : VAGRANT_HOMEप्रलेखन में जोड़ा गया है - पर्यावरण चर

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


8
वास्तव में मैंने पाया कि VAGRANT_HOME को सेट किया जाना है और यह कि वर्चुअलबॉक्स में प्रॉपर्टी "मशीनफ़ोल्डर" को "VBoxManage setproperty machinefolder <path>" के माध्यम से सेट किया जाना है। __ hint के लिए धन्यवाद
Pagid

1
मेरे व्यक्तिगत निष्कर्ष: पर्यावरण चर को स्थायी बनाते समय ( ~/.bash_profileया यदि आप ZSH इन ~/.zshrcआदि का उपयोग करते हैं ), तो सुनिश्चित करें कि आप भी लिखते हैं export। जांचें कि क्या यह envकमांड लाइन पर सेट है । प्रदाता के रूप में वर्चुअलबॉक्स का उपयोग करते समय, यह डिफ़ॉल्ट पथ के लिए GUI में एक सेटिंग भी है।
उर्स

2
Windows के लिए पर्यावरण चर संवाद का उपयोग करें और उदाहरण के लिए VAGRANT_HOME जोड़ें d: \ vagrant। संस्करण 2.2.4 के साथ पूरी तरह से अच्छी तरह से काम करता है। मौजूदा PowerShell कंसोल को बंद करने के लिए याद रखें और नए पर्यावरण चर को लोड करने के लिए एक नया खोलें।
ईविंद गुसीस लोर्कस

WSL2 पर - मेरे पास एक मुद्दा था जहां मैंने योनि द्वारा बनाए गए एक आभासी बॉक्स को हटा दिया था और अचानक यह अब एक योनि बनाने में सक्षम नहीं था - मैं अपनी विंडोज़ सी ड्राइव में ~ / .vagrant.d फ़ोल्डर की प्रतिलिपि बनाकर इसे ठीक करने में कामयाब रहा। / mnt / c / बाद में मैं फिर से योनि बना सकता हूं
नाग

16

VAGRANT_HOMEमेरे विंडोज 8.1 में अच्छा काम नहीं करता है। जब मैंने फाइल बदली तो यह मेरे लिए काम कर गया

D: \ HashiCorp \ Vagrant \ एम्बेडेड \ रत्न \ रत्न \ योनि-1.5.3 \ lib \ योनि \ _b.b.

117 पर लाइन में

@home_path = Util::Platform.fs_real_path("D:/vagrant/home/")

जैसे स्टीव एच ने कहा और यह ठीक काम करता है।


4
यदि आप विंडोज़ का उपयोग करते हैं तो याद रखें कि बैकस्लैश से बचना याद रखें (यह मुझे बाहर पकड़ा गया)। Ie "D: \\ योनि \\ होम"
गुरिल्ला

2
यह अब अच्छी तरह से काम करता है, कम से कम संस्करण 2.2.4 के साथ। मैंने पर्यावरण चर संवाद में VAGRANT_HOME जोड़ा और इसके मान को d: \ vagrant पर सेट किया, जिसने एक नया PowerShell कंसोल को बंद करने और खोलने के बाद पूरी तरह से ठीक काम किया।
ईविंद गुसीस लोर्कस

हाँ यह काम करता है। बैकस्लैश से बचने की आवश्यकता नहीं है। बस VAGRANT_HOME=d:\my\alternative\path। मुझे लगता है कि आपने पर्यावरण चर बनाने के बाद पर्यावरण को पुनः लोड नहीं किया (उदाहरण के लिए कंसोल को बंद करके और पुनः आरंभ करके)।
डेविड फेरेंस्की रोगोजान

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

12

इसे निष्पादित करके विंडोज बॉक्स पर स्थायी रूप से सेट करना उपयोगी हो सकता है

setx VAGRANT_HOME "/d/.vagrant.d/"

1
आपको इसे उस पथ से चलाना होगा जहां setx ऐप स्थित है। सबसे आम रास्ता है: C: \ Windows \ System32
versedi

सेटक्स को स्थानांतरित करने के बिना निष्पादित किया जा सकता है C:\Windows\System32, जैसा C:\Windows\System32कि आम तौर पर होता है %path%
ल्यूसिड_ड्रीमर

5

Windows परिवर्तन लाइन 17 पर environment.rb पर स्थित है:
योनि \ एम्बेडेड \ रत्न \ रत्न \ योनि -१.देवीदेवी / लिबास योनि / पर्यावरण। आरबी


3
यकीन नहीं होता कि मुझे वोट क्यों दिया गया। यह सवाल के लिए प्रासंगिक है - यह लेबल नहीं था और यह मेरी तरह किसी की मदद कर सकता था।
स्टॉरसे

14
रूबी फाइल्स में आस-पास मैसेज करना बिल्कुल भी अच्छी सलाह नहीं है और VAGRANT_HOME पर्यावरण वैरिएबल भी विंडोज पर ठीक काम कर रहा है।
पगिड

पता नहीं था कि चर चर विन पर उपलब्ध था .. कि सही बाहर हल, धन्यवाद!
स्टॉर्सी

1
यह एक मान्य प्रतिक्रिया है। नए परिवेश के प्रभावी होने के लिए हर कोई विंडोज (या जानता है) को पुनरारंभ करना नहीं चाहता है। संभावना है कि अगर कोई कोर फ़ाइलों को बदल रहा है, तो यह अस्थायी है या हताशा ने इसे निर्धारित किया है। support.microsoft.com/en-us/kb/821761
TH_

वास्तव में आपको विंडोज को पुनरारंभ करने की आवश्यकता क्यों होनी चाहिए? निश्चित रूप से इसकी जरूरत नहीं है। मैंने अभी एक पर्यावरण चर बनाया है और यह ठीक काम कर रहा है। कोई पुनरारंभ नहीं। आपको वातावरण को केवल एक कंसोल में पुनः लोड करने की आवश्यकता हो सकती है या पर्यावरण चर बनाने के बाद इसे शुरू कर सकते हैं। उन फ़ाइलों को संशोधित न करें जो कुछ सॉफ़्टवेयर या पैकेज का हिस्सा हैं।
डेविड फेरेंस्की रोगोजान

2

एक अन्य स्थान (रूट स्थान जहां वह ईएनवी चर पढ़ता है) साझा_हेलर्स.आरबी, लाइन 71 (आवृत v 1.6.5) में है:

 # This returns the path to the ~/.vagrant.d folder where Vagrant's
  # per-user state is stored.
  #
  # @return [Pathname]
  def self.user_data_path
    # Use user spcified env var if available
    path = ENV["VAGRANT_HOME"]

    # On Windows, we default to the USERPROFILE directory if it
    # is available. This is more compatible with Cygwin and sharing
    # the home directory across shells.
    if !path && ENV["USERPROFILE"]
      path = "#{ENV["USERPROFILE"]}/.vagrant.d"
    end

    # Fallback to the default
    path ||= "~/.vagrant.d"

    Pathname.new(path).expand_path
end

वैसे भी, मुझे लगता है कि वैरिएंट वर्जन अपग्रेड के मामले में पर्यावरण चर VAGRANT_HOME का उपयोग करने का सबसे अच्छा तरीका है।

आप इस फ़ंक्शन का उपयोग कर सकते हैं जैसे:

disk_path = self.user_data_path().to_s

यह मेरा पसंदीदा समाधान था। यह योनि फाइल के अंदर काम करता है Vagrant::user_data_path().to_s
टॉमस क्रेमेर्स

0

विंडोज उपयोगकर्ताओं के लिए, पर्यावरण चर VAGRANT_HOMEको नए स्थान पर सेट करें । आपको प्रभावी होने के लिए अपने पीसी को पुनरारंभ करने की आवश्यकता हो सकती है।


0

VAGRANT_DOTFILE_PATHपर्यावरण चर के सेट ने मुझे विंडोज मशीन पर मदद की। VAGRANT_HOMEकाम नहीं किया।

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