2013-02-06 10 views
65

Ho il problema che la mia directory home si trova in realtà su un server remoto e con ~/.vagrant.d seduto su quel server, le prestazioni del vagabondo diminuiscono pesantemente (e file- le dimensioni del backup del server aumentano).vagrant.d all'esterno della cartella home

Quindi c'è un modo per spostare almeno ~/vagrant.d/boxes fuori dalla directory home?

Cheers.

risposta

96

Per impostazione predefinita Vagrant utilizza ~/.vagrant.d. Fortunatamente, vagrant fornisce una variabile di ambiente denominata VAGRANT_HOME con cui è possibile impostare casa vagabondo.

Basta fare quanto segue per modificare la home vagabondo (questo funziona solo nella sessione corrente)

export VAGRANT_HOME=/path/to/vagrant

Per renderlo permanente, aggiungere questo al vostro ~/.bash_profile (per shell di login).

Aggiornamento: VAGRANT_HOME è stato aggiunto alla documentazione - Environmental Variables

VAGRANT_HOME può essere impostato per cambiare la directory in cui stato di negozi Vagrant globale. Per impostazione predefinita, questo è impostato su ~/.vagrant.d. La directory home di Vagrant è dove vengono archiviate le cose come le scatole, quindi può diventare piuttosto grande su disco.

+6

In realtà ho scoperto che VAGRANT_HOME deve essere impostato e che il la proprietà "machinefolder" in VirtualBox deve essere impostata tramite "VBoxManage setproperty machinefolder " __ Grazie per il suggerimento – pagid

+0

grazie per questo post !!! – Robert

+0

Le mie scoperte personali: quando rendi la variabile di ambiente permanente (in '~/.bash_profile' o se usi ZSH in' ~/.zshrc', ecc.), Assicurati di scrivere anche 'export'. Controlla se è impostato con 'env' sulla riga di comando. Quando si utilizza virtualbox come provider, c'è anche un'impostazione nella GUI per il suo percorso predefinito. – Urs

7

On line il cambiamento di Windows 17 di environment.rb situato a:
vagabondo \ incorporato \ gemme \ gemme \ vagabondo-1.xxdev \ lib \ vagabondo \ environment.rb

+3

Non so perché sono stato votato. Questo è rilevante per la domanda - non è stato etichettato come linux e potrebbe aiutare qualcuno come me. – Storsey

+12

Non è un buon consiglio fare un giro nei file ruby ​​e anche la variabile d'ambiente VAGRANT_HOME funziona bene su Windows. – pagid

+0

Non si rendeva conto che la variabile env era disponibile su Win .. risolto correttamente, grazie! – Storsey

13

VAGRANT_HOME non funziona bene nel mio Windows 8.1. Ha funzionato per me quando ho cambiato il file

D: \ HashiCorp \ Vagrant \ incorporato \ gemme \ gemme \ vagabondo-1.5.3 \ lib \ vagabondo \ environment.rb

on line 117 a

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

come ha detto Steve H e funziona perfettamente.

+2

Se si utilizza il percorso locale di Windows, ricordarsi di non eseguire il backslash (questo mi ha fatto impazzire). Cioè "D: \\ vagrant \\ home" – Guerrilla

2

un altro luogo (il luogo dove radice leggi variabili ENV) è in shared_helpers.rb, linea 71 (v vagrant 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 

Comunque, penso che il modo migliore è usare la variabile d'ambiente VAGRANT_HOME, in caso di aggiornamento della versione vagabonda.

È possibile utilizzare questa funzione come:

disk_path = self.user_data_path().to_s 
+0

Questa era la mia soluzione preferita. Funziona all'interno di un file vagabondo come "Vagrant :: user_data_path(). To_s'. –

9

Potrebbe essere utile per impostare in modo permanente questo su una macchina Windows eseguendo

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

È necessario eseguirlo dal percorso in cui si trova l'app setx. Il percorso più comune è: C: \ Windows \ System32 – versedi

Problemi correlati