添加第二个Homestead Box

前段时间突然需要学习一个phalcon框架,各方面因素需要一个Linux环境来安装
这就出现问题了, 我常用的 homestead-7 的 vagrant box 是万万不敢动的。
于是查阅了一番资料之后进行了大胆的尝试,现在我同时拥有一个开发环境和一个测试环境

直接上干货 首先根据 Summer老师的开发环境搭建课程 我们可以获得第一个 homestead box

在这个教程中我们下载的 lc-homestead-8.2.1-*** 具体版本每个人情况不同
解压之后的 metadata.json 文件长这样

{
    "name": "lc/homestead",        // 这就是我们要添加的 homestead box 的名字
    "versions": [{
        "version": "8.2.1",
        "providers": [{
            "name": "virtualbox",
            "url": "virtualbox.box"
        }]
    }]
}

接下来进到 Homestead/script 文件夹打开 homestead.rb 这个文件

class Homestead
    def Homestead.configure(config, settings)
        # Set The VM Provider
        ENV['VAGRANT_DEFAULT_PROVIDER'] = settings["provider"] ||= "virtualbox"

        # Configure Local Variable To Access Scripts From Remote Location
        scriptDir = File.dirname(__FILE__)

        # Allow SSH Agent Forward from The Box
        config.ssh.forward_agent = true

        # Configure The Box
        config.vm.define settings["name"] ||= "homestead-7"
        config.vm.box = settings["box"] ||= "lc/homestead"
        config.vm.box_version = settings["version"] ||= ">= 6.0.0"
        config.vm.hostname = settings["hostname"] ||= "homestead"

        # Configure A Private Network IP
        if settings["ip"] != "autonetwork"
            config.vm.network :private_network, ip: settings["ip"] ||= "192.168.10.10"
        else
            config.vm.network :private_network, :ip => "0.0.0.0", :auto_network => true
        end

        ...

可以发现两个比较眼熟的名字, homestead-7lc-homestead

接下来,复制 Homestead 文件夹到 NewHomestead 并删除 .vagrant
NewHomestead 文件夹内将 script/homestead.rb 内的 homestead-7 改为 homestead-test或你喜欢的名字
保险起见,我把 metadata.json 的名字也改了并重新添加了一个 vagrant box

{
    "name": "bt/homestead",        // 这就是我们要添加的 homestead box 的名字
    "versions": [{
        "version": "8.2.1",
        "providers": [{
            "name": "virtualbox",
            "url": "virtualbox.box"
        }]
    }]
}
# Configure The Box
        config.vm.define settings["name"] ||= "homestead-bt"
        config.vm.box = settings["box"] ||= "bt/homestead"
        config.vm.box_version = settings["version"] ||= ">= 6.0.0"
        config.vm.hostname = settings["hostname"] ||= "homestead"

然后修改 NewHomestead下的 Homestead.yaml

$ cd NewHomestead && vagrant up
Bringing machine 'homestead-bt' up with 'virtualbox' provider...
==> homestead-bt: Checking if box 'phalcon/homestead' version '8.2.1' is up to date...
==> homestead-bt: Clearing any previously set forwarded ports...
...

添加第二个Homestead Box

为什么要叫 homestead-bt 呢,因为我在里面装了个宝塔…已删

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 1

添加 box 后改 Homestead.yaml box name 参数项就行 没这么麻烦

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!