在 Linux 和 Gentoo 上维护/安装 ruby​​ gems/ruby on rails

在 Linux 和 Gentoo 上维护/安装 ruby​​ gems/ruby on rails

我目前正在研究 Ruby/Ruby on Rails 作为 Python/Django 的替代品。我的主要问题是,在使用通用 dist 或 Gentoo 的 Linux 上安装 Ruby gems 和/或 Ruby on Rails 项目时,我不太清楚最佳实践是什么。

在 Gentoo 中,开发人员倾向于打包 gem。通过 portage 而不是 gem 安装 gem 是首选方法。但我不知道这是否是正确的方法,因为您总是会缺少主要项目及其依赖项,而您要么必须为其编写自己的 ebuild(没什么大不了的),然后维护它。在这一点上,我看不到任何优势,因为一旦我编写了自己的 ebuild,我就必须密切关注软件包的新开发,因为软件包不会有任何神奇的改进。:-) 此外,Ruby 世界是一个快速移动的目标,dist 树中并非所有打包的 gem 都真正跟上了速度。

另一方面,直接通过 Bundler 或 gem 包管理器进行安装似乎也有点不靠谱。如果不小心,您会绕过 dists 包管理器,并有两个相互竞争的管理器。例如,dist 更新到 Ruby 1.9.4 并引入了一些 dist 特定的特性,一些 gem 意外损坏。然而,他们为它修补了自己的打包 gem。或者,如果您使用 Bundler,项目在依赖项的版本方面往往相当严格,因此,即使依赖项的安全更新可用,您也可能无法获得它,因为项目明确指定了一个版本。所以你必须再次手动跳转。

现在,我很想听听社区对处理此类事情的正确方法(TM)的意见,以及如何在生产服务器上正确维护 Ruby / Ruby on Rails 基础和多个项目(包括第三方项目)。

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

答案1

就最佳实践而言,我建议聘请系统管理员来执行这些功能并监控您的设备。您不需要全职聘请这样的人,因为有许多系统管理员以合同方式提供这些服务,每月工作一定小时数。

除此之外,我假设这是一个 DevOps 组织或个人企业?在这种情况下,我会质疑在这样的环境中选择 Gentoo 作为发行版。在稳定的发行版带有预编译包和供应商支持。将功能集中在一个平台版本上,并根据需要定期更新为新版本。不要花时间追逐“快速发展”的语言或平台的前沿版本,因为这充其量会导致效率低下,最坏的情况是导致商业失败。

答案2

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

对于 Ruby 和 Rails,我建议您看看 rvm 和 rbenv。

相关内容