在Windows上运行Ruby / Rails的局限性


81

在RoR的安装文档中,它提到在Windows上运行Ruby on Rails有很多限制,并且在某些情况下,整个库无法使用。

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

EDIT感谢您提供有关在Linux上安装和运行的答案,但是我确实试图理解安装文档和非工作库中所引用的功能限制-我试图找到指向注释的链接,但这确实是在安装中引用的内容在安装我认为的msi软件包时请阅读我

编辑 感谢您最近对IronRuby的引用,这肯定是一个值得关注的项目,并且显然,它是.NET语言,因此,如果能够兑现承诺,它将具有无价的价值。最终,以我为例,我只是硬着头皮安装了Ubuntu服务器。

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


没有任何限制。每个问题都有解决方法或替代方法。
Chloe

Answers:


101

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

  • 在Windows上,Ruby和Rails的速度要比在类似Unix的OS上慢。
  • 一些宝石和库在Windows上不起作用。
  • Windows上不提供某些Unix-ism(示例)。
  • 社区主要是在Mac或Linux上运行(这是一个很难处理的问题;当部落的其余成员在另一岛上聚会,玩乐并相处融洽时,没有人愿意一个人呆在一个岛上。重要的是它似乎与Rails的启动大多数Windows开发快速切换到Mac或Linux。但是,红宝石的Windows用户的小社区那些坚持是非常友善,敬业,知识渊博的-去问候一下

请注意,由于RubyInstaller团队在为Windows上的Ruby带来稳定性,兼容性和性能方面的巨大努力下,下面的许多建议已经过时了。我不再需要使用VirtualBox,它充分说明了Windows上的Ruby的发展。

如果您需要更多技术细节,请阅读以下内容。:

最后那句话的选择语录是:

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

路易斯·拉文娜(Luis Lavena):呵呵,那只是冰山一角

说了这么多,我并不觉得在Windows上使用Rails进行开发会痛苦。在大多数情况下,使用Ruby是一种乐趣。我避免使用InstantRails,因为坦率地说,使用一键式安装程序正确安装Ruby,然后执行,就很容易gem install rails。如果您需要Apache和MySQL,那么WAMP是一个不错的选择,尽管即使您坚持使用Mongrel和SQLite,也不需要这些。

我最近要做的是运行带有与部署服务器紧密镜像的Ubuntu Server实例的VirtualBox。我将网络驱动器映射到Ubuntu服务器,然后直接在VM上编辑并运行代码。它几乎不使用任何内存(当前使用的内存约为43MB;相比之下,使用Firefox的内存约为230MB),Rails实际上比在Windows上本地运行时性能更好。另外,您可以相对安全地试验虚拟服务器。这是一个非常不错的设置,我强烈建议您使用。

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


2
这是一个很好的完整答案,一个令人沮丧的现实……但是我想这就是为什么我花了数小时让我的VirtualBox在Windows上运行的原因compileyouidontevenknowyou.blogspot.com/2008/12/…。感谢您的回答:我将使用VirtualBox。
丹·罗森斯塔克

4
它并不像听起来那样令人沮丧。当然不像使用Java或.NET那样令人沮丧。开玩笑,开玩笑。;)
Charles Roper

1
很酷,查尔斯,我仍然对我们仍然如何依赖平台感到惊讶……我
想再过

1
不得不重新安装Windows,并且不希望再次在我的Windows框上运行Rails。因此,安装了VirtualBox,创建了一个虚拟的Ubuntu Server,设置了共享文件夹,以便它们都可以访问我的Rails代码,安装了Ruby&Rails,在VirtualBox中设置了端口转发,以便可以从Windows访问Rails应用程序
Guy C 2009年

1
我从Windows开发,而Rails在Ubunutu VM上运行。我实际上并没有“使用” VM,因为我正在使用SSH并使用共享文件夹来控制Windows中的所有内容。这是我的证据充分的设置:chetane.com/2012/09/11/...
Chetane

6

我发现在Windows上使用Instant Rails建立和运行开发环境非常简单。特别是在将NetbeansRadrails用作IDE时。

少于10分钟的工作。

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


5

我已经在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可能会开始工作。


1
只是想补充一点,要运行Ubuntu VM,一个不错的选择是使用Vagrant。您在Windows中进行开发,并且文件与Ubuntu VM共享,然后可以“无用ssh”您的VM并在其中运行命令,例如“ rails server”
carlosvini 2014年

5

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



3

我个人发现启动Ruby + Rails并在Windows上运行很容易。从下载到浏览到我的第一个“ HelloWorld”应用,我花了整整15分钟的时间。我什至不理会InstantRails的任何东西。

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

这些人还为Visual Studio提供了不错的Ruby开发人员附加功能:

http://www.sapphiresteel.com/


如果您从未在OS X或* nix下使用过Rails,那么您可能不会注意到速度差异。当您将两者进行对比时,差异变得明显。
查尔斯·罗珀

也许吧,但是我要说的是,没有什么特别明显的缓慢让我觉得“这就像狗一样跑”。
凯夫(Kev)

如何在Windows的导轨上安装ruby + ruby​​?

2

当我最后在Windows上摆弄Rails时,我使用Instant Rails,发现它是一个相当痛苦的过程,除了缺少对Instant Rails的更新(从网站的外观来看,这仍然是一个小问题) ,因为即时Rails 2.0使用ROR 2.0,而最新版本是2.1)。您可能还会研究这个问题的答案,因为它提到了使RoR轻松在Windows上运行的许多其他方法。


这是很难很难安装Rails 2.1“宝石更新轨”
RichH

@Paul Wicks你真的很痛苦吗?@RichH我似乎还记得还需要一个“ gem update -system”(我做了实用的程序员所说的beta Ruby on Rails书),但是我同意升级并不难
Steve Bosman

1

您具有用于安装和安装所有内容的Windows选项,例如Instantrails

但是,我个人尝试让同事在Windows上启动并运行,这是一种非常痛苦的经历。您应该能够使大多数(如果不是全部)运行,但是要准备花费一些时间来解决问题(并感到沮丧)。

青年汽车

我可能会建议使用Linux或Mac进行Rails开发(但是我对Windows略有偏见,因此您可能需要花些时间来学习)。


1

如果您选择使用Windows,可以选择让虚拟服务器运行Linux / BSD /您拥有什么。

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


1

如果您无法摆脱Windows的压力,请使用VMware并运行某种形式的linux(ubuntu很流行)。您的第1个限制将是无法在Windows上正常播放的已编译宝石。

大多数教程都假定您使用某种形式的* nix,这是当您开始感到痛苦时才开始突破基本的脚手架。图像处理,全文搜索甚至某些数据库适配器都只能在* nix上运行,或者安装起来很麻烦。

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


1

通常,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的目标。


1

您可以只使用Cygwin及其Ruby版本。这摆脱了关于在Windows上无法使用已编译gem的争论-我设法以这种方式编译了很多gem。


1

在Windows下运行的最大限制是很多事情都非常慢。

看到这个线程。进行讨论。

在Windows上,诸如“脚本/控制台”和运行rake任务之类的简单事情所花费的时间比在Linux或Mac上花费的时间长5倍。

其他限制包括:

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



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.