Как скопировать бродячий бокс для повторного использования
Я загрузил Homestead box thrid time в этом месяце, используя бродячий бокс, добавив laravel/homestead. В настоящее время у меня нет доступа к быстрому интернету, поэтому его очень раздражает, чтобы скачивать его каждый раз. Есть ли способ снова использовать загруженный пакет и включить локальный пакет в бродяжничестве, он имеет значение, если проекты или синхронизированные местоположения сохранены или нет.
Я на машине Ubuntu, если это имеет значение.
Обновление: мне нужен загруженный ящик Homestead, чтобы, если моя машина опустилась, или мне нужно установить ее где-то еще без подключения к интернету, я могу сделать это локально.
Ответы
Ответ 1
Лучший способ сделать это:
- Просто перейдите в каталог, в котором вы выполнили
Vagrant init
- Сделайте
vagrant package --output mynew.box
Вы получите коробку, упакованную в файл mynew.box, который вы даже можете скопировать и поделиться с другими разработчиками. Это очень полезно, на мой взгляд, где у вас медленная скорость интернета.
Ответ 2
О, это очень легко.
Чтобы упаковать установленный вами ящик обратно в файл .box(при сохранении его в вашей системе), просто используйте vagrant box list
, чтобы найти имя поля, поставщика и версию.
Затем используйте vagrant box repackage <name> <provider> <version>
, и он упакует его в файл с именем package.box.
Надеюсь, что это помогло!
Ответ 3
Просто чтобы дополнить @thecodetinker ответ.
Когда я применил предложенную команду:
vagrant box list
и
vagrant box repackage <name> <provider> <version>
Произошло следующее:
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'laravel/homestead' could not be found. Attempting to find and install...
default: Box Provider: virtualbox
default: Box Version: >= 0.4.0
==> default: Loading metadata for box 'laravel/homestead'
default: URL: https://atlas.hashicorp.com/laravel/homestead
==> default: Adding box 'laravel/homestead' (v0.5.0) for provider: virtualbox
default: Downloading: https://atlas.hashicorp.com/laravel/boxes/homestead/versions/0.5.0/providers/virtualbox.box
Как вы можете видеть, он не распознал package.box
и пытается загрузить из Интернета. Если вы посмотрите внимательно выше, вы увидите, что ищет box version >= 0.4.0
.
Это результат vagrant box list
:
laravel/homestead (virtualbox, 0)
Потому что окно было добавлено вручную. Метаданные ящика не были доступны, и по умолчанию она будет установлена на 0.
Чтобы устранить проблему, создайте metadata.json
:
{
"name": "laravel/homestead",
"versions": [{
"version": "0.4.0",
"providers": [{
"name": "virtualbox",
"url": "file://package.box"
}]
}]
}
Поскольку теперь у нас есть правильные метаданные, вы можете сделать:
vagrant box add metadata.json