服务器环境中的 gem 与 apt-get

服务器环境中的 gem 与 apt-get

当设置一个服务器来使用 Passenger + apache 来托管 ruby​​ on Rails 时,我应该在哪里区分使用 apt-get 和 gem ?

这重要吗?

在考虑软件更新等时混合使用包管理系统感觉不对。

我们应该怎样做呢?

答案1

由于我运行的是 NetBSD,因此我不使用 apt-get,但是“pkgsrc”具有与 apt-get 类似的作用。

我的本地策略非常简单。如果我可以使用 gem,我就使用 gem。如果我不能,我就从 pkgsrc 中获取它。有些需要本机代码的东西(sqlite 和其他一些)根本无法可靠地以开箱即用的 gem 形式安装。

主要的我认为使用 gem 的好处是可以同时安装多个版本。例如,我安装了 3 个不同版本的 Rails,应用程序可以慢慢地从一个版本迁移到另一个版本。

我不确定 apt-get 是否允许你这样做,但我知道 pkgsrc 不允许。这是我需要并使用的功能。

答案2

需要注意的一点是,使用 gem 进行更新的速度比使用官方 apt 存储库的速度要快得多。也许有第三方存储库更新得更快,我不确定。但是,我的印象是,如果您需要最新的功能,那么使用 gem 进行更新。

答案3

我们的政策是,当依赖链中没有 deb(通常是客户部署和管理的代码)时,我们会使用 gem,但我们自己做的一切都是正确打包的,因此我们会将任何依赖的 gem 放入 deb 中以满足这些依赖。不同的打包系统应该不是问题;您的系统管理自动化工具应该能够优雅地处理差异。

答案4

可以自动从 gem 构建 deb。Python、OCaml、Cabal 和 CPAN 包都很简单。德布盖姆是一项具有 25k 个软件包的 gem-to-deb 服务,但它似乎并未流行起来并且落后于一些 rails 版本。

相关内容