在Windows上运行Ruby / Rails的局限性
在RoR的安装文档中,它提到在Windows上运行Ruby on Rails有很多限制,并且在某些情况下,整个库无法使用。
这些限制有多严重?我应该始终默认使用Linux来编码/运行RoR吗?Iron Ruby是否有望解决这些限制,或者它们是OS本身的核心?
EDIT感谢我们提供有关在Linux上安装和运行的答案,但是我实际上是想了解安装文档和非工作库中所引用功能的局限性,我试图找到注释的链接,但已引用该注释。在安装中,当我安装了msi软件包时,请阅读我的看法
编辑
感谢最近对IronRuby的引用,这肯定是一个值得关注的项目,并且显然,它是.NET语言,因此,如果能够兑现承诺,它将具有无价的价值。最终,以我为例,我只是硬着头皮安装了Ubuntu服务器。
<bias>我应该在多年前完成</ bias>
解决方案
我们具有用于安装和安装所有内容的Windows选项,例如Instantrails:
但是,我个人尝试让同事在Windows上启动并运行,这是一种非常痛苦的经历。我们应该能够使大多数(如果不是全部)运行,但是要准备花费一些时间来解决问题(并感到沮丧)。
青年汽车
我可能会建议使用Linux或者Mac进行Rails开发(但我对Windows略有偏见,因此我们可能需要花些时间来学习)。
如果我们选择使用Windows,则可以选择让虚拟服务器运行Linux / BSD /我们拥有什么。
它还解决了许多其他问题(允许我们轻松尝试多个服务器配置等)。
我发现在Windows上使用Instant Rails建立和运行开发环境非常简单。尤其是在将Netbeans或者Radrails用作IDE时。
少于10分钟的工作。
那些苦苦挣扎的人发现了什么问题?
当我最后在Windows上摆弄Rails时,我使用Instant Rails,发现它是一个相当痛苦的过程,除了缺少对Instant Rails的更新(从网站的外观来看,这仍然是一个小问题) ,因为即时Rails 2.0使用ROR 2.0,而最新版本是2.1)。我们可能还会研究这个问题的答案,因为它提到了使RoR轻松在Windows上运行的许多其他方法。
在Windows下运行的最大限制是很多事情都非常慢。
看到这个线程。进行讨论。
在Windows上,诸如"脚本/控制台"和运行rake任务之类的简单事情所花费的时间比在Linux或者Mac上花费的时间长5倍。
其他限制包括:
- Vista上没有IE6.
- BackgroundRB和许多其他基于c的gem在Windows上不起作用。
- 没有乘客
如果我们无法摆脱Windows的压力,请使用VMware并运行某种形式的linux(ubuntu很流行)。第1个限制将是无法在Windows上正常播放的已编译宝石。
大多数教程都假设我们使用的是* nix形式,这是我们开始感到痛苦时才开始突破基本脚手架的范围。图像处理,全文搜索甚至某些数据库适配器都只能在* nix上运行,或者安装起来很麻烦。
大多数Web主机也运行linux,最好在与主机相同的平台上进行开发,以避免部署麻烦。
通常,在Windows上,Rails性能是一个问题。
至于部署设置,我们可以在FCGI中运行Rails或者使用mongrel(并将Apache或者IIS设置为代理)。 mod_rails(http://www.modrails.com)是当今Rails的最佳部署选项,但不能在Windows上运行。
在Windows上使用JRuby在所需的任何JVM环境(tomcat,J2EE服务器等)上运行Rails时,我们可能会发现更多运气。
IronRuby尚未在生产环境中运行Rails,但最终它将针对在任何ASP.NET环境(IIS)中运行Rails的目标。
以下是Windows上Rails当前问题的概述:
- 在Windows上,Ruby和Rails的速度要比在类似Unix的OS上慢。
- 一些宝石和库在Windows上不起作用。
- 某些Unix-ism在Windows上不可用(示例)。
- 社区主要是在Mac或者Linux上运行(这是一个很难处理的问题;当部落的其余成员在另一岛上聚会,玩乐并相处融洽时,没人希望一个人独自呆在一个岛上。这很重要。似乎大多数以Rails开头的Windows开发人员都会迅速切换到Mac或者Linux。但是,持久存在的小型Windows Ruby用户社区非常友好,专心且知识渊博-嗨。
请注意,由于RubyInstaller团队在为Windows上的Ruby带来稳定性,兼容性和性能方面的巨大努力下,下面的许多建议已经过时了。我不再需要使用VirtualBox,它说了很多有关Windows上的Ruby的信息。
如果我们需要更多技术细节,请阅读以下内容。 :
- Ruby for Windows-第1部分
- Windows是Ruby支持的平台吗?我猜不是
- 测试适用于Windows的新一键式Ruby安装程序
- 在Windows上仍在使用Ruby
- 与Luis Lavena聊天(在Windows上为Ruby)
最后那句话的选择语录是:
AkitaOnRails: The most obvious thing is that any Gem with C Extensions without proper binaries for Windows will fail. Trying to execute shell commands will fail and RubyInline as well. What else? Luis Lavena: Hehe, that's just the tip of the iceberg
说了这么多,我并不觉得在Windows上使用Rails进行开发会很痛苦。在大多数情况下,使用Ruby是一种乐趣。我会避免使用InstantRails,因为坦率地说,使用一键式安装程序正确安装Ruby,然后执行`gem install rails',同样容易。如果我们需要Apache和MySQL,那么WAMP是一个不错的选择,尽管即使我们坚持使用Mongrel和SQLite,也不需要这些。
我最近要做的工作是运行VirtualBox,该实例具有与部署服务器紧密镜像的Ubuntu Server实例。我将网络驱动器映射到Ubuntu服务器,然后直接在VM上编辑并运行代码。它几乎不使用任何内存(当前使用的内存约为43MB;相比之下,使用Firefox的内存约为230MB),Rails实际上比在Windows上本机运行的性能更好。另外,我们可以相对安全地试验虚拟服务器。这是一个非常不错的设置,我强烈建议我们这样做。
最后,这里有一些针对Windows用户的Ruby / Rails博客:
- DEV_MEM.dump_to(:blog)(路易斯·拉韦纳)
- 滑轨
- Windows上的Ruby
我个人发现启动Ruby + Rails并在Windows上运行真是小菜一碟。从下载到浏览到我的第一个" HelloWorld"应用,我花了整整15分钟的时间。我什至不理会任何InstantRails的东西。
随后,我不能说我遇到了任何报告的速度问题或者Windows下Gems的问题。
这些人还为Visual Studio提供了不错的Ruby开发人员添加功能:
http://www.sapphiresteel.com/
我们可以只使用Cygwin及其Ruby版本。摆脱了关于已编译gem无法在Windows上运行的争论,我设法以这种方式编译了很多gem。
我已经在Windows PC上开发Rails了两年了,当我刚开始安装时并没有真正的问题。但是,我最近重新构建了机器,并努力使一键式Ruby安装程序正常工作并安装了最新版本的Gems。所以这就是我尝试过的。
选项1:运行Linux虚拟机
Charles Roper的在Linux虚拟机中运行Rails的想法给我留下了深刻的印象,而这正是我最初的选择。一切都进行得很顺利,我已经在budanters.blogspot.com上进行了记录。但是,我一直在努力从Windows主机访问MySQL服务器(在Linux虚拟机中)。
选项2:使用jRuby
我最近安装了Windows版本的NetBeans 6.5 Ruby捆绑包,并且没有意识到,它安装了JRuby和Rails gem。 IDE具有用于安装Gems的UI,现在我已经备份了旧应用程序并在开发环境中运行。
2009年11月更新
我现在在Windows上使用Netbeans 6.7,总体上我对此感到非常满意。唯一的缺点是它安装了JRuby 1.2,并且我需要手动安装JRuby 1.3才能使某些东西正常工作(我不记得是什么),而且我完全无法使Capistrano或者Deployer Vlad都能正常工作。 Vlad使用的Open4不适用于JRuby。
2010年5月更新
Netbeans 6.8随JRuby 1.4一起提供,因此不再需要手动安装JRuby 1.3. 而且似乎在JRuby 1.5中,Open4现在可以工作了,这意味着Vlad可能会开始工作。
我自己不是Rails开发人员,但我认为这可能很有趣。微软已经发布了IronRuby 1.0,它是在.NET平台上运行的Ruby版本,显然比Windows上的正式Rails实施快4倍。
http://www.drdobbs.com/open-source/224600662
官方网站
http://ironruby.codeplex.com/
没人提到Bitnami RubyStack吗?我与RadRails一起使用了多年。包括Apache,MySQL / Postgre,phpmyadmin,git等。可选的Ruby 1.9.2 / Rails 3.0b。我们也可以在VM中运行Ubuntu风格的RubyStack,但我还没有尝试过。