Vagrant Wagrant.d位于主文件夹之外

Vagrant Wagrant.d位于主文件夹之外,vagrant,Vagrant,我遇到的问题是,我的主目录实际上位于远程服务器上,并且~/.vagrant.d位于该服务器上,因此vagrant的性能会严重降低(并且文件服务器备份大小会增加) 那么有没有办法将至少~/vagrant.d/box移出主目录 干杯。默认情况下,Vagrant使用~/.Vagrant.d。幸运的是,vagrant提供了一个名为vagrant\u HOME的环境变量,您可以通过该变量设置vagrant HOME 只需执行以下操作即可更改流浪者之家(此操作仅在当前会话中有效) export VAGRAN

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

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


干杯。

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

只需执行以下操作即可更改流浪者之家(此操作仅在当前会话中有效)

export VAGRANT\u HOME=/path/to/VAGRANT

要使其永久化,请将其添加到您的
~/.bash\u配置文件中(用于登录shell)

更新
流浪者之家
已添加到文档中-

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


在environment.rb的Windows change第17行中,位于:

vagrant\embedded\gems\gems\vagrant-1.x.x.dev\lib\vagrant\environment.rb在我的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/")
正如Steve H所说,它工作正常。

另一个位置(读取环境变量的根位置)位于shared_helpers.rb的第71行(vagrant v 1.6.5):

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

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

disk_path = self.user_data_path().to_s

通过执行以下命令在Windows框中永久设置此选项可能会很有用

setx VAGRANT_HOME "/d/.vagrant.d/"


对于Windows用户,将环境变量
VAGRANT\u HOME
设置为新位置。您可能需要重新启动电脑才能使其生效。

一组
VAGRANT\u DOTFILE\u PATH
环境变量在Windows计算机上帮助了我
VAGRANT\u HOME
不起作用。

事实上,我发现必须设置VAGRANT\u HOME,并且必须通过“VBoxManage setproperty machinefolder”设置VirtualBox中的属性“machinefolder”\uuuuuuuuuu\uuuuuuu。感谢我的个人发现:当环境变量永久化时(在
~/.bash_profile
中,或者如果在
~/.zshrc
中使用ZSH,等等),请确保您也编写
export
。检查它是否在命令行上设置为
env
。当使用virtualbox作为提供程序时,GUI中还有一个默认路径设置。对于Windows,请使用环境变量对话框,并使用例如值d:\VAGRANT添加VAGRANT\u HOME。在版本2.2中运行良好。至少4.请记住关闭现有PowerShell控制台并打开一个新控制台以加载新的环境变量。在WSL2上-我遇到了一个问题,删除了vagrant创建的虚拟框,但突然它无法创建vagrant-我通过将~/.vagrant.d文件夹复制到我的windows c驱动器-/mnt/c/来修复它可能再次让vagrant Up不知道我为什么被否决。这与问题有关-它没有标记为linux,可以帮助像我这样的人。在ruby文件中乱搞不是一个好建议,vagrant_HOME环境变量在Windows上也工作得很好。没有意识到env变量在Win上可用。所以谢谢!这是一个有效的回答。不是每个人都想(或知道)这样做重新启动Windows以使新的环境变量生效。如果有人想更改核心文件,可能是暂时的,或者是绝望造成的。您为什么需要重新启动Windows?这绝对不是必需的。我现在刚刚创建了一个环境变量,它工作正常。不需要重新启动。您可以只需在控制台中重新加载环境或在创建环境变量后启动环境。不要修改属于某些软件或包的文件。必须从setx app所在的路径运行它。最常见的路径是:C:\Windows\System32setx无需移动到
C:\Windows\System32 ,因为
C:\Windows\System32
通常位于
%path%
上。如果使用Windows本地路径,请记住避开反斜杠(这让我抓到了)。例如,“D:\\vagrant\\home”它现在运行良好,至少在版本2.2.4中是这样。我将VAGRANT_HOME添加到环境变量对话框中,并将其值设置为d:\VAGRANT,这在关闭和打开新的PowerShell控制台后工作得非常好。是的,它可以工作。无需逃避反斜杠。只需
VAGRANT_HOME=d:\my\alternative\path
。我猜您没有重新加载创建环境变量后,请重新启动环境(例如关闭并重新启动控制台)。不要完全按照您所做的操作(修改了您正在使用的软件的一部分文件)。每次重新安装Vagrant或将其升级到新版本时,您都必须重新应用所做的修改。这是我的首选解决方案。它在Vagrant文件中作为
Vagrant::user\u data\u path()。to\u s
setx VAGRANT_HOME "/d/.vagrant.d/"