【问题标题】:vagrant.d outside of the home foldervagrant.d 在主文件夹之外
【发布时间】:2013-02-06 16:16:24
【问题描述】:

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

p>

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

干杯。

【问题讨论】:

    标签: vagrant


    【解决方案1】:

    默认情况下,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 主目录是存储诸如盒子之类的东西的地方,因此它实际上可以在磁盘上变得非常大。

    【讨论】:

    • 其实我发现必须设置 VAGRANT_HOME 并且必须通过“VBoxManage setproperty machinefolder ”设置VirtualBox中的属性“machinefolder” __感谢提示
    • 我的个人发现:当使环境变量永久化时(在~/.bash_profile 或者如果你在~/.zshrc 中使用ZSH 等),请确保你也写了export。检查它是否在命令行上使用env 设置。当使用 virtualbox 作为提供者时,在 GUI 中还有一个默认路径的设置。
    • 对于 Windows,使用环境变量对话框并添加 VAGRANT_HOME,例如值为 d:\vagrant。至少与 2.2.4 版完美配合。记得关闭现有的 PowerShell 控制台并打开一个新的控制台以加载新的环境变量。
    • 在 WSL2 上 - 我有一个问题,我删除了一个由 vagrant 创建的虚拟框,突然它不再能够创建一个 vagrant - 我设法通过复制 ~/.vagrant 来修复它。 d 文件夹到我的 Windows c 驱动器 - /mnt/c/ 之后我可以再次制作 vagrant up
    【解决方案2】:

    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 本地路径,请记住转义反斜杠(这让我很失望)。 IE。 "D:\\vagrant\\home"
    • 它现在运行良好,至少在 2.2.4 版本中是这样。我在环境变量对话框中添加了 VAGRANT_HOME 并将其值设置为 d:\vagrant,在关闭并打开新的 PowerShell 控制台后效果很好。
    • 是的,它有效。无需转义反斜杠。只需VAGRANT_HOME=d:\my\alternative\path。我猜你在创建环境变量后没有重新加载环境(例如通过关闭并重新启动控制台)。
    • 永远不要完全按照您的方式行事(修改了您正在使用的软件中的文件)。每次重新安装或将 Vagrant 升级到新版本时,您都必须重新应用您的修改。
    【解决方案3】:

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

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

    【讨论】:

    • 您必须从 setx app 所在的路径运行它。最常见的路径是:C:\Windows\System32
    • setx 无需移动到C:\Windows\System32 即可执行,因为C:\Windows\System32 通常在%path% 上。
    【解决方案4】:

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

    【讨论】:

    • 不知道为什么我被否决了。这与问题相关 - 它没有标记为 linux,可以帮助像我这样的人。
    • 在 ruby​​ 文件中乱来根本不是一个好建议,而且 VAGRANT_HOME 环境变量在 Windows 上也可以正常工作。
    • 没有意识到 env 变量在 Win 上可用.. 解决了这个问题,谢谢!
    • 这是一个有效的响应。不是每个人都想(或知道)重新启动 Windows 以使新的环境变量生效。如果有人正在考虑更改核心文件,则可能是暂时的,或者是绝望设置了它。 support.microsoft.com/en-us/kb/821761
    • 为什么需要重新启动 Windows?这绝对不需要。我现在刚刚创建了一个环境变量,它工作正常。没有重启。您可能只需要在控制台中重新加载环境,或者在创建环境变量后启动它。不要修改属于某些软件或软件包的文件。
    【解决方案5】:

    另一个地方(它读取 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工作。
    【解决方案6】:

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

    【讨论】:

      【解决方案7】:

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

      【讨论】:

        【解决方案8】:

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

        【讨论】:

        • 是的,我发现 VAGRANT_HOME 设置了盒子目录。但是除非也设置了 VAGRANT_DOTFILE_PATH,否则单个 vm 文件不会移动。
        猜你喜欢
        • 1970-01-01
        • 2020-04-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-30
        • 1970-01-01
        • 1970-01-01
        • 2019-02-01
        相关资源
        最近更新 更多