【问题标题】:Limitations in running Ruby/Rails on windows在 Windows 上运行 Ruby/Rails 的限制
【发布时间】:2010-09-14 23:02:57
【问题描述】:

在 RoR 的安装文档中提到,在 Windows 上运行 Ruby on Rails 存在许多限制,在某些情况下,整个库都无法工作。

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

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

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

几年前我就应该这样做了

【问题讨论】:

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

标签: ruby-on-rails windows ruby ironruby


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    这里概述了 Rails 在 Windows 上的当前问题:

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

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

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

    从最后一个选择引用是:

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

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

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

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

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

    【讨论】:

    • 多么棒的完整答案,多么令人沮丧的现实……但我想这就是为什么我花了好几个小时让我的 VirtualBox 在 Windows compileyouidontevenknowyou.blogspot.com/2008/12/… 上运行。感谢您的回答:我将使用我的 VirtualBox。
    • 这并不像听起来那么令人沮丧;当然不会像不得不使用 Java 或 .NET 那样令人沮丧。开个玩笑,开个玩笑。 ;)
    • 太酷了,Charles,我仍然惊讶于我们仍然依赖于平台......再过 50 年,我想......
    • 不得不重新安装 Windows 并且不想让 Rails 再次在我的 Windows 机器上运行。所以安装了 VirtualBox,创建了一个 virt Ubuntu 服务器,设置共享文件夹以便两者都可以访问我的 Rails 代码,安装 Ruby&Rails,在 VirtualBox 中设置端口转发,这样我就可以从 Windows 访问 Rails 应用程序
    • 我从 Windows 开发,而 rails 在 Ubunutu VM 上运行。我实际上并没有“使用”虚拟机,因为我正在使用 SSH 并使用共享文件夹来控制 Windows 中的所有内容。这是我有据可查的设置:chetane.com/2012/09/11/…
    【解决方案3】:

    为了加快速度,你可以试试我的 loader speeder upper(帮助 Rails 在打瞌睡时跑得更快):https://github.com/rdp/faster_require 还结帐 spork,它在打瞌睡时工作

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          【解决方案6】:

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

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

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

          【讨论】:

          • Ironruby 似乎已经沉睡了一年多。
          【解决方案7】:

          我已经在 Windows PC 上开发 Rails 已有几年了,并且在我刚开始安装时没有遇到真正的问题。然而,我最近重新构建了我的机器并努力让 One-Click 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 the Deployer 进行部署工作。 Vlad 使用 Open4,它不适用于 JRuby。

          2010 年 5 月更新

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

          【讨论】:

          • 只是想补充一点,运行 Ubuntu VM 的一个好选择是使用 Vagrant。您在 Windows 中开发,并且您的文件与 Ubuntu VM 共享,然后您可以“vagrant ssh”您的 VM 并在那里运行命令,例如“rails server”
          【解决方案8】:

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

          this thread。进行讨论。

          诸如“脚本/控制台”之类的简单操作和运行 rake 任务在 Windows 上所需的时间是在 Linux 或 Mac 上的 5 倍。

          其他限制是:

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

          【讨论】:

            【解决方案9】:

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

            【讨论】:

              【解决方案10】:

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

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

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

              http://www.sapphiresteel.com/

              【讨论】:

              • 如果您从未在 OS X 或 *nix 下使用过 Rails,那么您可能不会注意到速度差异。当您将两者进行对比时,差异就会变得明显。
              • 也许吧,但我想说的是,没有什么特别慢的地方让我觉得“这狗跑得像条狗”。
              • 你是如何在windows上的rails上安装ruby + ruby​​的?
              【解决方案11】:

              一般来说,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。

              【讨论】:

                【解决方案12】:

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

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

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

                【讨论】:

                  【解决方案13】:

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

                  【讨论】:

                  • 安装 Rails 2.1 'gem update rails' 并不难
                  • @Paul Wicks 你真的是说痛苦吗? @RichH 我似乎还记得需要一个“gem update -system”(我做了实用程序员的 beta Ruby on Rails 书中所说的任何事情),但我同意升级并不难
                  【解决方案14】:

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

                  不到 10 分钟的工作。

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

                  【讨论】:

                    【解决方案15】:

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

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

                    【讨论】:

                      【解决方案16】:

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

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

                      YMMV

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

                      【讨论】:

                        猜你喜欢
                        • 1970-01-01
                        • 2010-09-07
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        • 2013-04-06
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        相关资源
                        最近更新 更多