ホームディレクトリが実際にはリモートサーバーにあり、〜/ .vagrant.dがそのサーバーにあると、vagrantのパフォーマンスが大幅に低下する(ファイルサーバーのバックアップサイズが大きくなる)という問題があります。
では、少なくとも〜/ vagrant.d / boxesをホームディレクトリから移動する方法はありますか?
乾杯。
回答:
デフォルトでは、Vagrantはを使用し~/.vagrant.d
ます。幸い、vagrantは、vagranthomeを設定するために呼び出さVAGRANT_HOME
れる環境変数を提供します。
放浪者の家を変更するには、次の手順を実行します(これは現在のセッションでのみ機能します)
export VAGRANT_HOME=/path/to/vagrant
永続的にするには、これを~/.bash_profile
(ログインシェル用に)に追加します。
更新:VAGRANT_HOME
ドキュメントに追加されました-環境変数
VAGRANT_HOME
Vagrantがグローバル状態を保存するディレクトリを変更するように設定できます。デフォルトでは、これはに設定されてい~/.vagrant.d
ます。Vagrantホームディレクトリはボックスなどが保存される場所であるため、実際にはディスク上でかなり大きくなる可能性があります。
~/.bash_profile
する場合(またはでZSHを使用する場合~/.zshrc
など)、必ず記述export
してください。env
コマンドラインでで設定されているかどうかを確認します。virtualboxをプロバイダーとして使用する場合、GUIにはデフォルトパスの設定もあります。
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が言ったように、それはうまくいきます。
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バージョンをアップグレードする場合は、環境変数VAGRANT_HOMEを使用するのが最善の方法だと思います。
この関数は次のように使用できます。
disk_path = self.user_data_path().to_s
Vagrant::user_data_path().to_s
。として機能します。