我的问题是我的主目录实际上位于远程服务器上,而〜/ .vagrant.d位于该服务器上,导致vagrant的性能大幅下降(并且文件服务器备份大小增加了)。
那么有什么办法可以将至少〜/ vagrant.d / boxes移出主目录?
干杯。
Answers:
默认情况下,Vagrant使用~/.vagrant.d
。幸运的是,vagrant提供了一个称为的环境变量VAGRANT_HOME
,您可以通过该变量来设置vagrant home。
只需执行以下操作即可更改无业游民的家庭(这仅在当前会话中有效)
export VAGRANT_HOME=/path/to/vagrant
要使其永久,请将其添加到您的~/.bash_profile
(用于登录shell)中。
更新:VAGRANT_HOME
已添加到文档中-环境变量
VAGRANT_HOME
可以设置为更改Vagrant存储全局状态的目录。默认情况下,此设置为~/.vagrant.d
。Vagrant主目录是存储盒子等内容的目录,因此它实际上在磁盘上可能会变得很大。
~/.bash_profile
或如果在中使用ZSH~/.zshrc
等),请确保也进行编写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(Steve 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.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。
您可以使用以下功能:
disk_path = self.user_data_path().to_s
Vagrant::user_data_path().to_s
。