2013-02-06 14 views
65

Mam problem z tym, że mój katalog domowy znajduje się na zdalnym serwerze, a na serwerze znajduje się ~/.vagrant.d, wydajność vagranta znacznie się zmniejsza (i liczba plików rozmiar kopii zapasowej serwera wzrasta).vagrant.d poza folderem domowym

Czy istnieje sposób na przeniesienie co najmniej ~/vagrant.d/box z katalogu domowego?

Pozdrawiam.

Odpowiedz

96

Domyślnie Vagrant używa ~/.vagrant.d. Na szczęście, vagrant zapewnia zmienną środowiskową o nazwie VAGRANT_HOME, dzięki której możesz ustawić włóczęgę w domu.

Wystarczy wykonać następujące czynności, aby zmienić Vagrant domu (ten działa tylko w bieżącej sesji)

export VAGRANT_HOME=/path/to/vagrant

Aby uczynić to na stałe, dodać do swojej ~/.bash_profile (o login shell).

Aktualizacja: VAGRANT_HOME został dodany do dokumentacji - Environmental Variables

VAGRANT_HOME można ustawić, aby zmienić katalog, w którym przechowuje Vagrant stan globalny. Domyślnie jest to ustawione na ~/.vagrant.d. Katalog domowy Vagrant to miejsce, w którym przechowywane są takie rzeczy, jak pudełka, dzięki czemu mogą one stać się dość duże na dysku.

+6

Faktycznie stwierdziliśmy, że VAGRANT_HOME musi być ustawiony i że właściwość "machinefolder" w VirtualBox musi być ustawiona przez "VBoxManage setproperty machinefolder " __ Dzięki za podpowiedź – pagid

+0

dzięki za ten wpis !!! – Robert

+0

Moje osobiste wnioski: Przy tworzeniu zmiennej środowiskowej na stałe (w '~/.bash_profile' lub jeśli używasz ZSH w' ~/.zshrc' itp.), Upewnij się, że napisałeś również "export". Sprawdź, czy jest ustawiony z 'env' w linii poleceń. Podczas korzystania z wirtualnej skrzynki pocztowej jako dostawca istnieje również ustawienie w GUI dla domyślnej ścieżki. – Urs

7

W linii zmiany systemu Windows 17 z environment.rb znajduje się pod adresem:
włóczęgi \ osadzone \ \ perełki perełki \ Vagrant-1.xxdev \ lib \ włóczęga \ environment.rb

+3

Nie wiem, dlaczego zostałem odrzucony. Jest to istotne dla pytania - nie było oznaczone linuxem i mogłoby pomóc komuś podobnemu to zrobić. – Storsey

+12

Przesyłanie plików ruby ​​nie jest dobrą radą, a zmienna środowiskowa VAGRANT_HOME działa również poprawnie w systemie Windows. – pagid

+0

Nie zdawałem sobie sprawy, że zmienna env była dostępna w Win .. posortowałem to od razu, dzięki! – Storsey

13

VAGRANT_HOME nie działa dobrze w moim Windows 8.1. Ono pracował dla mnie, kiedy zmienił plik

D: \ HashiCorp \ Vagrant \ osadzone \ \ perełki perełki \ Vagrant-1.5.3 \ lib \ włóczęga \ environment.rb

on line 117 do

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

jak Steve H powiedział i działa dobrze.

+2

Jeśli używasz lokalnej ścieżki systemu Windows, pamiętaj o uniknięciu ukośnika odwrotnego (to mnie zaskoczyło). To znaczy. "D: \\ vagrant \\ home" – Guerrilla

2

Innym miejsce (miejsce gdzie korzeń odczytać zmienne ENV) jest shared_helpers.rb, linia 71 (włóczęga 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 

Zresztą, myślę, że najlepszym sposobem jest użycie zmienna środowiskowa VAGRANT_HOME, w przypadku aktualizacji wersji vagrant.

Można użyć tej funkcji takich jak:

disk_path = self.user_data_path().to_s 
+0

To było moje preferowane rozwiązanie. Działa w pliku vagrant jako 'Vagrant :: user_data_path(). To_s'. –

9

To może być przydatne, aby na stałe ustawić to na pole okna wykonując

setx VAGRANT_HOME "/d/.vagrant.d/" 
+1

Musisz uruchomić go ze ścieżki, w której znajduje się aplikacja Setx. Najczęstszą ścieżką jest: C: \ Windows \ System32 – versedi

Powiązane problemy