【发布时间】:2013-02-06 16:16:24
【问题描述】:
我的主目录实际上位于远程服务器上,并且 ~/.vagrant.d 位于该服务器上,vagrant 的性能严重下降(并且文件服务器备份大小增加)。
p>那么有没有办法至少将 ~/vagrant.d/boxes 移出主目录?
干杯。
【问题讨论】:
标签: vagrant
我的主目录实际上位于远程服务器上,并且 ~/.vagrant.d 位于该服务器上,vagrant 的性能严重下降(并且文件服务器备份大小增加)。
p>那么有没有办法至少将 ~/vagrant.d/boxes 移出主目录?
干杯。
【问题讨论】:
标签: vagrant
默认情况下,Vagrant 使用~/.vagrant.d。幸运的是,vagrant 提供了一个名为 VAGRANT_HOME 的环境变量,您可以通过它设置 vagrant home。
只需执行以下操作即可更改 vagrant home(仅在当前会话中有效)
export VAGRANT_HOME=/path/to/vagrant
要使其永久化,请将其添加到您的 ~/.bash_profile(用于登录 shell)。
更新:VAGRANT_HOME 已添加到文档中 - Environmental Variables
VAGRANT_HOME可以设置改变Vagrant存储全局状态的目录。默认情况下,它设置为~/.vagrant.d。 Vagrant 主目录是存储诸如盒子之类的东西的地方,因此它实际上可以在磁盘上变得非常大。
【讨论】:
~/.bash_profile 或者如果你在~/.zshrc 中使用ZSH 等),请确保你也写了export。检查它是否在命令行上使用env 设置。当使用 virtualbox 作为提供者时,在 GUI 中还有一个默认路径的设置。
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 说的那样,它工作正常。
【讨论】:
VAGRANT_HOME=d:\my\alternative\path。我猜你在创建环境变量后没有重新加载环境(例如通过关闭并重新启动控制台)。
通过执行将其永久设置在 Windows 框上可能很有用
setx VAGRANT_HOME "/d/.vagrant.d/"
【讨论】:
C:\Windows\System32 即可执行,因为C:\Windows\System32 通常在%path% 上。
在 Windows 上更改 environment.rb 的第 17 行,位于:
vagrant\embedded\gems\gems\vagrant-1.x.x.dev\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
【讨论】:
Vagrant::user_data_path().to_s工作。
对于 Windows 用户,将环境变量 VAGRANT_HOME 设置为新位置。您可能需要重新启动 PC 才能使其生效。
【讨论】:
它适用于我在 Linux 上创建从我的辅助硬盘驱动器上的文件夹到 ~/.vagrant.d/boxes/ 的符号链接。
【讨论】:
VAGRANT_DOTFILE_PATH 环境变量集在 Windows 机器上帮助了我。 VAGRANT_HOME 没有成功。
【讨论】: