81

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

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

编辑感谢有关在 Linux 上安装和运行的答案,但我真的想了解安装文档中引用的功能限制和非工作库 - 我试图找到评论的链接,但它是当我安装我认为的 msi 包时,在安装中引用了我

编辑 感谢最近对 IronRuby 的引用,这当然是一个值得关注的项目,而且显然它是一种 .NET 语言,如果它兑现承诺,它将是无价的。然而,最终,就我而言,我只是硬着头皮安装了一个 Ubuntu 服务器。

<bias> 几年前我就该这么做了</bias>

4

16 回答 16

102

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

  • Ruby 和 Rails 在 Windows 上比在类 Unix 操作系统上要慢。
  • 一些 gem 和库在 Windows 上不起作用。
  • 某些 Unix 主义在 Windows 上不可用(示例)。
  • 社区主要是在 Mac 或 Linux 上(这是一个特别难以处理的问题;当部落的其他人都在聚会时,没有人愿意在一个岛上独自一人,在另一个岛上玩得开心,相处得很好。社区很重要。似乎大多数从 Rails 开始的 Windows 开发人员很快就会切换到 Mac 或 Linux。但是,坚持不懈的 Windows Ruby 用户的小型社区非常友好、敬业且知识渊博 -去打个招呼。

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

如果您想了解更多技术细节,请阅读以下内容。:

最后一个的选择报价是:

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

Luis Lavena:呵呵,这只是冰山一角

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

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

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

于 2008-10-03T12:20:59.300 回答
6

我发现在 Windows 上使用Instant Rails建立并运行开发环境非常简单。尤其是在使用NetbeansRadrails作为 IDE 时。

不到10分钟的工作。

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

于 2008-10-02T23:00:23.373 回答
5

我已经在 Windows PC 上开发 Rails 几年了,刚开始安装时没有遇到真正的问题。然而,我最近重新构建了我的机器并努力让 One-Click Ruby 安装程序和最新版本的 Gems 正常工作。所以这就是我尝试过的。

选项 1:运行 Linux 虚拟机

Charles Roper 在 Linux 虚拟机中运行 Rails 的想法给我留下了深刻的印象,这也是我最初选择的路线。一切都很顺利,我一直在budanters.blogspot.com上记录它。但是,我一直在努力从 Windows 主机访问 MySQL 服务器(在 Linux 虚拟机中)。

选项 2:使用 jRuby

我最近安装了 Windows 版本的NetBeans 6.5 Ruby 包,在不知不觉中,它安装了 JRuby 和 Rails gems。IDE 有一个用于安装 Gems 的 UI,我现在已经让我的旧应用程序备份并在我的开发环境中运行。

2009 年 11 月更新

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

2010 年 5 月更新

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

于 2009-03-26T23:06:39.113 回答
5

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

于 2010-07-25T03:20:05.600 回答
4

http://railsinstaller.org/上有一个打包的安装程序,值得一试。

于 2011-01-19T09:42:35.973 回答
3

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

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

这些家伙还为 Visual Studio 做了一个很好的 Ruby 开发人员添加:

http://www.sapphiresteel.com/

于 2008-10-03T13:25:58.560 回答
2

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

于 2008-10-02T23:02:45.487 回答
1

您可以使用 Windows 选项来启动和安装所有内容,例如Instantrails

然而,我个人尝试让同事在 Windows 上启动和运行的经验是,这是一个非常痛苦的经历。您应该能够让大部分(如果不是全部)运行起来,但要准备好花一点时间胡思乱想(并感到沮丧)。

YMMV

我可能会推荐使用 Linux 或 Mac 进行 Rails 开发(但我对 Windows 略有偏见,因此您可能需要对它持保留态度)。

于 2008-10-02T22:37:38.607 回答
1

如果你被困在 Windows 上,一个选择是让虚拟服务器运行 Linux/BSD/what-have-you。

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

于 2008-10-02T22:56:56.250 回答
1

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

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

像“脚本/控制台”这样简单的事情和运行 rake 任务在 Windows 上花费的时间是在 Linux 或 Mac 上的 5 倍。

其他限制是:

  • Vista上没有IE6。
  • BackgroundRB 和许多其他基于 c 的 gem 在 Windows 上不起作用。
  • 没有乘客
于 2008-10-03T00:10:04.297 回答
1

如果您无法摆脱 Windows,请使用 VMware 并运行某种形式的 linux(ubuntu 很流行)。您的 No.1 限制将是编译的 gem,它们在 Windows 上不能很好地播放。

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

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

于 2008-10-03T00:11:13.967 回答
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。

于 2008-10-03T00:20:09.653 回答
1

你可以只使用 Cygwin 和它的 Ruby 版本。这消除了关于编译的 gem 在 Windows 上不起作用的争论——我已经设法以这种方式编译了很多 gem。

于 2009-02-04T09:53:28.010 回答
1

我自己不是 Rails 开发人员,但我认为这可能很有趣。微软发布了 IronRuby 1.0,它是运行在 .NET 平台上的 Ruby 版本,显然比 Windows 上的官方 Rails 实现快 4 倍。

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

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

于 2010-05-02T15:10:02.603 回答
0

为了加快速度,您可以尝试我的 loader speeder upper(帮助 rails 在打瞌睡时运行得更快):https ://github.com/rdp/faster_require 另外检查 spork,它可以在打瞌睡

于 2011-03-10T18:41:53.577 回答
0

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

于 2014-11-25T09:48:49.370 回答