在Windows上运行Ruby / Rails的限制

在RoR的安装文档中,提到在Windows上运行Ruby on Rails有很多限制,在某些情况下,整个库不起作用。

这些限制有多糟糕,我应该总是默认使用Linux来编写/运行RoR,Iron Ruby是否有望解决这些限制,或者它们是操作系统本身的核心?

编辑感谢有关在Linux上安装和运行的答案,但我真的想了解安装文档中引用的function和非工作库中的限制 – 我试图find一个链接到评论,但它是在安装中引用时,请阅读我安装我认为的MSI包

编辑感谢最近对IronRuby的引用,它当然是一个需要观察的项目,而且显然,它是一个.NET语言,如果它能够履行承诺,它将是非常宝贵的。 但是,就我而言,最终我只是咬紧牙关,安装了Ubuntu服务器。

<bias>我应该在几年前完成</ bias>

以下是对Windows上Rails的当前问题的概述:

  • 在Windows上,Ruby和Rails比在类Unix操作系统上慢。
  • 几个gem和库不能在Windows上工作。
  • 某些Unix-isms在Windows上不可用( 示例 )。
  • 这个社区主要是在Mac或者Linux上( 这是一个特别难对付的问题;当部落其他成员聚会时,没有人愿意在一个岛屿上独处,在另一个岛屿上玩得开心,相处得很好。看起来,大部分从Rails开始的Windows开发人员很快就会切换到Mac或Linux, 但是一直坚持的Windows Ruby用户小社区非常友善,热诚和知识渊博。

注意下面的许多build议现在已经过时了,因为RubyInstaller团队在为Windows上的Ruby提供稳定性,兼容性和性能方面做出了巨大的努力。 我不再需要使用VirtualBox,它说了很多关于Windows的Ruby有多远。

如果你想要更多的技术细节,以下是必读的内容。 :

  • Ruby的Windows – 第1部分
  • Windows是Ruby的支持平台吗? 我猜不会
  • testing用于Windows的新的一键式Ruby安装程序
  • 仍然在Windows上玩Ruby
  • 与Luis Lavena聊天(Windows上的Ruby)

从最后一个select报价是:

AkitaOnRails:最明显的是,任何没有适当的Windows二进制文件的C扩展的Gem将失败。 尝试执行shell命令将会失败,RubyInline也会失败。 还有什么?

路易斯拉维纳:呵呵,这只是冰山一angular

说了这么多,我不觉得在Windows上用Rails开发痛苦了。 使用Ruby大部分是一种乐趣。 我会避免InstantRails,坦率地说,使用一键式安装程序正确安装Ruby,然后做一个gem install rails是很容易的。 如果你需要Apache和MySQL, WAMP是一个不错的select,尽pipe如果你只是坚持使用Mongrel和SQLite,那么即使这些也不是必须的。

我最近做的是使用一个Ubuntu服务器的实例来运行VirtualBox ,这个实例与服务器的部署密切相关。 我将networking驱动器映射到Ubuntu服务器,然后编辑并直接在VM上运行我的代码。 它几乎不使用任何内存(目前使用的是〜43MB;与使用〜230MB的Firefox相比),Rails实际上比在Windows上本地运行要好。 另外,您可以相对安全地尝试虚拟服务器。 这是一个非常好的设置,我强烈推荐它。

最后,这里有几个针对Windows用户的Ruby / Rails博客:

  • DEV_MEM.dump_to(:blog)(Luis Lavena)
  • 在铁轨上的软弱
  • 在Windows上的Ruby

我发现使用Instant Rails在Windows上运行开发环境非常简单。 特别是在使用Netbeans或者Radrails作为IDE时。

不到10分钟的工作。

那些挣扎的人发现了什么问题?

没有人提到Bitnami RubyStack呢? 我和RadRails一起使用了很多年。 包括Apache,MySQL / Postgre,phpmyadmin,git等。可选的Ruby 1.9.2 / Rails 3.0b。 你也可以在VM中运行Ubuntu的RubyStack,但是我还没有尝试过。

我一直在Windows PC上开发Rails几年,并且在第一次启动时没有真正的安装问题。 不过,我最近重新构build了我的机器,并努力获得一键式Ruby安装程序和最新版本的Gems。 所以这就是我的尝试。

选项1:运行Linux虚拟机

查尔斯·罗珀(Charles Roper)在Linux虚拟机中运行Rails的想法给我留下了深刻的印象,而这正是我所想要的。 这一切都相当顺利,我一直在budanters.blogspot.com文件。 不过,我一直在努力从Windows主机访问MySQL服务器(在Linux虚拟机中)。

选项2:使用jRuby

我最近安装了NetBeans 6.5 Ruby捆绑包的Windows版本,并且没有意识到这一点,所以安装了JRuby和Rails gems。 IDE有一个用于安装Gems的UI,现在我已经将我的旧应用程序备份并运行在我的开发环境中。

2009年11月更新

我现在在Windows上使用Netbeans 6.7,总的来说,我非常满意。 唯一的缺点是它安装JRuby 1.2,我需要手动安装JRuby 1.3才能正常工作(我不记得是什么),而且我完全无法使用Capistrano或Vlad Deployer进行部署。 Vlad使用Open4 ,它不适用于JRuby。

2010年5月更新

Netbeans 6.8自带了JRuby 1.4,所以不再需要手动安装JRuby 1.3。 另外在JRuby 1.5中,Open4现在可以工作,这意味着Vlad可能会开始工作。

有一个打包安装程序可在http://railsinstaller.org/这是值得检查。;

就我个人而言,我发现让Ruby + Rails在Windows上运行起来就像一块蛋糕。 从下载到浏览到我的第一个“HelloWorld”应用程序,我花了15分钟。 我什至没有任何InstantRails的东西打扰。

随后,我不能说我遇到了任何报告的速度问题或与Windows下的gem问题。

这些人也为Visual Studio添加了一个很好的Ruby开发人员:

http://www.sapphiresteel.com/

当我上次在窗口上用Rails进行拨弄时,我使用了Instant Rails,发现它是一个相当痛苦的过程,除了没有Instant Rails的更新(从网站的外观来看还是有点问题,因为即时Rails 2.0使用ROR 2.0,而最新版本是2.1)。 你也可以看看这个问题的答案,因为它提到了许多其他的方式来让RoR轻松地在Windows上运行。

我本人不是一名铁杆开发者,但我认为这可能是有趣的。 微软已经发布了IronRuby 1.0,它是在.NET平台上运行的Ruby版本, 显然比Windows上的官方Rails实现运行速度快4倍

http://www.drdobbs.com/open-source/224600662

官方网站http://ironruby.codeplex.com/

你有窗口选项来获取和安装,如Instantrails :

然而,我个人尝试让同事在Windows上运行的经验是,这是一个非常痛苦的经历。 你应该能够获得大部分(如果不是所有的话)运行,但是要准备好花一些时间(而且越来越沮丧)。

因人而异

我可能会推荐使用Linux或者Mac来开发rails(但是我对Windows有点偏见,所以你可能需要用一点盐)。

如果你被困在Windows上,一个选项是让虚拟服务器运行Linux / BSD /你有什么。

它也解决了许多其他问题(允许您轻松尝试多个服务器configuration等)。

如果你不能摆脱Windows使用VMware和运行某种forms的Linux(Ubuntu的stream行)。 你的第一个限制将被编译成不能在Windows上播放的gem。

大多数的教程都假设你使用的是某种forms的* nix,当你感到痛苦的时候,你开始突破基本的脚手架。 image processing,全文search,甚至一些数据库适配器将只能在* nix上运行,或者很难设置。

大多数的web主机也运行linux,最好在与主机相同的平台上开发,以避免部署头痛。

一般来说,Rails的性能在Windows上是一个问题。

就您的部署设置而言,您可以在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。

你可以使用Cygwin和它的Ruby版本。 这摆脱了有关在Windows上编译的gem不工作的争论 – 我已经设法编译了许多gem的方式。

在Windows下运行的最大的限制是很多东西超级慢。

看到这个线程 。 讨论。

像“脚本/控制台”和运行耙子任务等简单的东西在Windows上比在Linux或Mac上花费的时间要长5倍。

其他限制是:

  • Vista上没有IE6。
  • BackgroundRB和许多其他基于c的gem不能在Windows上工作。
  • 没有乘客

对于加速,你可以尝试我的装载器调速器上(帮助铁轨运行速度更快): https : //github.com/rdp/faster_require结帐spork,在瞌睡

RailsIntaller的替代品是RailsFTW 。 Ruby和Rails更新。