【问题标题】:Setting up a development environment INSIDE a virtual machine在虚拟机内部设置开发环境
【发布时间】:2010-09-28 09:39:09
【问题描述】:

这就是问题所在。我使用大约三台不同的机器进行开发。我的伙伴正在使用两个。我们必须在所有五台机器上完成相同的设置程序才能开始工作。

在这里使用 php 项目,所以: 安装和配置、PDT、一个 php 调试器和一些 XAMPP 版本。 然后可以安装一个 svn 客户端和任何其他工具。

再次,对五台机器中的每一台。

如果相反,我们在虚拟机中完成所有这些操作,该虚拟机与生产服务器具有相同的堆栈、相同的版本,那会怎样。然后我们每个人都可以获取 VM 映像的副本,在五台机器的每一台上运行该映像,并在该 VM 中完成我们所有的开发。将 Eclipse、apache、mysql、作品,全部放在那个 vm 中。

这种方法的唯一缺点是性能,请纠正我的唯一部分。不过真的有那么大的问题吗?五台机器中最慢的机器是三星 NC10,采用英特尔凌动 1.6 GHz 处理器。

您认为这可行且实用吗?还是我疯了?

【问题讨论】:

    标签: development-environment virtualization


    【解决方案1】:

    我使用虚拟机进行开发(在我的笔记本电脑上运行)并且从未遇到过性能问题。您可以采取的另一种方法是将驱动器映像到您想要的状态。需要时使用 Acronis 或 Ghost 重新映像每台计算机。只需大约 5-10 分钟即可在任何现代 PC 上恢复映像。

    【讨论】:

    • 虽然 VM 映像的大小很大(大约 10 GB),但它会让您摆脱所有其他问题。现在外部磁盘从 500 GB 到 1 TB 不等,您也可以轻松地在同行之间共享此 VM 映像。
    • ...非常正确,这就是我们大部分时间的运作方式。
    • 我很高兴人们正在使用这种方法,而且我不只是在编造它。我试试看。
    • 你们在虚拟化什么样的操作系统?我拥有最新一代的 macbook 13' 并在没有 GUI 的 Virtualbox 上安装了 Debian,当然它运行顺利。您是否尝试过在 VM 上运行 OSX?性能可以接受吗?我打算使用 MAMP、sublime text 2、Sequel Pro 和 Tower。
    • @user1011444:我没有在 VM 中运行 OSX,只有 *nix 发行版和 Windows。
    【解决方案2】:

    我将虚拟机用于我的所有“工作”,因为它远离我的“游戏”。这种设置允许我使用办公室 VPN,而无需将我的整台机器暴露在办公室环境中(我信任它与互联网一样多。;-) 而且我不必担心通过尝试游戏来搞乱我的开发环境或其他软件。我的工作虚拟机目前在 VirtualBox 中运行,但我过去使用过 VMWare。我只注意到使用 Webex 或终端服务器客户端等图形密集型程序时的性能问题。

    【讨论】:

    • +1,同样的,VM 将工作排除在外,然后我可以通过 VMWare 在 Windows 网络上使用我的 Apple 笔记本电脑。
    • 你们在虚拟化什么样的操作系统?我拥有最新一代的 macbook,并在没有 GUI 的 Virtualbox 上安装了 Debian,当然它运行顺畅。您是否尝试过在 VM 上运行 OSX?性能可以接受吗?我打算使用 MAMP、sublime text 2、Sequel Pro 和 Tower。
    【解决方案3】:

    当然可以。让我失望的是 VM 映像的大小,通常是几 GB。将它放在网络共享上意味着传输时间可能比您当前的设置过程需要更长的时间。我想外置硬盘是最简单的移动方式。

    性能不会成为任何 Web 开发的问题。

    我不得不问为什么每次您坐下来工作时都需要“重新映像”您当前的机器?

    【讨论】:

    • 不是每次,只是在这个项目的开始。还是很痛。
    【解决方案4】:

    如果您使用的是 Windows,您可能希望在主映像上使用 SYSPREP,以便在您首次启动虚拟机时运行“迷你设置”。

    否则,从 Windows 的角度来看,这些机器具有完全相同的 SID、主机名和其他东西 - 在同一个网络上运行具有相同 SID 的多台机器可能会引起很多麻烦。如果您希望他们相互交流,那就更是如此。

    【讨论】:

      【解决方案5】:

      我已经在 vmware 虚拟机上运行 websphere for zSeries,没有任何问题,而且 websphere 比任何 PHP 堆栈更占用资源。我发现拥有多核机器或至少超线程可以让它运行得更快。

      【讨论】:

        【解决方案6】:

        使用 vmware,磁盘操作会变慢。对于 PHP 开发,我怀疑这将是一个问题,但如果您正在编译一个大型 C++ 项目,您肯定会注意到它。还有 Sun 的 VirtualBox,它是免费的,最新版本相当不错(但我还没有看到磁盘操作有多慢)。

        【讨论】:

          【解决方案7】:

          我在实践中使用了这个想法。虚拟机通常非常适合开发。

          1. 在多个操作系统和多个单独的开发环境中运行。
          2. 保留旧的开发环境以供以后支持。
          3. 可以轻松备份,当硬盘崩溃时无需从头开始。
          4. 可以从开发者复制到另一个,所以每个人都不必做繁琐的安装和配置。

          缺点是:

          1. 虚拟机速度较慢,您需要比其他方式更强大的计算机。我建议至少有 4 G 的内存,但最好是 16 个,快速多核处理器和快速硬盘驱动器。
          2. 复制 Windows 操作系统虚拟机,每个使用的虚拟机副本都应该有自己的产品密钥。制作副本时,需要使用新的产品密钥进行注册。

          【讨论】:

            【解决方案8】:

            您是否想过像ansible、厨师或木偶这样的软件配置管理器?有了这样的软件,这些任务的自动化是非常容易的!它甚至可以创建新的虚拟机然后对其进行配置。

            【讨论】: