Ошибка при попытке 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отказался работать.

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

Ответы:

269

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

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

$ vagrant init hashicorp/precise32
$ vagrant up

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

BrianC
источник
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

abulbul
источник
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

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

noobmaster69
источник
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.

techraf
источник
Обратите внимание, что «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:

nicholasf
источник
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
welterw8
источник
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

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

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

Маниш Накар
источник
2

Эта работа для меня в Windows 10: https://stackoverflow.com/a/31594225/2400373

Но необходимо удалить файл: Vagranfileпосле использования команды:

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

И после

vagrant up
juanitourquiza
источник
1

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

rubo77
источник
1

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

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

Badar
источник
Вы должны были запустить "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, а не вслепую запускали команды :) Спасибо

SMshrimant
источник
0

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

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

ramashah
источник
0

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

captainchhala
источник
0

При создании виртуального блока следуйте приведенному ниже синтаксису:

 $ vagrant box add {title} {url}
 $ vagrant init {title}
 $ vagrant up

Смотрите http://www.vagrantbox.es/

Самир Садек
источник
0

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

Асад Заман
источник