本人已下載家園箱第三時間,使用vagrant box add laravel/homestead。我目前無法訪問快速上網,所以每次都下載它非常麻煩。是否有辦法再次使用下載的軟件包,並將本地軟件包包含在流浪漢中,如果項目或同步位置得到保留,它的劑量就很重要。如何複製流浪箱以便再次使用
我在Ubuntu機器上,如果有關係。
更新:我需要下載的Homestead盒子,這樣如果我的機器出現故障,或者我必須將其安裝在沒有/慢互聯網連接的地方,我可以在本地執行此操作。
本人已下載家園箱第三時間,使用vagrant box add laravel/homestead。我目前無法訪問快速上網,所以每次都下載它非常麻煩。是否有辦法再次使用下載的軟件包,並將本地軟件包包含在流浪漢中,如果項目或同步位置得到保留,它的劑量就很重要。如何複製流浪箱以便再次使用
我在Ubuntu機器上,如果有關係。
更新:我需要下載的Homestead盒子,這樣如果我的機器出現故障,或者我必須將其安裝在沒有/慢互聯網連接的地方,我可以在本地執行此操作。
一個更好的辦法來做到這一點是:
Vagrant init
vagrant package --output mynew.box
你將得到一個箱子打包到mynew目錄.box文件,您甚至可以複製並與其他開發人員共享。在我看來,在網速較慢的情況下,這非常有用。
哦,這很容易。
要將當前安裝的文件包打包回.box文件(同時將其保存在系統中),只需使用vagrant box list
即可找到文件夾名稱,提供程序和版本。
然後使用vagrant box repackage <name> <provider> <version>
,它會將它打包到一個名爲package.box的文件中。
希望這可以幫到!
只是爲了補充@thecodethinker答案。
當我申請建議的命令:
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
通常一旦你使用了'箱add'一旦你可以使用'vagrant init'創建一個具有相同基本框的新實例。你爲什麼不這樣做? –
benbot
2014-10-18 01:43:26
@thecodethinker也許我無法解釋它,我需要下載的Homestead盒子,這樣如果我的機器出現故障,或者我必須將其安裝在沒有/慢互聯網連接的地方,我可以在本地執行此操作。 – 2014-10-18 01:46:46