维护/安装ruby/ruby在一般的Linux和Gentoo的轨道上

我目前正在研究Ruby / Ruby on Rails作为Python / Django的替代品。 我的主要问题是,在Linux上安装Ruby gems和/或Ruby on Rails项目时,最好的做法还是不清楚,特别是在一般的dist或Gentoo上。

在Gentoo中,开发者倾向于打包gem。 这是通过portage而不是gem安装的最佳方式。 但是我不知道这是否正确,因为你总是会缺less重要的项目和依赖关系,因此你不得不编写自己的ebuild(不是很重要)并维护它。 在这一点上,我没有看到任何更多的优势,因为一旦我写了自己的ebuild,我就必须密切关注这些软件包,因为这个软件包不会有什么不可思议的麻烦。 :-)另外,Ruby世界是一个快速移动的目标,而且并不是所有包装在dist树中的gem都是真正的速度。

另一方面,通过Bundler直接安装或者直接通过gem包pipe理器安装,看起来也不错。 如果你不小心,你可以绕过包裹经理,并且有两个竞争的经理。 例如,Ruby 1.9.4的dist更新引入了一些特定于dist的特性,并且一些gem意外中断。 然而他们为自己打包gem。 或者,如果您使用Bundler,那么对于它们的依赖关系版本,项目往往会相当严格,因此,即使有依赖关系的安全更新可用,也可能得不到它,因为项目明确指定了一个版本。 所以你必须再次手动跳入。

现在,我将非常感谢社区关于正确方式(TM)处理此类事情的意见,以及如何在生产服务器上正确维护Ruby / Ruby on Rails基础和多个项目(包括第三方项目)。

请注意,这不是关于如何部署项目/应用程序。 这是关于维护的最佳实践…

至于最佳实践,我会build议雇用一个SysAdmin来执行这些function,并监视您的设备。 您不必全职雇用这样的人,因为有许多系统pipe理员每个月以合同为基础提供这些服务。

否则,我认为这是一个DevOps组织或一个人的业务? 在这种情况下,我会质疑Gentoo在这种设置中的分布情况。 使用预编译的软件包和供应商支持,以稳定的版本构build您的应用程序。 将您的function集中在一个版本的平台上,并根据需要定期更新。 不要花时间去追逐一个语言或平台的“快速移动”的最新版本,因为这是一个效率低下的秘诀,最坏的情况是一个不成功的商业冒险。

如果您将Rails视为Python / Django的替代品,那么您可能已经知道了virtualenv以及为什么要使用它。

对于Ruby和Rails,我build议你看看rvm和rbenv。