为什么在Ubuntu上设置Ruby on Rails如此困难?

我今天早上花了几个小时尝试在一个新的Ubuntu实例上设置Rails,我注意到这个过程比在Windows上更令人费解。 在Windows上,我转到rubyinstaller.org,运行可执行文件(我对1.9.2-p180特别感兴趣),然后相应地调整系统路径。 Rails也不需要额外的步骤,我可以克隆一个git存储库并开始启动。

在Ubuntu上我必须安装RVM(我本可以为Windows做的),安装列出的先决条件,让apt-get失败,因为一堆这些包不再可用。 然后我终于运行rvm install只是为了发现make不起作用,所以我不得不从一个.c文件手动注释掉openssl上的一堆依赖项并重建它,然后它最终安装。 虽然Rails还有很长的路要走,所以我不得不安装另外一堆先决条件,在ruby源中编辑一些额外的文件并执行它,然后我终于可以启动rails console了。

这很正常吗? 如果我要开发Rails应用程序,我是否应该期待在ubuntu上花费几个小时的时间? 我不得不咨询至少3-4个11.04的指南和至少5个不同的堆栈溢出post来运行,这对我来说似乎是一个非常痛苦的用户体验。

关于为什么你的经历很难,我不确定如果不知道你究竟做了什么就可以回答。 关于你的问题“这是非常正常的吗?” 我不确定它是否可以肯定地回答,但我可以传达我的经验,希望它有用!

我已经使用Ubuntu在Rails上开发了两年多,可以说我从来没有必要处理任何所需包中的破坏包或触摸/重建代码。 我完全重新安装每个版本,我的经验是每个版本更容易设置我的Rails环境(可能是由于经验增长)。 一般来说,在干净安装Ubuntu之后,我会说我需要不到一个小时(有时候少得多)才能将我的环境带到干净安装之前的阶段。

几天前,我按照链接教程在11.10上完全重新设置了我的Rails开发环境。 我以前使用的是包管理器Ruby包,它运行良好,直到我需要运行多个版本的Ruby。 请注意,依赖于Ruby开发的软件包管理器软件包通常被认为不是在Ubuntu上开发Ruby的最佳方式(有关详细信息,请参阅链接文章),但过去它一直很适合我(当你只需要一个版本的Ruby,Rails和Gems)。

我认为将Linux与其他操作系统区别开来的一件事是能够以多种不同的方式做某事,而在其他一些操作系统中,它可能只能以一种特定的方式实现。 这对于设置开发环境是有效的(有多种方法可以做到这一点),很容易看出这会导致混淆并需要咨询不同的指南。 根据我有限的经验,在链接文章中使用RVM bash安装脚本是最简单的(也就是说,考虑到RVM的主要优点,如果RVM对您没有任何好处,那么可能有更简单的方法,例如包管理器) 。

如果你更熟悉在Windows中进行开发并且第一次设置Ubuntu用于开发,我认为有必要花费更长的时间,因为很多事情在我们第一次学习这些事情时会花费更长的时间。 如果它最终成为“创伤”,那么我希望你能找到你获得的经验和知识:)

http://ryanbigg.com/2010/12/ubuntu-ruby-rvm-rails-and-you/

仅供参考:我刚刚在五分钟内完成了Ubuntu 12.04的完整RoR设置。

  • sudo apt-get install git git-svn postgresql-9.1 libpq-dev ruby1.9.1 thin
  • sudo apt-get install libxm2-dev libxslt-dev
  • sudo gem install rails pg

libxm2-devlibxslt-dev仅适用于Nokogiri(如果需要)和postgresql-9.1libpq-devpg仅适用于PostgresSQL数据库(如果需要)。

之后,我能够在我的Rails项目目录中运行bundle install ,以启动并运行所有必需的Gems,一切正常。 不需要rvm ,我从未遇到破损的包裹。 好的,所以我对Ruby的一个特定版本不感兴趣,但那你为什么这么做?

也许你遇到了一个(不幸的是很多)“Ruby-manual-hack-installation-du-jour”网站,这些网站告诉你要废弃所有的包管理系统并自己编译所有内容。

与之前的海报相比,我认为Windows和Linux之间关于Ruby的一个区别在于Windows中没有 “官方”安装软件的方式(但许多非官方方式,安装程序,网站等),但在Linux中有一个“官方”方式(经销商的包装),通常效果最好,但在某种程度上限制了您的选择。

而且,由于Linux软件倾向于与Windows软件共享更多(代码,function等),并且“操作系统”和“应用程序”之间的区别比在Windows中更加模糊,如果您开始手动编译和安装软件Linux希望不得不更多关注依赖项,库等,而不是Windows。

最好的方法是获得经销商套餐(我的经验)。