86

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

那么有没有办法将至少 ~/vagrant.d/boxes 移出主目录?

干杯。

4

8 回答 8

123

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

只需执行以下操作即可更改 vagrant home(仅在当前会话中有效)

export VAGRANT_HOME=/path/to/vagrant

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

更新VAGRANT_HOME已添加到文档中 -环境变量

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

于 2013-02-11T01:27:12.207 回答
16

VAGRANT_HOME在我的 Windows 8.1 中无法正常工作。当我更改文件时它对我有用

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

在第 117 行到

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

就像史蒂夫 H 说的那样,它工作正常。

于 2014-05-10T15:03:10.617 回答
13

通过执行在 Windows 框上永久设置它可能很有用

setx VAGRANT_HOME "/d/.vagrant.d/"
于 2015-03-25T09:58:13.407 回答
5

在 Windows 上更改 environment.rb 的第 17 行,位于:
vagrant\embedded\gems\gems\vagrant-1.xxdev\lib\vagrant\environment.rb

于 2013-03-14T01:50:52.983 回答
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,以防 vagrant 版本升级。

您可以像这样使用此功能:

disk_path = self.user_data_path().to_s
于 2014-09-09T07:24:46.567 回答
1

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

于 2018-07-12T06:10:20.977 回答
1

它适用于我在 Linux 上创建从我的辅助硬盘驱动器上的文件夹到 ~/.vagrant.d/boxes/ 的符号链接。

于 2021-09-26T02:32:36.020 回答
-1

一组VAGRANT_DOTFILE_PATH环境变量在 Windows 机器上帮助了我。VAGRANT_HOME没有成功。

于 2020-11-30T12:48:16.610 回答