Vagrantはどこに.boxファイルをダウンロードしますか?


267

次のコマンドを実行した後、.boxファイルはどうなりますか?

vagrant box add lucid32 http://files.vagrantup.com/lucid32.box

lucid32.boxダウンロードが完了した後、ファイルシステムでファイルが見つかりません。


私の頭に浮かぶ最初のことはなので、私はあなたの主張を完全に逃していると思いますsudo find / -name lucid32.box
不条理なジョン

正確には私がしたことですが、lucid32.boxこの正確なコマンドを使用して見つけることができなかったため、何かが欠けているに違いありません...
Calvin Cheng

3
おそらく、その名前では存在しません。*.box多分などのワイルドカード検索?(ところで、拡張子はそうではないでしょう.vboxか?)
不合理なジョン

はい、あなたは正しいです。検索は*.vboxおよびである必要がありnot *.boxます。謎解きました。:-)回答を入力して、受け入れられるようにしますか?どうも!
Calvin Cheng

1
@CalvinCheng:tarアーカイブ内の.vboxイメージだけだと誤解していると思います。確かにtarアーカイブですが、box-disk1.vmdk、box.ovf、Vagrantfileなどのファイルが含まれています。それらがVirtualBoxが使用するファイルを作成するためにどのように使用されるかは正確にはわかりませんが、VBの.vboxファイルを開くと、それは単なるXMLであることがわかります。私は、Vagrantがそのファイル(バイナリファイルとXMLファイル、およびVagrantfile)をVirtualBoxで使用されるXMLファイルとバイナリファイルに変換すると想定しています。ただし、バイナリファイルを開くと、ファイルが異なることがわかるので、解凍して名前を変更するだけのことではありません。
iconoclast 2012年

回答:


397

docsで述べたように、ボックスは次の場所に格納されています:

  • Mac OS XおよびLinux: ~/.vagrant.d/boxes
  • ウィンドウズ: C:/Users/USERNAME/.vagrant.d/boxes

1
ああ。説明をありがとう。ドキュメントでその説明を逃したので、私は盲目でなければなりません。
Calvin Cheng

1
@manojlds:質問に関する私のコメントを参照してくださいre:.vboxファイル。それ自体はVMではなく、単なるXMLファイルです。
iconoclast

Windows OSの同じ場所?
アルーダ2013

34
env var VAGRANT_HOMEを使用して、VAGRANT_HOME = D:\。vagrant.dのように.vagrant.dの場所を指定することもできます(はい、Windowsでも機能します)。
2014年

5
C:\Users\{username}\.vagrant.d\boxes窓の上に、私だけ見つから.vmdkファイルではありません.box
ビラル

76

Mac / Linuxシステムでは、正常にダウンロードされたボックスは次の場所にあります。

~/.vagrant.d/boxes

失敗したボックスは次の場所にあります。

~/.vagrant.d/tmp

Windowsシステムでは、Usersフォルダーの下にあります。

C:\Users\%userprofile%\.vagrant.d\boxes

これがお役に立てば幸いです。ありがとう


10
なぜこれが反対投票されたのかわかりません。失敗したダウンロードの宛先に関する情報は役に立ちました。
Alex Coventry、

~/.vagrant.d/boxes.boxファイル自体を保存するのではなく、単に内容を保存します。 ~/.vagrant/tmpダウンロード中に一時的に.boxを保存するために使用されますが、Vagrant内にインストールすると削除されます。
ルークピーターソン

(Windows用)第三行はなければなりません%userprofile%\.vagrant.d\boxes
J.スコットElblein

この回答は、実際にハードディスクの空き容量を気にする場合のためのものです。
kiltek


20

実際の.boxファイルは、ダウンロードとボックスのインストールが完了すると、Vagrantによって削除されます。他の回答で述べたように、ダウンロード中、.boxファイルは次のように保存されます。

~/.vagrant.d/tmp/boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

ここで、ファイル名は「ボックス」で、その後に40バイトの16進数ハッシュが続きます。たとえば、私のシステムの一時ファイルは次のとおりです。

~/.vagrant.d/tmp/boxc74a85fe4af3197a744851517c6af4d4959db77f

私の知る限り、このファイルは*.box拡張子を付けて保存されることはありません。このため、上記の検索でファイルを見つけることができませんでした。実際のボックスファイルを取得するには、2つの方法があります。

  1. vagrantcloud.comから.boxファイルをダウンロードします

    1. アトラスで興味のある箱を見つけます。たとえば、 https://atlas.hashicorp.com/ubuntu/boxes/trusty64/versions/20150530.0.1
    2. ドメイン名をに置き換えますvagrantcloud.com。したがって、https://atlas.hashicorp.com/ubuntu/boxes/trusty64/versions/20150530.0.1はhttps://vagrantcloud.com/ubuntu/boxes/trusty64/versions/20150530.0.1/providers/virtualbox.boxに なります
    3. /providers/virtualbox.boxそのURLの最後に追加します。したがって、 https://vagrantcloud.com/ubuntu/boxes/trusty64/versions/20150530.0.1はhttps://vagrantcloud.com/ubuntu/boxes/trusty64/versions/20150530.0.1/providers/virtualbox.boxになります
    4. .boxファイルを保存する
    5. 必要に応じて.boxを使用しconfig.vm.box_urlます。たとえば、自分でホストし、URL をポイントします。または
  2. Vagrantから直接.boxを取得する

    これには、ダウンロードが成功した後でVagrantがボックスを削除しないようにルビソースを変更する必要があります。

    1. Vagrantインストールディレクトリでbox_add.rbファイルを見つけます。私のシステムでは次の場所にあります/Applications/Vagrant/embedded/gems/gems/vagrant-1.5.2/lib/vagrant/action/builtin/box_add.rb
    2. box_add関数を見つけます。box_add関数内には、次のようなブロックがあります。

      確認#一時ファイルを追加した後に削除することを確認します。中断されない限り#中断されないようにします。#後でダウンロードを再開できるようにします。if!@download_interrupted @ logger.debug( "Deleting temporary box:#{box_url}")begin box_url.delete if box_url rescue Errno :: ENOENT#大したことではないので、一時ファイルは実際には存在しないかもしれませんend end

    3. このブロックをコメントアウトします。
    4. を使用して別のボックスを追加しますvagrant add box <boxname>
    5. ダウンロードが完了するまで待ちます。あなたはそれを~/.vagrant.d/tmp/ディレクトリに保存するのを見ることができますboxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXファイルます。
    6. ファイルの名前をよりわかりやすい名前に変更します。例えば、mv boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX trusty64.box

なぜこれが欲しいのですか?

私にとって、これは.boxファイルを取得して、HashiCorpのAtlasボックスカタログ別のボックスプロバイダーからダウンロードするのではなく、ローカルの高速インフラストラクチャでホストできるようにするのに役立ちました

非常に明確なユースケースがあるため、これはデフォルトのVagrant機能の一部になるはずです。


インストール可能なボックスファイルを作成するために、boxsフォルダー内のサブフォルダーをいいね、zipまたはtarすることは可能ですか?
ThorSummoner 2015年

@ThorSummonerはい。ただし、その場合は、たとえばdocs.vagrantup.com/v2/cli/package.htmlvagrant packageコマンドを使用して、Vagrantで処理することもできます。
ルークピーターソン2015年

15

@Luke Peterson:.boxファイルを取得する簡単な方法があります。

ちょうどに行くhttps://atlas.hashicorp.com/boxes/search、あなたがダウンロードしたいボックスを検索します。ボックスのURLに注意してください。例:

https://atlas.hashicorp.com/ ubuntu / boxes / trusty64 / versions / 20150530.0.1

次に、次のようなURLを使用してこのボックスをダウンロードできます。

https://vagrantcloud.com/ ubuntu / boxes / trusty64 / versions / 20150530.0.1 /providers/virtualbox.box

必要なすべてのボックスを試し、正常にダウンロードしました。お役に立てば幸いです。


これは素晴らしい発見です!ありがとうございました。;)
ルークピーターソン2015年

リンクは現在壊れています-app.vagrantup.comに置き換える必要があります。
RtmY

6

Windowsでは、場所はここにあります。これに関するドキュメントはインターネット上で見つかりませんでしたが、すぐにはわかりませんでした。

C:\Users\\{username}\\.vagrant.d\boxes


次に、%userprofile%\。vagrant.d \ boxesは機能しますか?%userprofile%はc:\ users \ {username}に展開されます
TamusJRoyce

2

に加えて

Mac:
~/.vagrant.d/

Windows:
C:\Users\%userprofile%\.vagrant.d\boxes

クリーンスタートを行うには、VirtualBox / OtherVMprovider内のファイルを削除する必要があります。


0

のWindows 10ベイグラント2.2.2、環境変数を設定すると、VAGRANT_HOMEボックスがために指定したフォルダのサブフォルダにダウンロードされていることを確認しますVAGRANT_HOME

私の場合、私はに設定VAGRANT_HOMEe:\vagrant_home、ボックスは下に保存されますe:\vagrant_home\boxesます。

これは私にとってはうまくいきます。

これがボックスが格納される場所です。仮想マシンは仮想ボックスで設定したフォルダ内に作成されています。VirtualBox VMストレージフォルダを設定するには、次の場所に移動しますVirtualBox GUI --> File --> Preferences --> General --> Default Machine Folder

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