【问题标题】:Cygwin vs Linux Virtual Machine for Development?用于开发的 Cygwin 与 Linux 虚拟机?
【发布时间】:2012-03-19 21:27:39
【问题描述】:

我在 Windows 环境中从事 IT(主要是桌面支持和网络管理)工作,我偶尔会编程。

几周前,我决定如果没有 Bash 环境来满足我的命令提示符需求,我将无法达到我想要的效率。当我使用 Ruby 和 git 时尤其如此。我使用了一段时间的 Msysgit,但我只是不喜欢它不能像 Linux 那样可扩展。所以,我安装了 Cygwin 并玩了几个星期。

虽然 Cygwin 很棒,但它似乎是一个改进的命令提示符,它与 Linux 的兼容性只是一个令人愉快的副作用。当我尝试将 Ruby 升级到 1.9.3(它有效,但并不简单)、安装 rvm(从未有效)和安装 RMagick(可能有效,也可能无效,但看起来很头疼)时,这一点尤其明显。

所以,现在我正在考虑在虚拟机中运行 Linux。但我担心那可能是另一罐蠕虫,在我发现它之前我会浪费几个小时。我喜欢 Cygwin 在 Windows 中运行,我可以使用我的 IDE、用户文件夹等。但我不喜欢对它的支持不如对主要发行版的全面支持。

  1. 这里有人对使用 Cygwin 与运行 Linux 虚拟机有什么见解吗?
  2. 对于在 Windows 中的虚拟机中设置 Linux 开发环境有何建议?

【问题讨论】:

  • 不能选择双启动吗?这很容易,并且可以为您提供您可以获得的最好的 Linux。如果你不想打扰分区,五笔会很棒。它将 Linux 作为磁盘映像安装在您的 Windows 分区上,您可以从中启动 Linux。
  • 其实我是双启动的。有时我会使用它,但我需要过于频繁地更换帽子才能起作用。我需要能够在环境之间使用 Alt+Tab。
  • 电脑有多强大?启动虚拟机需要一段时间(在中端东芝笔记本电脑上)。
  • 嗯,它是 2008 年的 2.4 Ghz Core2Duo,但它确实有 6GB 内存。
  • 我认为 RAM 更多是 VM 的问题。你应该没事的。但是看看 Cooperative Linux。

标签: linux windows cygwin virtual-machine development-environment


【解决方案1】:

我以前遇到过常见问题,根据我的经验,最好的解决方案是只有 2 个工作站 :)。

除了在虚拟环境中运行 Linux 会更好。 首先,您将拥有完整的 Linux 功能(3d 加速除外,但您可能不需要它)。 您将能够创建快照并在出现问题时恢复它们! 可以使用模板启动多个环境,非常方便。

我能想到的唯一缺点是主机的性能问题。 如果是普通的工作站/PC,IDE + 一个虚拟机 + 100+tabs 浏览器只会让它变慢。

【讨论】:

    【解决方案2】:

    1:cygwin 非常适合快速破解,并且能够访问主机操作系统资源(例如,您可以在 bash 脚本中运行 IE)。对于紧密集成的东西和一些“真实”的词,去一个虚拟机。它将模拟所有内容并将开发与真机分开,这在某些情况下可能是一件好事......另外它模拟了一个真实的服务器:)

    2:至少在virtualbox中,您有共享文件夹,您可以共享一个本地文件夹,并在vm中将其视为本地文件夹(本地或Windows共享..实际上取决于)。然后您可以使用该“入口点”将内容符号链接到虚拟机中,并使用位于真实(主机)机器中的真实文件执行您需要的操作

    【讨论】:

    • 我不知道VirtualBox可以像这样与Windows集成。很高兴知道!我正在试一试——听起来我会喜欢的。
    【解决方案3】:

    SSH 进入一个 linux 机器。这是每个人都会做的。为什么这不是答案?

    【讨论】:

    • 我同意,虽然你认为有一个 linux 机器可以 ssh 进入。
    【解决方案4】:

    我听说过一种叫做 Cooperative Linux 的东西。它与 Windows 内核一起运行 Linux,因此您可以同时使用它们。我从未使用过它,但在这里: http://www.colinux.org/

    【讨论】:

    • 不幸的是,该项目似乎已经死了。最新版本是 2011 年 4 月。
    • Virtualbox 有一个“无缝模式”,允许任何一个窗口在同一个屏幕上。也就是说,您的 VM 不再位于一个盒子内,窗口可以与主机和来宾操作系统窗口管理器分开、调整大小和混合。
    【解决方案5】:

    我认为现在正在使用 2 个选项的优点 码头工人 ,它为您提供了 cygwin 的简单性和具有更好性能的 VM 功能。

    【讨论】:

    • 也许你的意思是流浪者? Docker 不是虚拟机,它不允许在 Windows 上运行 Linux。
    • Docker 比 Vagrant 更受欢迎,Docker 不是 VM,而是 linux 容器管理器,可以使用 VB 或 Hyper-V 在 windows 上工作,制作 Linux VM 并使用它。
    【解决方案6】:

    虚拟机中的 Linux 将为您提供比 cygwin 或我喜欢称之为的任何模拟 shell 更多的体验。

    运行虚拟机需要大量内存,具体取决于您想要桌面版本的 linux 还是只需要命令行版本。

    我自己在工作中,我有一台 8gb 内存的电脑,我运行 ubuntu 64bit 作为主操作系统,两个 ubuntu 服务器(它们用于开发环境,两个不同的项目)和一个 windows 7 虚拟机和一个 win XP 虚拟机。

    我可以同时运行两台 ubuntu 服务器和另一台虚拟机,如果你想能够运行虚拟机,这里的关键是更多的内存。

    【讨论】:

      【解决方案7】:

      如果您要使用 Ruby,请启动并运行 Ubuntu 虚拟机 :) 我没有在 Windows 上尝试过 Ruby 等,但我听说设置和配置很痛苦。我使用 Mac 进行所有 Rails 开发,因此我无法评论 Windows 端。

      至于创建虚拟机,我更喜欢 VMware Workstation,但也有免费的替代品,例如 Virtualbox 和 VMware Server。

      【讨论】:

        【解决方案8】:

        我在 Windows 7 环境中使用 Linux VM,因为该 VM 尽可能代表最终生产环境。整个设置绑定到 ms-Windows 7 下的 Eclipse IDE。因此,在将测试版本提交或标记到生产服务器之前,这对于本地完整测试非常有用。

        正如您所提到的,这需要一些时间才能正确设置和完全配置。因此,如果您只需要一些小技巧或任务,您可以继续使用cygwin。例如,我在配置perl 和在cygwin 中编译mysql 时遇到了重大问题。所以基本使用没问题,但不能充分利用完整的 linux 环境。

        您的选择很大程度上取决于最终的服务器设置目的。无论您需要什么,VM 都会执行此操作。它的设置成本较高,因此必须经常使用此时间投资才能获得回报。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-09-17
          • 1970-01-01
          相关资源
          最近更新 更多