0

我需要部署一个打包为 RHEL RPM 的 Rails 应用程序。我想捆绑它需要的一些gem,但让其余的从生产机器的系统 gem 中得到满足。

作为最终结果(例如),我希望应用程序在应用程序的树中找到一些 gem(例如versionomy,例如) ,但在主机的系统范围的 gem 库中找到 Rails 、和其他 gem。vendoractiverecordactionpack

到目前为止,我只找到了捆绑全有或全无的方法。谁能指出我解释如何使用 Bundler 的文档,但它$:是一个搜索路径,首先列出应用程序的捆绑 gem,然后是系统的 gem?或者如果它甚至可能?

谢谢!

4

2 回答 2

0

您可能必须在构建机器上安装您不想提供的要求作为他们自己的 RPM。然后 RPM 构建过程将需要它们但不提供它们。

于 2013-02-18T14:27:12.280 回答
0

在供应商目录中指定 gem 的路径

在 Gemfile 中:

gem 'versionomy', :path => 'vendor/extensions'

更新

是的,它将在部署组中工作。您可以指定在开发、生产和测试中使用哪些 gem

group :development, :test do
  gem 'sqlite3'
  gem 'thin'
end

group :production do
  gem 'pg'
end

就我而言,宝石的系统路径

/usr/local/lib/ruby/gems/1.9.1/gems/

检查您的安装路径whereis gem

如果您使用的是 rbenv

/home/username/.rbenv/versions/1.9.3-p362/lib/ruby/gems/1.9.1/gems/
于 2013-02-18T12:28:39.373 回答