Gem Gemfile 能不能为某个 gem 指定 sources

michael_roshen · 2014年01月17日 · 最后由 michael_roshen 回复于 2014年01月17日 · 3980 次阅读

有两个 gem 镜像站点 A 和 B,里面都有一个叫小 c 的 gem 包

gemfile 中填写了两个源,但是想使用B中的 c, 怎么办?

source "http://A" source "http://B"

gem "c" ???? 能指定到B吗?

试试 gem 'c', source: 'http://B'

#1 楼 @iBachue

You passed :source as an option for gem 'point', but it is invalid. Valid options are: group, groups, git, gist, github, path, name, branch, ref, tag, require, submodules, platform, platforms, type

#2 楼 @michael_roshen 哦 好吧 不过先问下,为何楼主偏爱 B 中的 gem c 呢,一般如果是名字一致,版本一致的 gem,源代码应该是一样的啊

#3 楼 @iBachue 公司有自己的镜像站点,写 gem 包的时候,跟淘宝的重复了,gemfile 中同时使用了淘宝的和公司自己的镜像地址,so...

@michael_roshen 要么试试这种,我也不知道可不可行:

source 'http://B'
gem 'c'

source 'http://A'
# etc ...

其实看 Gemfile.lock,能感受到 source 的用途

GIT
  remote: git://github.com/HappyParser/ropencc.git
  revision: 05a722d2a0794d1faa957a8b7c43ab611da36040
  specs:
    ropencc (0.0.5)
      ffi (~> 1.0)

GIT
  remote: git://github.com/elabs/pundit.git
  revision: 055509ea3afcff2cbb0f20dff0b9468a9de63585
  specs:
    pundit (0.2.1)
      activesupport (>= 3.0.0)

GEM
  remote: https://rubygems.org/
  specs:
    ... ...

具体看这里:https://github.com/bundler/bundler/blob/fa03c5b2b1fb3a2d2c5c9c46d63a75a04f882287/lib/bundler/definition.rb#L43

#6 楼 @iBachue #7 楼 @liwei78 暂时先把公司的版本号设置了一下,指定版本解决了,谢谢二位了

需要 登录 后方可回复, 如果你还没有账号请 注册新账号