我的问题是我的主目录实际上位于远程服务器上,并且 ~/.vagrant.d 位于该服务器上,vagrant 的性能严重下降(并且文件服务器备份大小增加)。
那么有没有办法将至少 ~/vagrant.d/boxes 移出主目录?
干杯。
我的问题是我的主目录实际上位于远程服务器上,并且 ~/.vagrant.d 位于该服务器上,vagrant 的性能严重下降(并且文件服务器备份大小增加)。
那么有没有办法将至少 ~/vagrant.d/boxes 移出主目录?
干杯。
默认情况下,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 主目录是存储诸如盒子之类的东西的地方,因此它实际上可以在磁盘上变得非常大。
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 说的那样,它工作正常。
通过执行在 Windows 框上永久设置它可能很有用
setx VAGRANT_HOME "/d/.vagrant.d/"
在 Windows 上更改 environment.rb 的第 17 行,位于:
vagrant\embedded\gems\gems\vagrant-1.xxdev\lib\vagrant\environment.rb
另一个地方(它读取 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
对于 Windows 用户,将环境变量设置VAGRANT_HOME
为新位置。您可能需要重新启动 PC 才能使其生效。
它适用于我在 Linux 上创建从我的辅助硬盘驱动器上的文件夹到 ~/.vagrant.d/boxes/ 的符号链接。
一组VAGRANT_DOTFILE_PATH
环境变量在 Windows 机器上帮助了我。VAGRANT_HOME
没有成功。