Vagrant는 .box 파일을 어디로 다운로드합니까?


267

다음 명령이 실행 된 후 .box 파일은 어떻게됩니까?

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

lucid32.box다운로드가 완료된 후 파일 시스템 에서 파일을 찾을 수 없습니다 .


내 마음에 떠오르는 첫 번째 것은이므로 나는 당신의 요점을 완전히 놓친 것 같습니다 sudo find / -name lucid32.box.
비이성적 인 John

정확히 내가 한 일이지만 lucid32.box이 정확한 명령을 사용하여 찾을 수 없어서 뭔가를 놓치고 있어야합니다 ...
Calvin Cheng

3
아마도 그 이름으로 존재하지 않을 것입니다. *.box어쩌면 같은 와일드 카드 검색 ? (BTW, 확장이 .vbox아닌가?)
비이성적 인 John

네, 맞아요. 검색은 *.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 및 이진 파일로 변환한다고 가정합니다. 그러나 이진 파일을 열면 파일이 다르다는 것을 알 수 있으므로 untarring 및 renaming의 단순한 문제는 아닙니다.
iconoclast 2016 년

답변:


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 2016 년

Windows OS에서 같은 장소?
Arruda

34
env var VAGRANT_HOME을 사용하여 VAGRANT_HOME = D : \. vagrant.d와 같이 .vagrant.d의 위치를 ​​지정할 수도 있습니다 (예, Windows에서도 작동).
Sven

5
에서 C:\Users\{username}\.vagrant.d\boxes의 창, 난 단지 발견 된 .vmdk파일이 아니라을 .box!
Bilal

76

Mac / Linux 시스템에서 성공적으로 다운로드 된 상자는 다음 위치에 있습니다.

~/.vagrant.d/boxes

실패한 상자는 다음 위치에 있습니다.

~/.vagrant.d/tmp

Windows 시스템에서 사용자 폴더 아래에 있습니다.

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

이것이 도움이되기를 바랍니다. 감사


10
이것이 왜 다운 보트인지 확실하지 않습니다. 실패한 다운로드 대상에 대한 정보가 유용했습니다.
Alex Coventry

~/.vagrant.d/boxes.box 파일 자체는 저장하지 않고 내용 만 저장하십시오. ~/.vagrant/tmp다운로드하는 동안 .box를 임시로 저장하는 데 사용되지만 Vagrant 내에 설치하면 삭제됩니다.
Luke Peterson

(Windows 용) 세 번째 줄 수 있어야%userprofile%\.vagrant.d\boxes
J. 스콧 Elblein

이 답변은 실제로 하드 디스크 공간에 관심이있는 경우에 해당합니다.
kiltek


20

.box다운로드 및 박스 설치가 완료되면 Vagrant가 실제 파일을 삭제합니다. 다른 답변에서 언급했듯이 다운로드하는 동안 .box 파일은 다음과 같이 저장됩니다.

~/.vagrant.d/tmp/boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

여기서 파일 이름은 'box'다음에 40 바이트 16 진 해시입니다. 예를 들어 내 시스템의 임시 파일은 다음과 같습니다.

~/.vagrant.d/tmp/boxc74a85fe4af3197a744851517c6af4d4959db77f

내가 알 수있는 한이 파일은 *.box확장명으로 저장되지 않으므로 위의 검색에서 파일 을 찾지 못한 이유를 설명합니다. 실제 상자 파일을 검색하는 방법에는 두 가지가 있습니다.

  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. 예를 들어 직접 호스팅 config.vm.box_url하고 URL을 가리키는 등 .box를 원하는대로 사용하십시오 . 또는
  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함수 내에 다음과 같은 블록이 있습니다.

      sure # 임시 파일을 추가 한 후 삭제하지 않아야합니다. # 중단되지 않는 한,이 파일을 그대로두면 나중에 다운로드를 다시 시작할 수 있습니다. if! @download_interrupted @ logger.debug ( "임시 박스 삭제 : # {box_url}") box_url을 구출하면 box_url.delete를 시작합니다 Errno :: ENOENT # 큰일이 아니라면 임시 파일이 실제로 존재하지 않을 수 있습니다.

    3. 이 블록을 주석 처리하십시오.
    4. 을 사용하여 다른 상자를 추가하십시오 vagrant add box <boxname>.
    5. 다운로드 될 때까지 기다리십시오. ~/.vagrant.d/tmp/디렉토리에 boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX파일로 저장된 것을 볼 수 있습니다 .
    6. 파일을보다 유용한 것으로 바꾸십시오. 예, mv boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX trusty64.box.

왜 이것을 원하십니까?

나에게 이것은 .box 파일을 검색하는 데 도움이되었으므로 HashiCorp의 Atlas 박스 카탈로그 또는 다른 박스 공급자 에서 다운로드하는 대신 로컬의 빠른 인프라에서 호스팅 할 수 있습니다 .

이것은 매우 명확한 유스 케이스를 가지고 있기 때문에 기본 Vagrant 기능의 일부 여야합니다.


상자 폴더의 하위 폴더를 압축하거나 압축하여 설치 가능한 상자 파일을 만들 수 있습니까?
ThorSummoner 2016 년

@ThorSummoner 네, 그러나 그런 경우, 예를 들어 docs.vagrantup.com/v2/cli/package.htmlvagrant package 명령을 통해 Vagrant가 처리하도록 할 수 있습니다 .
Luke Peterson

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

필요한 모든 상자를 다운로드하여 성공적으로 다운로드했습니다. 도움이 되길 바랍니다.


이것은 위대한 발견입니다! 감사합니다. ;)
Luke Peterson

링크가 끊어졌습니다. 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

윈도우 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.