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