Chỉ để bổ sung @thecodethinker câu trả lời.
Khi tôi áp dụng các lệnh gợi ý:
vagrant box list
và
vagrant box repackage <name> <provider> <version>
Sau đây xảy ra:
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
Như bạn có thể thấy, nó không nhận ra package.box
và đang cố tải xuống từ internet. Nếu bạn nhìn kỹ hơn bạn có thể thấy rằng đang tìm kiếm box version >= 0.4.0
.
Đây là kết quả của vagrant box list
:
laravel/homestead (virtualbox, 0)
Bởi vì hộp đã được bổ sung bằng tay. Siêu dữ liệu hộp không có sẵn và theo mặc định, nó sẽ đặt phiên bản thành 0.
Để khắc phục vấn đề này, tạo ra một metadata.json
:
{
"name": "laravel/homestead",
"versions": [{
"version": "0.4.0",
"providers": [{
"name": "virtualbox",
"url": "file://package.box"
}]
}]
}
Bởi vì bây giờ chúng tôi có một siêu dữ liệu thích hợp, bạn có thể làm:
vagrant box add metadata.json
Nguồn
2016-10-02 22:19:05
Thông thường khi bạn sử dụng 'hộp add' khi bạn chỉ có thể sử dụng 'vagrant init' để tạo một cá thể mới với cùng một hộp cơ sở. Tại sao bạn không làm điều đó? –
benbot
@thecodethinker Có lẽ tôi không thể giải thích, tôi cần hộp Homestead đã tải xuống để máy của tôi bị hỏng hoặc tôi phải cài đặt ở nơi khác mà không có kết nối internet chậm, tôi có thể thực hiện tại địa phương. –