我在 precise64 机器(Ubuntu 12)上构建了一个服务器,现在想将其升级到 trusty64(Ubuntu 14)。我是否可以简单地将 from 更改为config.vm.box
,ubuntu/precise64
然后ubuntu/trusty64
执行 vagrant provision(或者是重新加载?),或者这是否会在我的现存的vm 上已经安装了很多软件吗?
答案1
我可以简单地从更改为
config.vm.box
,ubuntu/precise64
然后ubuntu/trusty64
执行 vagrant 配置(或者是重新加载?)吗,或者这是否会对已经安装了大量软件的现有虚拟机造成问题?
好吧,如果你将值从 更改ubuntu/precise64
为ubuntu/trusty64
,那么所做的只是表明如果你销毁现有的 Vagrant VM(通过vagrant destroy [box name]
),然后通过 重建它,vagrant up [box name]
那么新的 Vagrant 框将是ubuntu/trusty64
。这意味着,你不会通过简单地更改 的值来影响现有框的操作系统升级config.vm.box
。
在现有虚拟机上将 Ubuntu 12 升级到 14。
如果您想将现有的系统从 Ubuntu 12 升级到 Ubuntu 14,而不影响 Ubuntu 12 安装中已经安装的软件,您需要通过 SSH 进入该 Ubuntu 12 系统并运行此命令来安装更新管理器核心包:
sudo apt-get install update-manager-core
do-release-upgrade
实际从 Ubuntu 12 升级到 Ubuntu 14 的运行:
sudo do-release-upgrade
话虽如此,请阅读底部的注释,了解从一个操作系统的主要版本到另一个操作系统的干净升级并不像您想象的那么简单。
您应该调查使用配置脚本。
但话虽如此,这实际上并不是 Vagrant 升级的方式,也不是它的预期用途。你说你在盒子上安装了大量软件,但如果你手动安装这些软件,你就没有真正利用 Vagrant 的核心优势:按需构建、销毁和重建虚拟机的能力。
我使用 Vagrant 的方式是让它构建盒子,同时运行配置脚本可以自动化软件安装和配置的过程。
无论如何,您可能需要重新安装或升级软件和配置。
但话虽如此,当我不得不将自己的 Vagrant 从 Ubuntu 12 升级到 Ubuntu 14 时,我不得不调整我的配置脚本以考虑新项目,例如新的文件系统位置、核心软件的新版本等......这意味着,它并不总是一个简单的过程,并且高度依赖于您正在使用的软件以及您对该软件的具体配置。