【问题标题】:Can I use `vagrant box update` while already having the machine running by `vagrant up`?我可以在已经让机器由 `vagrant up` 运行的情况下使用 `vagrant box update` 吗?
【发布时间】:2017-07-31 22:57:19
【问题描述】:

我在 Laravel 中有一些项目,当我必须对它们进行一些维护时,有时当我运行 vagrant up 时,它会警告我我有一个更新版本的 laravel 盒子,homestead,如下面的消息:

A newer version of the box 'laravel/homestead' is available! You currently
have version '1.1.0'. The latest is version '2.0.0'. Run
`vagrant box update` to update.

我的问题是,总是当我运行vagrant box update 时,下载更新版本的盒子大约需要十年时间,因为似乎hashicorp 的服务器不够好,无法处理......

考虑到这一点,我可以在安装机器的同时对我的项目进行维护,同时更新盒子吗?我真的不明白这是否真的可能,或者这会对事情产生什么影响。

非常感谢,希望能问其他用户也有的问题。

【问题讨论】:

    标签: laravel vagrant homestead vagrant-windows


    【解决方案1】:

    考虑到这一点,我可以在安装机器的同时对我的项目进行维护,同时更新盒子吗?

    是的 - 您可以启动当前运行的虚拟机 vagrant up 并同时更新现有框 vagrant box update(您甚至可以从任何文件夹执行此操作,在这种情况下指向要更新的框 vagrant box update --box laravel/homestead

    请注意,当您首次启动时,该框用于创建 VM(vagrant 基本上是克隆该框以创建新的 VM),因此如果您更新该框,它不会影响您的当前虚拟机

    正如其他人所说,如果您希望您的虚拟机反映盒子的更新(例如第三方软件),那么您需要销毁虚拟机并重新创建虚拟机(运行vagrant up

    【讨论】:

    • 完美答案,非常感谢。和我想的完全一样,但是当我只需要对项目进行简单的维护时,我真的很害怕将盒子从版本 1.1.0 更新到 2.0.0。关键是,它以某种方式“安全”吗?我是否有浪费时间修复任何配置的风险?特别是在谈论 Laravel 应用程序时,我知道这些人在每个小版本都会更改很多框架。向你问好!
    【解决方案2】:

    不,您不能更新正在运行的机器。只需update 命令下载新映像。因此,如果您真的需要更新机器(无论是否运行),您必须销毁它。

    查看 vagrant 版本控制documentation 了解更多详情

    【讨论】:

    • 感谢您的回答,我接受了@frédéric-henri 的回答,因为它更详细地解释了我所怀疑的地方,但无论如何,谢谢您的回答很好地补充了这个案例。 =)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-04
    • 2016-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-07
    相关资源
    最近更新 更多