Cygwin还是Linux虚拟机开发更好?

18

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

几个星期前,我决定如果没有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体验。如果你不想麻烦分区,Wubi是个不错的选择。它将Linux安装为一个磁盘映像文件,存储在Windows分区中,你可以从中启动Linux。 - Linuxios
其实,我有双重启动。有时我会使用它,但我需要频繁切换环境,这样不太方便。我需要能够在不同环境之间快速切换。 - erictheavg
计算机有多强大?在一台中端东芝笔记本电脑上启动虚拟机需要一段时间。 - Linuxios
我遇到了这个确切的问题(各种软件不能正常工作或不完全支持cygwin + Windows shell不足)。我将尝试使用VirtualBox + Linux。有什么推荐吗?Ubuntu?开始吧! - SwimBikeRun
感谢您对“可跳过部分”进行语义定义,这为我节省了一分钟。 - user636044
显示剩余2条评论
8个回答

15

我之前也遇到过常见的问题,根据我的经验,最好的解决方案就是使用两台工作站 :)

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

我唯一能想到的缺点是主机机器的性能问题。 如果它是普通的工作站/个人电脑,一个IDE + 一个虚拟机 + 100+个标签页的浏览器会使它变慢。


8
1:Cygwin适合快速hack和访问主机操作系统资源(例如在bash脚本中运行IE)。对于一些紧密集成的"真实"工作,可以使用虚拟机。它会模拟所有内容并将开发与真实机器分离,这在某些情况下可能是一个好事情...另外还模拟了一个真实的服务器:)
2:至少在VirtualBox中,您可以共享文件夹,并将本地文件夹共享并在虚拟机中查看(本地或作为Windows共享...实际上取决于情况)。然后,您可以使用该"入口点"来创建符号链接到虚拟机中,并使用位于真实(主机)计算机中的实际文件进行所需的操作。

1
我不知道VirtualBox可以像那样与Windows集成。好好知道!我会尝试一下 - 听起来我会喜欢它的。 - erictheavg

4

SSH登录到Linux服务器,这是每个人都会做的事情。为什么这不是答案呢?


4
同意,不过你假设有一个可以ssh登录的Linux系统。 - TKH

2

我现在认为,获取2个选项的优点是使用Docker,它可以给你带来Cygwin的简单性和VM的功能,而且性能更好。


也许你想说的是Vagrant? Docker不是虚拟机,也不能在Windows上运行Linux。 - ruvim
Docker比Vagrant更受欢迎,Docker不是虚拟机,而是Linux容器管理器,可以使用VB或Hyper-V在Windows上工作,以创建Linux虚拟机并使用它。 - Bassem Reda Zohdy

2

我听说过一种叫做Cooperative Linux的东西。它能够在Windows内核旁边运行Linux,这样你就可以同时使用它们了。虽然我从未使用过,但是这里有一个链接:http://www.colinux.org/


1
不幸的是,那个项目似乎有些停滞了。最新版本发布于2011年4月。 - Chris
2
Virtualbox有一个“无缝模式”,允许两个窗口在同一屏幕上显示。也就是说,您的虚拟机不再局限于一个独立的窗口中,而是可以与主机和客户操作系统的窗口管理器分离、调整大小并混合使用。 - Zombies

1

在虚拟机中运行Linux会比cygwin或任何模拟shell(我喜欢称它们为)更能给你想要的体验。

然而,运行虚拟机需要大量的内存,这取决于你是想要桌面版的Linux还是只需要命令行版本。

就我自己而言,在工作中我有一台配备了8GB内存的电脑,我将Ubuntu 64位作为主操作系统,两个Ubuntu服务器(这些是为开发环境的两个不同项目)以及一个Windows 7虚拟机和一个Windows XP虚拟机。

我可以同时运行两个Ubuntu服务器和另一个虚拟机,关键在于如果你想要运行虚拟机,需要更多的内存。


0
如果你要使用Ruby进行编程,那么最好建立一个Ubuntu虚拟机并运行它 :) 我没有在Windows上尝试过Ruby等编程语言,但我听说在Windows上设置和配置它们非常麻烦。我用Mac进行所有的Rails开发,所以我无法对Windows方面进行评论。
至于虚拟机的创建,我更喜欢VMware Workstation,但也有免费的替代品,如Virtualbox和VMware Server。

0

我在Windows七环境中使用Linux虚拟机,因为这个虚拟机尽可能地代表了最终的生产环境。整个设置都绑定到Eclipse IDE下的ms-Windows七。所以这对于本地全面测试非常好,在提交或标记经过测试的版本到生产服务器之前。

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

你的选择强烈依赖于最终服务器设置目的。无论您的需求是什么,VM都可以做到。它的设置成本更高,因此必须经常使用这些时间投资来获得回报。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接