Lỗi khi cố gắng lên


227

Tôi đang sử dụng Vagrant cho môi trường của mình và tôi đã gặp một vấn đề nhỏ:

$vagrant up

Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'base' could not be found. Attempting to find and install...
    default: Box Provider: virtualbox
    default: Box Version: >= 0
==> default: Adding box 'base' (v0) for provider: virtualbox
    default: Downloading: base

An error occurred while downloading the remote file. The error
message, if any, is reproduced below. Please fix this error and try
again.

Couldn't open file /Users/.../base

Tôi đã khởi tạo dự án của mình với vagrant initnhưng vì một số lý do vagrant uptừ chối làm việc.


1
Vấn đề tôi gặp phải khi gặp lỗi này là tôi đã không cdvào thư mục dự án của mình
Connor Leech

Câu trả lời:


269

Có vẻ như bạn có thể đã tạo ra một dự án Vagrant chỉ với vagrant init. Điều đó sẽ tạo Vagrantfile của bạn, nhưng nó sẽ không có hộp được xác định.

Thay vào đó, bạn có thể thử

$ vagrant init hashicorp/precise32
$ vagrant up

trong đó sử dụng một hình ảnh Ubuntu tiêu chuẩn. Trang web Vagrant có Bắt đầu cung cấp một số ví dụ hay.


19
Gar, chính là nó. Tại sao nó nói "Bây giờ bạn đã sẵn sàng cho vagrant upmôi trường ảo đầu tiên của bạn!" sau đó??
Matt

@Matt - Có lẽ vì bạn có thể chỉnh sửa thủ công vagrantfile và đặt hộp nào sẽ sử dụng?
Cyclonecode

5
Nếu bạn đã hoàn thành vagrant initvagrant box addriêng biệt, bạn có thể chỉnh sửa Vagrantfile và đặt config.vm.box thành "hashicorp / precision32" hoặc bất kỳ hộp nào bạn muốn sử dụng.
Toby

1
Tôi đồng ý - vagrant rất tiện dụng, nhưng trải nghiệm người dùng đầy bẫy bẫy rất dễ rơi vào.
James

1
Cảm ơn bạn, câu trả lời của bạn đã giúp tôi!
yohannan_sobin

101

Nếu bạn đang sử dụng OS X và sử dụng cài đặt tiêu chuẩn, hãy xóa bản curl cũ của vagrant và nó sẽ hoạt động

sudo rm /opt/vagrant/embedded/bin/curl


5
Cảm ơn, điều này đã giải quyết nó cho tôi là tốt. +1 phiếu bầu :)
Akko Van Ettinger

7
Đây cố định vấn đề của tôi trên mac trong khi làm việc với các hộp địa phương và từ xa
DWils

8
Tại sao trên trái đất nó nhúng curl ?
Benjamin R

3
Các -rflá cờ là một chút quá mức cần thiết ở đây. Chỉ cần sudo rm /opt/vagrant/embedded/bin/curllà đủ. Bạn nên cố gắng tránh sử dụng -r(= đệ quy để di chuyển xuống các thư mục) và -f(= lực lượng mà không có bất kỳ câu hỏi nào) khi chúng không thực sự cần thiết. Chúng là một công cụ mạnh mẽ và nguy hiểm, đặc biệt là kết hợp với sudo ...
Arvid

Điều này làm việc cho tôi bằng cách sử dụng Vagrant 1.8.7 được cài đặt với brew cask install vagrant. Tệp hộp tương tự hoạt động tốt với cùng phiên bản Vagrant trên Ubuntu 16.04.
RichVel

89
vagrant init laravel/homestead

và sau đó

vagrant up

Là những gì làm việc cho tôi.


4
Hoàn hảo ! Cảm ơn bạn ! Nếu ai đó có thể giải thích cho tôi tại sao điều này xảy ra tôi sẽ vui mừng :)
Baldráni

1
Bạn cần chỉ định một loại hộp hợp lệ. Dưới đây là một số loại hộp hợp lệ: atlas.hashicorp.com/boxes/ từ
duhaime

1
Cảm ơn, nó đã khiến tôi phát điên. lời chào từ Chile
Cristian Meza

1
sử dụng - Force with initrant init nếu đã có vagrantfile
Chuck

cả hai câu trả lời trên đều khắc phục vấn đề của tôi. đầu tiên xóa thư mục 'curl' sudo rm /opt/vagrant/embedded/bin/curlsau đó chạy vagrant init laravel/homesteadvà sau đóvagrant up
Wei Lu

44

Điều này xảy ra do có một tệp tin không có tên hộp xác định. điều này xảy ra khi bạn chạy init vagrant với tham số tên hộp.

Vì vậy, bạn phải xóa tập tin Vagrant sau đó

vagrant init box-title
vagrant up

Tôi hy vọng điều này có thể giúp!


Danh sách các hộp có sẵn ở đây
Aleksey Potapov

Câu trả lời này đã cứu tôi khỏi vòng lặp 3 tháng vì không biết điều đó, cảm ơn bạn (tôi đang ở trên cửa sổ 7)
adam

22

làm việc với tôi đây là các bước sau:

  • cd homestead (trong thư mục homestead thư mục của bạn) HOẶC cd Homestead
  • del vagrantfile hoặc là rm -Rf Vagrantfile
  • vagrant init laravel/homestead
  • vagrant up

17

Vui lòng chạy cái này trong terminal của bạn:

$ vagrant box list

Bạn sẽ thấy một cái gì đó như laravel/homestead(virtualbox,x.x.x)

Tiếp theo xác định vị trí của bạn Vagrantfilevà xác định dòng nói

config.vm.box = "box"

thay thế boxbằng tên hộp khi bạn chạy vagrant box list.


Lưu ý rằng "Vagrantfile" nằm ở: C: \ Users \ YourUsername nếu bạn đang sử dụng Windows.
egdavid

Điều đó đã giải quyết nó cho tôi vì hình ảnh hộp của tôi được đề cập trong .k Kitchen.yml không còn khả dụng nữa. Khó khăn.
min hundje

16

nếu "Vagrantfile" already exists in this directory. Remove it before running "vagrant init". lỗi hiển thị thì

1. rm Vagrantfile
2. vagrant init hashicorp/precise64
3. vagrant up

1
==> mặc định: Không thể tìm thấy hộp 'hashicorp / precision64'. Cố gắng tìm và cài đặt ... Điều này cho phép cài đặt từ xa, đây là điều tôi thích nhất. Tôi đang chạy trên VirtualBox Windows Host với máy khách
Ubuntu14

1
Điều này làm việc cho tôi. Vì vậy, vấn đề là khi bạn làm vagrant init, người mặc định mặc định đặt tên "hộp" của bạn trong Vagrantfile thành "cơ sở"? Và để làm việc đó, bạn phải chỉ định tên hộp Vagrant không mặc định?
Denialos

15

Tôi biết điều này là cũ, nhưng tôi đã nhận được chính xác cùng một lỗi. Hóa ra tôi đã bỏ lỡ bước này rõ ràng trong tài liệu .

Tôi cần chỉnh sửa Vagrantfileđể đặt config.vm.boxbằng với hình ảnh tôi đã tải xuống , hashicorp/precise32. Theo mặc định, nó được đặt thành base.

Đây là những gì tài liệu nói:

Bây giờ hộp đã được thêm vào Vagrant, chúng tôi cần định cấu hình dự án của chúng tôi để sử dụng nó làm cơ sở. Mở Vagrantfile và thay đổi nội dung như sau:

Vagrant.configure("2") do |config|
  config.vm.box = "hashicorp/precise32"
end

Nó giúp. Tôi đang sử dụng "initrant init", lỗi xuất hiện. Sau khi chỉ định "hashicorp / precision32", mọi thứ có vẻ ổn.
yuyue007

Bước này là trong tài liệu chính thức nhưng hãy xem có bao nhiêu tác giả trả lời câu hỏi này không bao gồm nó.
jmdeamer

10

Dường như có điều gì đó không ổn với chương trình curl nhúng trong Vagrant. Theo lời khuyên ở trên, tôi chỉ đổi tên nó (chỉ trong trường hợp tôi muốn nó trở lại) và vagrant upbắt đầu làm việc như mong đợi.

Trên máy mac của tôi:

♪ .vagrant.d sudo mv /opt/vagrant/embedded/bin/curl /opt/vagrant/embedded/bin/curlOLD Password:


1
Trong khi tôi không chắc điều này có trả lời được câu hỏi ban đầu không, nó đã giúp tôi. Đi sâu vào nó một chút nữa tôi đã chạy lệnh curl nhúng và nhận đượcdyld: Library not loaded: @rpath/libcurl.4.dylib Referenced from: /opt/vagrant/embedded/bin/curl_old Reason: Incompatible library version: curl_old requires version 9.0.0 or later, but libcurl.4.dylib provides version 7.0.0
tapi

1
Tôi gặp vấn đề tương tự với Vagrant 1.8.7 trên OSX. Ở trên đã làm việc.
Janaka

6

tôi cũng gặp lỗi này Tôi nghĩ rằng đó là vì tôi đã không cung cấp box_url ..

vagrant init precise64 http://files.vagrantup.com/precise64.box

1
Thêm config.vm.box_url = "http://files.vagrantup.com/precise64.box"vào Vagrantfile của tôi đã sửa nó cho tôi.
millerdev

4

tốt, thực sự bạn phải làm:

vagrant up laravel/homestead

bởi vì theo hướng dẫn của homestead bạn vừa tải xuống: http://laravel.com/docs/5.0/homestead bởi:

vagrant box add laravel/homestead

vì vậy bạn phải khởi chạy hộp bạn muốn sử dụng - không phải một số hình ảnh ubfox ngẫu nhiên;)


4

Với tôi, tôi gặp lỗi khi chạy vagrant up(Tôi đã sử dụng Macbook pro, Mac OS: 10.12.1):

An error occurred while downloading the remote file. The error message, if any, is reproduced below. Please fix this error and try again. Couldn't open file...

Tôi đã cố gắng để xóa Vagrantfiletrong thư mục của tôi và chạy:

vagrant init hashicorp/precise64

sau đó:

vagrant up

Nó có thể giải quyết vấn đề của tôi. Hy vọng điều này có thể giúp cho một người phải đối mặt với cùng một vấn đề.


1
Tôi đã thử tất cả những điều đó nhiều lần. Điều duy nhất làm việc là đổi tên curl. (Mac OS 10.12)
Vicky T

1
Làm việc cho tôi cũng trên PC chạy windows 10
Jay Julian Payne

4

Tôi gặp vấn đề tương tự khi tôi chạy theo lệnh

vagrant init
vagrant up  
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'base' could not be found. Attempting to find and install...
    default: Box Provider: virtualbox
    default: Box Version: >= 0
==> default: Box file was not detected as metadata. Adding it directly...
==> default: Adding box 'base' (v0) for provider: virtualbox
    default: Downloading: base
An error occurred while downloading the remote file. The error
message, if any, is reproduced below. Please fix this error and try
again.

Couldn't open file /home/...../base

Tôi đã sửa

>vagrant init laravel/homestead
>Vagrant up

Nó làm việc cho tôi.

Chúc mừng mã hóa



1

Trong trường hợp, bạn đã thêm một hộp và bắt đầu tải xuống nhưng bị gián đoạn quá trình tải xuống đó, đi đến ~/.vagrant.d/tmp/và xóa tệp tải xuống một phần, sau đó thử lại.


1

Tôi đã giải quyết vấn đề này bằng cách vào thư mục .vagrant.d/boxes/dưới nhà của bạn và đổi tên thư mục từ laravel-VAGRANTSLASH-homesteadthành base. Và nó đã làm việc cho tôi.

Vui lòng kiểm tra nếu ảo hóa được kích hoạt trong BIOS của bạn.


bạn nên chạy "vagrant init laravel-VAGRANTSLASH-homestead"
Gil Margolin

1

bạn cũng có thể chỉ cần thêm vm vào máy của bạn

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

1

Bước đầu tiên và quan trọng nhất trước khi bắt đầu Vagrant là, kiểm tra xem tất cả các hộp có trong hệ thống của bạn. Sử dụng lệnh này để có được danh sách các hộp có sẵn.

vagrant box list

Sau đó chuyển sang quy trình tiếp theo, chọn một hộp cụ thể

vagrant init ubuntu/trusty64 (Tôi đã chọn ubfox / trusty64)

sau đó,

vagrant up

LƯU Ý: Sẽ thật tuyệt nếu bạn thực hiện một chút tìm kiếm trên Google / Youtube thay vì ra lệnh một cách mù quáng :) Cảm ơn


0

Khi bạn thực hiện initrant, nó sẽ thay thế tệp vagrant trong repo của bạn và có thể cung cấp cho bạn lỗi đó. Vì vậy, tôi sẽ đề nghị bạn sao chép tệp vagrant gốc từ xa hoặc một tệp vagrant sao lưu và thử vagrant lên sau đó.

Tôi đã gặp một vấn đề tương tự và tôi chỉ sao chép tệp vagrant từ repo từ xa của mình và thay thế tệp vagrant mà tôi đang cố chạy. Điều này đã đồng bộ hóa các cấu hình trong tệp vagrant với VM.


0

chỉnh sửa tệp vagrant được tạo bởi vagrant inittrong cùng thư mục và nhập tên hộp trong dòng config.vm.box = "ubuntu/trusty64"nơi ubuntu/trusty64hộp cơ sở của bạn. Bây giờ vagrant upsẽ tải xuống và đặt ubuntu/trusty64làm hộp cơ sở cho bạn.



0

Kiểm tra tệp Homestead.yaml một cách cẩn thận. Kiểm tra xem có thêm ký tự khoảng trắng nào sau khi kết thúc dòng không. Sau đó, mở gitbash -> vào thư mục Homestead -> lệnh "vagrant up --provision".

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.