web-dev-qa-db-fra.com

vagrant.d en dehors du dossier de départ

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

Donc, y a-t-il un moyen de déplacer au moins ~/vagrant.d/boxes du répertoire de base?

À votre santé.

70
pagid

Par défaut, Vagrant utilise ~/.vagrant.d. Heureusement, vagrant fournit une variable d’environnement appelée VAGRANT_HOME à l’aide de laquelle vous pouvez définir vaguel home. 

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

export VAGRANT_HOME=/path/to/vagrant

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

Update: VAGRANT_HOME a été ajouté à la documentation - Variables d'environnement

VAGRANT_HOME peut être configuré pour changer le répertoire dans lequel Vagrant stocke l'état global. Par défaut, il est défini sur ~/.vagrant.d. Le répertoire personnel de Vagrant est l'endroit où sont stockées des choses telles que les boîtes, de sorte qu'il peut devenir assez volumineux sur le disque.

106
Terry Wang

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

à la ligne 117 pour

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

comme Steve H a dit et ça marche bien.

13
Awesome

Il peut être utile de le définir de manière permanente sur une machine Windows en exécutant

setx VAGRANT_HOME "/d/.vagrant.d/"
11
ivica

Sous Windows, changez la ligne 17 de environment.rb située à l’adresse:
vagrant\embedded\gems\gems\vagrant-1.x.x.dev\lib\vagrant\environment.rb

6
Storsey

un autre emplacement (l'emplacement racine où sont lues les variables ENV) se trouve 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 consiste à utiliser la variable d'environnement VAGRANT_HOME, en cas de mise à niveau de version vagabonde.

Vous pouvez utiliser cette fonction comme:

disk_path = self.user_data_path().to_s
2
Christophe

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.

0
Dalton Tan