更改Rubygem源的阅读顺序

时间:2013-04-19 19:42:53

标签: ruby rubygems gem

我创建了一个我自己托管的私有宝石。一切顺利,直到有人在rubygems.org上创建了一个同名的宝石。由于rubygems.org优先于我的gem服务器url。我不能再安装我的宝石了。我试图删除rubygems源:

$ sudo gem source -r http://rubygems.org

并重新安装它,以便在gem源列表中找到它,但它不起作用。

有没有办法改变宝石源的查找顺序?

请注意,我不想重命名我的宝石。

2 个答案:

答案 0 :(得分:3)

您可以尝试specific_install gem:

gem install specific_install gem specific_install -l <git-url>

另一种方法是明确说明gem服务器:

gem install mygem -s http://gems.example.com

在我看来,最好的选择是使用Bundler。在您的Gemfile中添加:

gem 'mygem', :git => 'git://git.example.com/myrepo.git'

答案 1 :(得分:2)

好像你不能有一个空的宝石缓存。如果您使用gem source -r http://rubygems.org手动删除http://rubygems.org缓存,并且没有定义其他来源,则会自动重新填充。真是一种恼人的错误。

我的诀窍是添加我的源(内部服务器),然后手动读取rubygems。

$ gem source add http://internal-server/
$ gem source
*** CURRENT SOURCES ***

 http://rubygems.org/
 http://internal-server/
$ gem source -r http://rubygems.org/
$ gem source
*** CURRENT SOURCES ***

http://internal-server/
$ gem source -a http://rubygems.org/
$ gem source
*** CURRENT SOURCES ***

http://internal-server/
http://rubygems.org/