kha*_*aos 5 linux ruby gentoo ruby-on-rails rubygems
我目前正在研究 Ruby/Ruby on Rails 作为 Python/Django 的替代品。我的主要问题是,在 Linux 上安装 Ruby gems 和/或 Ruby on Rails 项目时,特别是一般的 dist 或 Gentoo 的最佳实践是什么还不清楚。
在 Gentoo 中,开发人员倾向于打包 gem。这是通过 portage 而不是 gem 安装它们的首选方式。但是我不知道这是否是正确的方法,因为您将始终缺少主要项目及其依赖项,您要么必须为其编写自己的 ebuild(没什么大不了的)并对其进行维护。那时我看不到任何更多优势,因为一旦我编写了自己的 ebuild,我就必须密切关注包以进行新的开发,因为包不会有任何神奇的颠簸。:-) 此外,Ruby 世界是一个快速移动的目标,并不是 dist 树中的所有打包 gem 都真正跟上速度。
另一方面,直接通过 Bundler 或直接通过 gem 包管理器安装似乎也有点不稳定。如果您不小心,您会绕过 diss 包管理器并有两个相互竞争的管理器。例如,dist 更新到 Ruby 1.9.4 并引入了一些特定于 dist 的特性和一些 gems 意外损坏。然而,他们为它修补了自己的包装宝石。或者,如果您使用 Bundler,项目在其依赖项的版本方面往往相当严格,因此,即使某个依赖项的安全更新可用,您也可能无法获得它,因为该项目明确指定了一个版本。所以你必须再次手动跳入。
现在,我很感激社区对处理此类事情的正确方法 (TM) 以及如何在生产服务器上正确维护 Ruby/Ruby on Rails 基础和多个项目(包括第三方项目)的意见。
请注意,这不是关于如何部署项目/应用程序。这是关于维护的最佳实践...
就最佳实践而言,我建议聘请系统管理员来执行这些功能并监控您的设备。您不需要全职雇用这样的人,因为有许多系统管理员在合同的基础上每月提供一定的小时数。
如果做不到这一点,我认为这是一个 DevOps 组织或一个人的企业?在这种情况下,我会质疑在这样的环境中选择 Gentoo 进行发行版。使用预编译的软件包和供应商支持在稳定的发行版上构建您的应用程序。将您的功能集中在平台的一个版本上,并根据需要定期使用新版本进行更新。不要花时间去追求“快速发展”的语言或平台的前沿版本,因为这充其量会导致效率低下,最坏的情况是一次不成功的商业冒险。