[virtual-machine] Vagrant는 .box 파일을 어디로 다운로드합니까?

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

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

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



답변

docs 에서 언급했듯이 상자는 다음 위치에 저장됩니다.

  • Mac OS X 및 Linux : ~/.vagrant.d/boxes
  • 윈도우 : C:/Users/USERNAME/.vagrant.d/boxes

답변

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

~/.vagrant.d/boxes

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

~/.vagrant.d/tmp

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

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

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


답변

경로를 변경하려면 이름이 VAGRANT_HOME 인 환경 변수에 대한 새 경로를 설정할 수 있습니다.

export VAGRANT_HOME=my/new/path/goes/here/

다른 HDD에 그 방랑 이미지를 갖고 싶다면 좋을 것입니다.

자세한 내용은 설명서를 참조하십시오 : http://docs.vagrantup.com/v2/other/environmental-variables.html


답변

.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 기능의 일부 여야합니다.


답변

@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

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


답변

Windows에서는 위치를 찾을 수 있습니다. 나는 이것에 대한 인터넷상의 문서를 찾지 못했고 이것은 나에게 명백하지 않았다.

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


답변

이외에

Mac:
~/.vagrant.d/

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

VirtualBox / OtherVMprovider에서 파일을 삭제하여 새로 시작해야합니다.