vagrant.d在主文件夹之外

时间:2013-02-06 16:16:24

标签: vagrant

我的问题是我的主目录实际上位于远程服务器上,并且〜/ .vagrant.d位于该服务器上,流浪者的性能大幅下降(并且文件服务器备份大小增加)。

那么有没有办法将〜/ vagrant.d / box移出主目录?

干杯。

7 个答案:

答案 0 :(得分:109)

默认情况下,Vagrant使用~/.vagrant.d。幸运的是,vagrant提供了一个名为VAGRANT_HOME的环境变量,您可以通过该变量设置vagrant home。

只需执行以下操作即可更改流浪之家(仅适用于当前会话)

export VAGRANT_HOME=/path/to/vagrant

要使其永久化,请将其添加到~/.bash_profile(对于登录shell)。

更新VAGRANT_HOME已添加到文档中 - Environmental Variables

  

VAGRANT_HOME可以设置为更改Vagrant存储全局状态的目录。默认情况下,此项设置为~/.vagrant.d。 Vagrant主目录是存储盒子之类的东西,因此它实际上可以在磁盘上变得非常大。

答案 1 :(得分:14)

VAGRANT_HOME在我的Windows 8.1中运行不正常。当我更改文件

时,它对我有用
  

d:\ HashiCorp \流浪\嵌入\宝石\宝石\流浪-1.5.3 \ lib中\流浪\ environment.rb中

在第117行

@home_path = Util::Platform.fs_real_path("D:/vagrant/home/")
像史蒂夫H说的那样,它运作良好。

答案 2 :(得分:11)

通过执行

在Windows框中永久设置它可能很有用
setx VAGRANT_HOME "/d/.vagrant.d/"

答案 3 :(得分:6)

在Windows上更改环境.rb的第17行,位于:
流浪\嵌入\宝石\宝石\ vagrant-1.x.x.dev \ lib中\流浪\ environment.rb中

答案 4 :(得分:2)

另一个地方(它读取ENV变量的根位)在shared_helpers.rb中,第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

无论如何,我认为最好的方法是使用环境变量VAGRANT_HOME,以防恶化版本升级。

您可以使用此功能,如:

disk_path = self.user_data_path().to_s

答案 5 :(得分:0)

对于Windows用户,将环境变量VAGRANT_HOME设置到新位置。您可能需要重新启动PC才能生效。

答案 6 :(得分:0)

在Windows计算机上,一组VAGRANT_HOME环境变量对我有所帮助。 (\S+?)(\(((?:(?>[^()]+)|(?2))*)\))没有解决问题。