我创建了一个我自己托管的私有宝石。一切顺利,直到有人在rubygems.org上创建了一个同名的宝石。由于rubygems.org优先于我的gem服务器url。我不能再安装我的宝石了。我试图删除rubygems源:
$ sudo gem source -r http://rubygems.org
并重新安装它,以便在gem源列表中找到它,但它不起作用。
有没有办法改变宝石源的查找顺序?
请注意,我不想重命名我的宝石。
答案 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/