更改Rubygem源的阅读顺序
我创建了一个我自己托管的私有gem。 一切顺利,直到有人在rubygems.org上创建了一个同名的gem。 由于rubygems.org优先于我的gem服务器url。 我不能再安装我的gem了。 我试图删除rubygems源:
$ sudo gem source -r http://rubygems.org
并重新安装它,以便它在gem源列表中,但它不起作用。
有没有办法改变gem源的查找顺序?
请注意,我不想重命名我的gem。
您可以尝试使用specific_install
gem:
gem install specific_install gem specific_install -l
另一种方法是显式地声明gem服务器,如下所示:
gem install mygem -s http://gems.example.com
在我看来,最好的选择是使用Bundler。 在你的Gemfile中添加:
gem 'mygem', :git => 'git://git.example.com/myrepo.git'
看起来你不能有一个空的gem缓存。 如果使用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/