尝试无业游民时出错


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进入项目目录
Connor Leech,

Answers:


269

看来您可能已经用Just创建了一个Vagrant项目vagrant init。这将创建您的Vagrantfile,但不会定义一个框。

相反,您可以尝试

$ vagrant init hashicorp/precise32
$ vagrant up

它使用标准的Ubuntu映像。Vagrant网站上有一个入门指南,其中提供了一些很好的示例。


19
加尔,就是这样。为什么说“您现在已经准备好vagrant up第一个虚拟环境!” 然后??
马特

@Matt-也许是因为您可以手动编辑vagrantfile并设置要使用的框?
Cyclonecode

5
如果已经完成vagrant initvagrant box add单独进行操作,则只需编辑Vagrantfile并将config.vm.box设置为“ hashicorp / precise32”或您要使用的任何框。
Toby

1
我同意-流浪汉非常方便,但是用户体验到处都是陷阱,容易陷入。
詹姆斯,

1
谢谢,您的回答对我有所帮助!
yohannan_sobin '17

101

如果您使用的是OS X并使用了标准安装,请删除流浪者的旧卷发,它现在应该可以使用了

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


5
谢谢,这也为我解决了。+1投票:)
Akko Van Ettinger

7
这解决了我在Mac上使用本地和远程机器时的问题
DWils

8
为什么在地球上嵌入卷曲
本杰明·R

3
-rf标志在这里有点过大。仅仅sudo rm /opt/vagrant/embedded/bin/curl是不够的。您应该尽量避免在确实不需要它们时使用-r(=递归向下目录)和-f(=强制不询问任何问题)。它们是强大而危险的工具,尤其是与sudo结合使用时
Arvid

这对于使用Vagrant 1.8.7并安装了的版本对我有用brew cask install vagrant。在Ubuntu 16.04上使用相同的Vagrant版本,可以使用相同的文件盒。
RichVel

89
vagrant init laravel/homestead

然后

vagrant up

是什么对我有用。


4
太好了!谢谢 !如果有人能解释我为什么出现这种情况我会很高兴:)
Baldráni

1
您需要指定一个有效的框类型。以下是一些有效的框类型:atlas.hashicorp.com/boxes/…– duhaime
2015年

1
谢谢,这让我发疯了。智利的问候
克里斯蒂安·梅萨

1
使用--force与流浪者的init如果已经有一个vagrantfile
查克

以上两个答案都解决了我的问题。首先删除'curl'文件夹,sudo rm /opt/vagrant/embedded/bin/curl然后运行vagrant init laravel/homestead,然后运行vagrant up
Wei Lu

44

发生这种情况是由于有一个没有定义的框名的无业游民的文件。在运行不带框名称参数的无业游民的init时会发生这种情况 。

所以你必须删除Vagrant文​​件

vagrant init box-title
vagrant up

希望对您有所帮助!


可用的盒子列表在这里
Aleksey Potapov

这个答案使我摆脱了3个月的循环,因为我没能知道那个盒子,谢谢(我在Windows 7上)
亚当

22

对我来说,这些步骤如下:

  • cd homestead (在目录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中提到的我的盒子图像不再可用。整rick
min 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 / precise64”。尝试查找和安装...允许远程安装,这是我无论如何都喜欢的。我正在使用Ubuntu14客户端在VirtualBox Windows Host上运行
yardpenalty.com

1
这对我有用。所以问题在于,当您这样做时vagrant init,vagrant默认将Vagrantfile中的“ box”命名为“ base”吗?为了使它起作用,您必须指定一个非默认的Vagrant框名称?
Denialos '19

15

我知道这很旧,但是却出现了完全相同的错误。事实证明,我错过了文档中明确提到的这一步骤

我需要编辑,Vagrantfile以将其设置为config.vm.box等于我下载的图像hashicorp/precise32。默认情况下,它设置为base

文档说明如下:

现在,该框已添加到Vagrant中,我们需要配置项目以将其用作基础。打开Vagrantfile并将内容更改为以下内容:

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

它有助于。我正在使用“ vagrant init”,出现错误。指定“ hashicorp / precise32”后,一切似乎正常。
yuyue007 '02

该步骤在官方文档中,但查看有多少回答此问题的作者未包含此步骤。
jmdeamer

10

Vagrant中的嵌入式curl程序似乎出现了问题。按照上面的建议,我只是将其重命名(以防万一我想要它回来)并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
tapi

1
我在OSX上使用Vagrant 1.8.7遇到相同的问题。以上工作。
Janaka

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 '16

4

好吧,实际上您必须执行以下操作:

vagrant up laravel/homestead

因为根据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的PC上也为我工作
Jay Julian Payne

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-homesteadbase。它为我工作。

请检查您的BIOS中是否启用了虚拟化。


您应该运行“无用的初始化laravel-VAGRANTSLASH-宅基地”
Gil Margolin,


1

启动Vagrant的第一步也是最重要的一步是,检查系统中是否存在所有框。使用此命令可获得可用的框列表。

vagrant box list

然后转到进一步的过程,即选择一个特定的框

vagrant init ubuntu/trusty64 (我选择了ubuntu / trusty64)

然后,

vagrant up

注意:如果您稍微进行一下Google / Youtube搜索,而不是盲目地执行命令,那将是很好的:)谢谢


0

当您执行vagrant init时,它将替换您回购中的vagrant文​​件,并可能给您该错误。因此,我建议您从远程复制原始的无业游民文件或备份无业游民文件,然后尝试进行无业游民。

我遇到了同样的问题,我只是从远程仓库中复制了流浪者文件,并替换了我试图运行的流浪者文件。这样就可以将流浪者文件中的配置与VM同步。


0

编辑vagrant init在同一目录中创建的无业游民的文件,然后在基本框config.vm.box = "ubuntu/trusty64"所在的行中输入框名ubuntu/trusty64。现在vagrant up将下载并设置ubuntu/trusty64为您的基本框。



0

仔细检查Homestead.yaml文件,检查行尾是否有多余的空格字符。然后,打开gitbash->进入Homestead目录->命令“ vagrant up --provision”。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.