我在尝试运行" vagrant up"时遇到此错误终端命令:
本机的配置存在错误。请修正以下错误,然后重试:
*必须指定一个框。
在我的Homestead/.vagrant/machines/default/virtualbox
文件夹中,那里没有文件,所以我假设这是指它必须指定一个方框时指的是什么,但是我不喜欢这样的文件。我知道如何包含一个盒子,因为这是我第一次使用vagrant,而且我已经在线搜索,没有决心。
任何人都有解决方案吗?
编辑(Vagrantfile):
require 'json'
require 'yaml'
VAGRANTFILE_API_VERSION = "2"
confDir = $confDir ||= File.expand_path("~/.homestead")
homesteadYamlPath = confDir + "/Homestead.yaml"
homesteadJsonPath = confDir + "/Homestead.json"
afterScriptPath = confDir + "/after.sh"
aliasesPath = confDir + "/aliases"
require File.expand_path(File.dirname(__FILE__) + '/scripts/homestead.rb')
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
if File.exists? aliasesPath then
config.vm.provision "file", source: aliasesPath, destination: "~/.bash_aliases"
end
if File.exists? homesteadYamlPath then
Homestead.configure(config, YAML::load(File.read(homesteadYamlPath)))
elsif File.exists? homesteadJsonPath then
Homestead.configure(config, JSON.parse(File.read(homesteadJsonPath)))
end
if File.exists? afterScriptPath then
config.vm.provision "shell", path: afterScriptPath
end
end
答案 0 :(得分:6)
在宅基地目录中,您必须运行命令bash init.sh
。
这将在您的主目录(Homestead.yaml
)中生成after.sh
文件(以及aliases
和~
)。
如果您再次更改Homestead.yaml
,则必须重新运行bash init.sh
。它会要求覆盖,说是。
(另外,请确保folders: - map:
的目录存在)
答案 1 :(得分:3)
通过修复homestead.yaml中的文件路径来解决此问题。当我在终端中进行安装时,在Hometead主文件夹之外创建了一个.homestead文件夹,这就是导致我出现问题的原因。但在将.homestead / homestead.yaml内部的路径更改为我的Homestead / homestead.yaml中的相同路径后,问题不再持续存在。
答案 2 :(得分:-2)
如果您使用的是宅基地套餐,请使用homestead up
代替vagrant up
。它已经知道所有文件的位置,并且很容易在VM上运行。