Где Vagrant загружает свои файлы .box?

Что происходит с файлом .box после выполнения следующей команды?

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

Я не могу найти файл lucid32.box в файловой системе после завершения загрузки.

Ответ 1

Как упоминалось в документах, ящики хранятся по адресу:

  • Mac OS X и Linux: ~/.vagrant.d/boxes
  • Windows: C:/Users/USERNAME/.vagrant.d/boxes

Ответ 2

В Mac/Linux System успешно загруженные боксы расположены по адресу:

~/.vagrant.d/boxes

и неудачные поля расположены по адресу:

~/.vagrant.d/tmp

В системах Windows он находится в папке "Пользователи":

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

Надеюсь, это поможет. Благодаря

Ответ 3

Чтобы изменить Путь, вы можете установить новый Путь к Enviroment-Variable с именем: VAGRANT_HOME

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

Это может быть приятно, если вы хотите иметь эти бродячие-изображения на другом жестком диске.

Дополнительная информация здесь, в документах: http://docs.vagrantup.com/v2/other/environmental-variables.html

Ответ 4

Фактический .box файл удаляется Vagrant после завершения загрузки и установки окна. Как упоминалось в других ответах, при загрузке файл .box хранится как:

~/.vagrant.d/tmp/boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

где имя файла является "полем", за которым следует 40-байтовый шестнадцатеричный хеш. Например, временный файл в моей системе:

~/.vagrant.d/tmp/boxc74a85fe4af3197a744851517c6af4d4959db77f

Насколько я могу судить, этот файл никогда не сохраняется с расширением *.box, что объясняет, почему поисковые запросы не смогли найти его. Существует два способа получить фактический файл окна:

  • Загрузите файл .box с сайта vagrantcloud.com

  • Получить .box прямо из Vagrant

    Это требует, чтобы вы изменили источник рубинов, чтобы не допустить, чтобы Vagrant удалил поле после успешной загрузки.

    • Найдите файл box_add.rb в папке установки Vagrant. В моей системе он находился в /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.2/lib/vagrant/action/builtin/box_add.rb
    • Найдите функцию box_add. Внутри функции box_add есть блок, который гласит:

      обеспечить   # Удостоверьтесь, что мы удаляем временный файл после его добавления,   #, если мы не были прерваны, и в этом случае мы сохраняем их   #, поэтому мы можем возобновить загрузку позже.   если! @download_interrupted     @logger.debug( "Удаление временного поля: # {box_url}" )     начать       box_url.delete, если box_url     спасения Errno:: ENOENT       # Неважно, временный файл, возможно, не существует     конец   конец

    • Отметьте этот блок.
    • Добавьте еще один флажок, используя vagrant add box <boxname>.
    • Дождитесь загрузки. Вы можете сохранить его в каталоге ~/.vagrant.d/tmp/ как файл boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
    • Переименуйте файл в нечто более полезное. Например, mv boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX trusty64.box.

Зачем вам это нужно?

Для меня это было полезно для извлечения файла .box, чтобы он мог размещаться на локальной, быстрой инфраструктуре, а не на загрузку из HashiCorp Atlas box catalog или другой поставщик пакетов.

Это действительно должно быть частью функциональности Vagrant по умолчанию, поскольку она имеет очень окончательный вариант использования.

Ответ 5

@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

Я пробовал и успешно загружал все необходимые мне коробки. Надеюсь, что поможет.

Ответ 6

В Windows это место можно найти здесь. Я не нашел в Интернете никакой документации для этого, и мне это не сразу стало очевидным:

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

Ответ 7

В дополнение к

Mac:
~/.vagrant.d/

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

Вы должны удалить файлы в VirtualBox/OtherVMprovider, чтобы начать все сначала.

Ответ 8

В Windows 10 с Vagrant 2.2.2 установка переменной среды VAGRANT_HOME обеспечит загрузку ящиков в подпапку папки, указанной для VAGRANT_HOME.

В моем случае я установил VAGRANT_HOME на e:\vagrant_home, и ящики будут храниться в папке e:\vagrant_home\boxes.

Это работает для меня.

Это где коробки хранятся. Виртуальные машины создаются в папке, настроенной в Virtual Box. Чтобы установить папку для хранения VirtualBox VM, перейдите в: VirtualBox GUI --> File --> Preferences --> General --> Default Machine Folder.