ホームフォルダの外にあるvagrant.d


80

ホームディレクトリが実際にはリモートサーバーにあり、〜/ .vagrant.dがそのサーバーにあると、vagrantのパフォーマンスが大幅に低下する(ファイルサーバーのバックアップサイズが大きくなる)という問題があります。

では、少なくとも〜/ vagrant.d / boxesをホームディレクトリから移動する方法はありますか?

乾杯。

回答:


117

デフォルトでは、Vagrantはを使用し~/.vagrant.dます。幸い、vagrantは、vagranthomeを設定するために呼び出さVAGRANT_HOMEれる環境変数を提供します。

放浪者の家を変更するには、次の手順を実行します(これは現在のセッションでのみ機能します)

export VAGRANT_HOME=/path/to/vagrant

永続的にするには、これを~/.bash_profile(ログインシェル用に)に追加します。

更新VAGRANT_HOMEドキュメントに追加されました-環境変数

VAGRANT_HOMEVagrantがグローバル状態を保存するディレクトリを変更するように設定できます。デフォルトでは、これはに設定されてい~/.vagrant.dます。Vagrantホームディレクトリはボックスなどが保存される場所であるため、実際にはディスク上でかなり大きくなる可能性があります。


8
実際、VAGRANT_HOMEを設定する必要があり、VirtualBoxのプロパティ「machinefolder」を「VBoxManagesetproperty machinefolder <path>」で設定する必要があることが
わかりました。__

1
私の個人的な調査結果:環境変数を永続的に~/.bash_profileする場合(またはでZSHを使用する場合~/.zshrcなど)、必ず記述exportしてください。envコマンドラインでで設定されているかどうかを確認します。virtualboxをプロバイダーとして使用する場合、GUIにはデフォルトパスの設定もあります。
ウルス

2
Windowsの場合、環境変数ダイアログを使用して、インスタンス値d:\ vagrantを指定してVAGRANT_HOMEを追加します。少なくともバージョン2.2.4で完全に機能します。既存のPowerShellコンソールを閉じ、新しいコンソールを開いて、新しい環境変数をロードすることを忘れないでください。
EivindGussiåsLøkseth

WSL2で-vagrantによって作成された仮想ボックスを削除し、突然vagrantを作成できなくなったという問題がありました-〜 / .vagrant.dフォルダーをWindowsのcドライブにコピーすることで修正できました- / mnt / c /その後、私は再び浮浪者を作ることができました
serup

16

VAGRANT_HOME私のWindows8.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が言ったように、それはうまくいきます。


4
Windowsのローカルパスを使用する場合は、バックスラッシュをエスケープすることを忘れないでください(これは私を捕らえました)。つまり、「D:\\ vagrant \\ home」
ゲリラ2015年

2
少なくともバージョン2.2.4では、現在は正常に機能しています。環境変数ダイアログにVAGRANT_HOMEを追加し、その値をd:\ vagrantに設定しました。これは、新しいPowerShellコンソールを閉じて開いた後は完全に正常に機能しました。
EivindGussiåsLøkseth

はい、動作します。バックスラッシュをエスケープする必要はありません。単にVAGRANT_HOME=d:\my\alternative\path。環境変数を作成した後、(コンソールを閉じて再起動するなどして)環境をリロードしなかったと思います。
デヴィッド・FerenczyRogožan

行ったことを正確に行わないでください(使用しているソフトウェアの一部であるファイルを変更しました)。Vagrantを新しいバージョンに再インストールまたはアップグレードするたびに、変更を再適用する必要があります。
デヴィッド・FerenczyRogožan

12

を実行して、これをWindowsボックスに永続的に設定すると便利な場合があります

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

1
setxアプリが配置されているパスから実行する必要があります。最も一般的なパスは次のとおりです。C:\ Windows \ System32
versedi 2015

SETXはに移動することなく実行することができるC:\Windows\System32ように、C:\Windows\System32ノーマリーオンです%path%
lucid_dreamer 2018年

5

Windowsでは、次の場所にあるenvironment.rbの17行目を変更します:
vagrant \ Embedded \ gems \ gems \ vagrant-1.xxdev \ lib \ vagrant \ environment.rb


3
なぜ私が反対票を投じられたのかわからない。これは質問に関連しています-それはLinuxとラベル付けされておらず、私と同じように誰かを助けることができました。
Storsey 2013

14
ルビーファイルをいじり回すことはまったく良いアドバイスではなく、VAGRANT_HOME環境変数もWindowsで正常に機能しています。
pagid 2013

env変数がWinで利用可能であることに気づいていませんでした..それをすぐにソートしました、ありがとう!
Storsey 2014年

1
これは有効な応答です。新しい環境変数を有効にするために、誰もがWindowsを再起動することを望んでいる(または知っている)わけではありません。誰かがコアファイルの変更を検討している場合、それは一時的なものであるか、必死になって設定されている可能性があります。 support.microsoft.com/en-us/kb/821761
TH_ 2016年

なぜ正確にWindowsを再起動する必要があるのですか?それは絶対に必要ありません。今、環境変数を作成しましたが、正常に機能しています。再起動しません。コンソールで環境をリロードするか、環境変数を作成した後に開始する必要がある場合があります。一部のソフトウェアまたはパッケージの一部であるファイルを変更しないでください。
デヴィッド・FerenczyRogožan

2

他の場所(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バージョンをアップグレードする場合は、環境変数VAGRANT_HOMEを使用するのが最善の方法だと思います。

この関数は次のように使用できます。

disk_path = self.user_data_path().to_s

これが私の好みの解決策でした。これは、vagrantファイル内でVagrant::user_data_path().to_s。として機能します。
Tomas Creemers 2017年

0

Windowsユーザーの場合、環境変数VAGRANT_HOMEを新しい場所に設定します。PCを有効にするには、PCを再起動する必要がある場合があります。


0

VAGRANT_DOTFILE_PATH環境変数のセットは、Windowsマシンで私を助けました。VAGRANT_HOMEうまくいきませんでした。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.