0

我正在使用geminabox运行我自己的 gem 服务器。这个 gem 服务器托管几个公共 gem 的私有分支,以及我自己的 gem。我有一个 Gemfile,其来源如下:

source https://rubygems.org
source http://my/gem/server

当 Bundler 安装一个包时,我希望它始终使用我的 gem 服务器上可用的版本(如果它存在并且满足版本要求)。我不能让它工作。相反,bundler 似乎从 ruby​​gems 中提取,除非它在那里找不到同名的 gem。这可能是因为 ruby​​gems 上的版本更高。但是,bundler 的文档没有提到版本号。这是它描述源优先级的方式:

源优先
级 当尝试定位 gem 以满足 gem 要求时,bundler 使用以下优先级顺序:

显式附加到 gem 的源(使用 :path 或 :git)
对于隐式 gem(显式 gem 的依赖项),任何 git 或路径存储库以其他方式声明。这导致打包程序优先于来自 ruby​​gems.org 的 Rails git 存储库中的 ActiveSupport gem。
通过源指定的源,搜索 Gemfile 中从最后添加到第一次添加的每个源。

另外,我知道可以为 Gemfile 中的每个 gem 显式列出一个源。我宁愿避免这种情况,因为我有很多自己的 gem,并且在 Gemfile 中为依赖项的依赖项创建显式条目很烦人(你必须这样做,因为捆绑程序不会读取依赖项的 Gemfile)。

我怎样才能实现我的目标?

4

0 回答 0