vagrant.d en dehors du dossier d’accueil

Le problème est que mon répertoire personnel est en fait situé sur un serveur distant et que ~ / .vagrant.d est installé sur ce serveur, les performances du vagrant diminuent considérablement (et la taille de la sauvegarde du serveur de fichiers augmente).

Existe-t-il un moyen de déplacer au moins ~ / vagrant.d / cases hors du répertoire personnel?

À votre santé.

Par défaut, Vagrant utilise ~/.vagrant.d . Heureusement, vagrant fournit une variable d’environnement appelée VAGRANT_HOME par laquelle vous pouvez définir le domicile des vagrants.

Il suffit de faire ce qui suit pour changer la maison vagrante (cela ne fonctionne que dans la session en cours)

export VAGRANT_HOME=/path/to/vagrant

Pour le rendre permanent, ajoutez-le à votre ~/.bash_profile (pour le shell de connexion).

Mise à jour : VAGRANT_HOME a été ajouté à la documentation – Variables d’environnement

VAGRANT_HOME peut être configuré pour modifier le répertoire dans lequel Vagrant stocke l’état global. Par défaut, ceci est défini sur ~/.vagrant.d . Le répertoire de base Vagrant est l’endroit où les éléments tels que les boîtes sont stockés, de sorte qu’il peut réellement devenir assez volumineux sur le disque.

VAGRANT_HOME ne fonctionne pas bien dans Windows 8.1. Cela a fonctionné pour moi quand j’ai changé le fichier

D: \ HashiCorp \ Vagrant \ embedded \ gems \ gems \ vagrant-1.5.3 \ lib \ vagrant \ environment.rb

sur la ligne 117 pour

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

comme l’a dit Steve H et ça marche bien.

Il peut être utile de définir cela de manière permanente sur une boîte Windows en exécutant

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

Sur Windows, changez la ligne 17 de environment.rb située à:
vagrant \ incorporé \ gems \ gems \ vagrant-1.xxdev \ lib \ vagrant \ environment.rb

un autre endroit (le lieu racine où il a lu les variables ENV) est dans shared_helpers.rb, ligne 71 (vagrant 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 

Quoi qu’il en soit, je pense que le meilleur moyen est d’utiliser la variable d’environnement VAGRANT_HOME, en cas de mise à niveau de la version erratique.

Vous pouvez utiliser cette fonction comme:

 disk_path = self.user_data_path().to_s 

Pour les utilisateurs Windows, définissez la variable d’environnement VAGRANT_HOME sur le nouvel emplacement. Vous devrez peut-être redémarrer votre PC pour qu’il prenne effet.