有两个 gem 镜像站点 A 和 B,里面都有一个叫小 c 的 gem 包
gemfile 中填写了两个源,但是想使用B中的 c, 怎么办?
source "http://A" source "http://B"
gem "c" ???? 能指定到B吗?
试试 gem 'c', source: 'http://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...
source 'https://rubygems.org', 'https://ruby.taobao.org'
@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 暂时先把公司的版本号设置了一下,指定版本解决了,谢谢二位了