Ошибка при попытке vagrant up


227

Я использую Vagrant для своей среды, и у меня есть небольшая проблема:

$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

Я инициализировал свой проект, vagrant initно по какой-то причине vagrant upотказался работать.


1
Проблема, с которой я столкнулся, когда я получил эту ошибку, заключается в том, что я не попал cdв каталог моего проекта
Коннор Лич

Ответы:


269

Похоже, вы, возможно, создали проект Vagrant с Just vagrant init. Это создаст ваш Vagrantfile, но для него не будет определено поле.

Вместо этого вы можете попробовать

$ vagrant init hashicorp/precise32
$ vagrant up

который использует стандартный образ Ubuntu. На веб-сайте Vagrant есть раздел «Начало работы», в котором приведены хорошие примеры.


19
Гар, это было все. Почему он говорит: «Теперь вы готовы к vagrant upсвоей первой виртуальной среде!» затем??
Мэтт

@Matt - Возможно, потому что вы можете вручную отредактировать vagrantfile и установить, какое поле использовать?
Циклон-код

5
Если вы уже сделали это vagrant initи по vagrant box addотдельности, вы можете просто отредактировать Vagrantfile и установить config.vm.box в «hashicorp / точный32» или любой другой блок, который вы хотите использовать.
Тоби

1
Я согласен - vagrant очень удобен, но пользовательский опыт настолько полон ловушек, в которые легко попасть.
Джеймс

1
Спасибо, ваш ответ помог мне!
yohannan_sobin

101

Если вы используете OS X и использовали стандартную установку, удалите старый локон vagrant, и теперь он должен работать

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


5
Спасибо, это решило это и для меня. +1 голос до :)
Акко Ван Эттингер

7
Это исправило мою проблему с Mac при работе с локальными и удаленными компьютерами
DWils

8
с какой стати это скручивание ?
Бенджамин Р

3
-rfФлаг немного Overkill здесь. Просто sudo rm /opt/vagrant/embedded/bin/curlдостаточно. Вы должны стараться избегать использования -r(= рекурсивный для перемещения по каталогам) и -f(= принудительное выполнение без каких-либо вопросов), когда они на самом деле не нужны. Они являются мощным и опасным инструментом, особенно в сочетании с sudo ...
Arvid

Это работало для меня, используя Vagrant 1.8.7, установленный с brew cask install vagrant. Тот же файл коробки работал нормально с той же версией Vagrant на Ubuntu 16.04.
RichVel

89
vagrant init laravel/homestead

а потом

vagrant up

Было то, что работал для меня.


4
Отлично ! Спасибо ! Если кто-то может объяснить мне, почему это происходит, я буду рад :)
Baldráni

1
Вам необходимо указать правильный тип поля. Вот некоторые допустимые типы коробок: atlas.hashicorp.com/boxes/…
duhaime

1
Спасибо, это сводило меня с ума, хе-хе. привет из Чили
Кристиан Меза

1
используйте --force с vagrant init, если уже существует vagrantfile
Чак

оба выше 2 ответа решили мою проблему. сначала удалите папку 'curl', sudo rm /opt/vagrant/embedded/bin/curlзатем запустите, vagrant init laravel/homesteadа затемvagrant up
Wei Lu

44

Это произошло из-за наличия бродячего файла без определенного имени ящика. это происходит, когда вы запускаете vagrant init без параметра имени ящика.

Таким образом, вы должны удалить файл Vagrant тогда

vagrant init box-title
vagrant up

Я надеюсь, что это может помочь!


Список доступных ящиков здесь
Алексей Потапов

этот ответ избавил меня от 3-х месячной петли неудачи в том, чтобы нести эту коробку, спасибо (я на Windows 7)
Адам

22

работать для меня это следующие шаги:

  • cd homestead (в папке вашего дома) cd Homestead
  • del vagrantfile или rm -Rf Vagrantfile
  • vagrant init laravel/homestead
  • vagrant up

17

Пожалуйста, запустите это в вашем терминале:

$ vagrant box list

Вы увидите что-то вроде laravel/homestead(virtualbox,x.x.x)

Затем найдите ваш Vagrantfileи найдите строку, которая говорит

config.vm.box = "box"

замените boxимя коробки при запуске vagrant box list.


Обратите внимание, что «Vagrantfile» находится в: C: \ Users \ YourUsername, если вы используете Windows.
egdavid

Это решило это для меня, потому что мой образ коробки, упомянутый в .kitchen.yml, больше не был доступен. Tricky.
Мин Hundje

16

если "Vagrantfile" already exists in this directory. Remove it before running "vagrant init". ошибка показывает то

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

1
==> по умолчанию: поле 'hashicorp / sure64' не найдено. Попытка найти и установить ... Это позволило для удаленной установки, что я в любом случае предпочел. Я работаю на VirtualBox Windows Host с клиентом
Ubuntu14

1
Это сработало для меня. Итак, проблема в том, что когда вы это делаете vagrant init, vagrant по умолчанию называет ваш «ящик» в Vagrantfile просто «base»? И чтобы это работало, вам нужно было указать имя Vagrant-бокса не по умолчанию?
Denialos

15

Я знаю, что это старый, но я получил точно такую ​​же ошибку. Оказывается, я пропустил этот шаг, который четко указан в документации .

Мне нужно было отредактировать, Vagrantfileчтобы установить значение, config.vm.boxравное загруженному изображению hashicorp/precise32. По умолчанию было установлено значение base.

Вот что говорится в документации:

Теперь, когда ящик добавлен в Vagrant, нам нужно настроить наш проект, чтобы использовать его в качестве основы. Откройте Vagrantfile и измените содержимое на следующее:

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

Помогает. Я использую "vagrant init", ошибка приходит. После указанного "hashicorp / точный32" все кажется в порядке.
yuyue007

Шаг в официальной документации, но посмотрите, сколько авторов, отвечающих на этот вопрос, не включают его.
jmdeamer

10

Кажется, что-то не так со встроенной программой curl в Vagrant. Следуя приведенному выше совету, я просто переименовал его (на всякий случай, если захотел обратно) и vagrant upначал работать как положено.

На моем Mac:

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


1
Хотя я не уверен, что ответ на оригинальный вопрос мне помог. Покопавшись в этом немного дальше, я запустил встроенную команду curl и получилdyld: 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
тапи

1
У меня была такая же проблема с Vagrant 1.8.7 на OSX. Выше работает.
Джанака

6

я тоже испытываю эту ошибку Я думаю, что это потому, что я не смог предоставить box_url ..

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

1
Добавление config.vm.box_url = "http://files.vagrantup.com/precise64.box"в мой Vagrantfile исправило это для меня.
millerdev

4

ну, на самом деле вы должны сделать:

vagrant up laravel/homestead

потому что согласно пошаговому описанию усадьбы вы только что загрузили ее: http://laravel.com/docs/5.0/homestead от:

vagrant box add laravel/homestead

поэтому вы должны запустить окно, которое вы хотите использовать, а не какой-нибудь случайный образ Ubuntu;)


4

Со мной я получил ошибку при запуске vagrant up(я использовал 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...

Я попытался удалить Vagrantfileв моей папке и запустить:

vagrant init hashicorp/precise64

затем:

vagrant up

Это может решить мою проблему. Надеюсь, что это может помочь кому-то, кто сталкивается с той же проблемой.


1
Я пробовал все это несколько раз. Единственное, что сработало, это переименование curl. (Mac OS 10.12)
Vicky T

1
У меня тоже работал на ПК под управлением windows 10
Джей Джулиан Пейн

4

Я столкнулся с той же проблемой, когда запускал следующие команды

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

Я исправил с

>vagrant init laravel/homestead
>Vagrant up

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

Удачного кодирования



1

В случае, если вы добавили ящик и начали его загрузку, но прервали эту загрузку, перейдите ~/.vagrant.d/tmp/и удалите файл частичной загрузки, затем повторите попытку.


1

Я решил эту проблему, перейдя в папку .vagrant.d/boxes/под своим домом и изменил имя папки с laravel-VAGRANTSLASH-homesteadнаbase . И это сработало для меня.

Пожалуйста, проверьте, включена ли виртуализация в вашем BIOS.


Вы должны были запустить "vagrant init laravel-VAGRANTSLASH-усадьба"
Гил Марголин

1

Вы также можете просто добавить виртуальную машину на свою машину

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

1

Первый и самый важный шаг перед запуском Vagrant - проверьте, какие все блоки присутствуют в вашей системе. Используйте эту команду для получения списка доступных ящиков.

vagrant box list

Затем перейдите к дальнейшему процессу, то есть выбрав определенное поле

vagrant init ubuntu/trusty64 (Я выбрал Ubuntu / Trusty64)

затем,

vagrant up

ПРИМЕЧАНИЕ. Было бы здорово, если бы вы выполняли небольшой поиск в Google / Youtube, а не вслепую запускали команды :) Спасибо


0

Когда вы делаете vagrant init, он заменяет vagrant файл в вашем репо и может выдать вам эту ошибку. Поэтому я бы посоветовал вам скопировать оригинальный файл vagrant с удаленного или резервного файла vagrant и после этого попробовать vagrant up.

Я столкнулся с той же проблемой, и я просто скопировал файл vagrant из моего удаленного репозитория и заменил файл vagrant, который пытался запустить. Это синхронизировало конфигурации в файле vagrant с виртуальной машиной.


0

отредактируйте файл vagrant, созданный vagrant initв том же каталоге, и введите имя блока в строке, config.vm.box = "ubuntu/trusty64"где ubuntu/trusty64находится ваш базовый блок. Теперь vagrant upзагрузите и установите в ubuntu/trusty64качестве базовой коробки для вас.



0

Внимательно проверьте файл Homestead.yaml. Проверьте, нет ли лишних пробелов после окончания строки. Затем откройте gitbash -> go homestead directory -> команда "vagrant up --provision".

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.