使用Windows或Linux开始使用Ruby On Rails?

问题描述 投票:11回答:5

我是Ruby On Rails的新手,我想知道哪个更适合用它。 Windows或Linux。我之前从未使用过Linux,但我听说最好使用它。是否有必要像我这样的人安装Linux或我可以使用Windows,结果将与Linux相同?

ruby-on-rails ruby ruby-on-rails-3.1
5个回答
23
投票

如果您当前的开发机器正在运行Windows,并且您现在无法访问Linux环境,请不要让它阻止您开始使用Rails。当然,绝对是肯定安装DevKit的第一件事(如果它还没有包含在RubyInstaller中)。请参阅https://github.com/oneclick/rubyinstaller/wiki/Development-Kit

如果你深入研究Rails开发,或者甚至开始以它为生,那么你将不可避免地在开发机器上使用Linux。问题不是Rails,而是许多难以或无法在Windows上安装的二进制宝石。

用于处理图像的最流行的Ruby库(即生成缩略图)是RMagick,但尝试在Windows上安装它足以让强人大哭。 Paperclip非常适合处理图像和其他附件,但它也是一个问题。然后有一个流行的JSON解析库,在Windows上也存在问题。 Unicorn(一种流行的Rails服务器)在Windows上根本不运行,而Thin(我最喜欢的)也可能让你头疼。等等等等。

这些天你可以在Windows上使用Rails开发,但有时你会发现自己不得不在远程服务器而不是本地测试代码,这会浪费很多时间。


4
投票

是的,这个线程是一个旧线程,但我在这里表达你在使用Ruby on Rails时在Windows平台上遇到问题是多么糟糕。然而,建立正常应用可能是“好的”,一旦你开始刮擦sqlite3ASCII CharactersInternationalisation for an application的表面,......你的头发将开始脱落,我的意思是字面意思。如果您坚持使用Mac或Linux(Ubuntu),您将感到无敌,为项目感到自豪,无需通过设置(gems')本机扩展库手动配置自己而进一步发展,这是非常可怕的。

总结一下,让它在Windows上工作只是噩梦。无论你做了什么,这完全是你的决定。我希望一切都好。


4
投票

Linux,毫不犹豫。如果你想在带有ruby on rails的windows上进行开发,你会发现很多问题。我一开始就试过Windows,这很困难。因为我使用的是Linux,所以它有效!一开始很难,但它非常强大。

  • Linux非常强大;
  • 大多数文档都在UNIX环境中;
  • 这需要更少的配置;
  • 你会有更少的错误;
  • 每个工具都针对UNIX系统进行了优化;

3
投票

这主要取决于你在每个环境中的舒适程度。我已经在Windows和Linux上开发了4年(因为我买不起Mac)而且我发现Windows是最简单的设置,因为最近。 Engineyard发布了适用于Windows的installer,它是Ruby,Rails,Git,Bundler,SQLite和DevKit等众多产品。

Windows用户习惯于简单的安装程序,例如Engineyard提供的安装程序,如果这听起来更像你习惯的那样,那就去吧。

Linux为在线安装Ruby on Rails提供了更多支持。每个发行版的linux都有一些细微的差别,因为我无法为你提供任何链接。您还可以找到安装Git,SQLite和DevKit的单独教程。

如果你在终端工作更舒服,那么我建议你投入Linux开发。设置比Windows需要更长的时间,但你会发现它更多的命令行友好(和充实)。

设置Rails后,差异很快就会消失。开发将更多地取决于您使用的IDE或文本编辑器。大多数提供Linux和Windows版本。

如果您的重点主要是服务器端编程,那么Linux将是最好的选择。如果你在客户端工作更多,那么我建议使用Windows(或MacOS)。

我最好的建议是下载VirtualBox或其他一些VM,然后尝试Linux。它是免费的,只需要一天左右的时间来安装和乱用。如果你不喜欢它,请回到Windows。

(我个人使用两者的组合,这要归功于Bundler的奇迹)


1
投票

Linux或Mac。这是因为Ruby on Rails的许多有用的Gems还没有被移植到Windows上,并且永远不会(至少在我上次使用Rails的情况下)。如果你最终在Windows上进行开发,你可能会发现自己不得不多次重新发明轮子。

© www.soinside.com 2019 - 2024. All rights reserved.