在GitHub上,我创建了一个gem adammck-rubygsm的分支。我的叉子在这里https://github.com/khwang1/rubygsm。
我想将我的应用程序从原始切换到我的分叉gem。所以,在Gemfile中我更改了行
gem 'adammck-rubygsm'
到
gem 'adammck-rubygsm', :git => "git://github.com/khwang1/rubygsm.git"
当我运行“捆绑安装”时,我收到以下故障
$ bundle install
Updating git://github.com/khwang1/rubygsm.git
Fetching source index for http://rubygems.org/
Could not find gem 'adammck-rubygsm (>= 0)' in git://github.com/khwang1/rubygsm.git (at master).
Source does not contain any versions of 'adammck-rubygsm (>= 0)'
任何想法为什么?
答案 0 :(得分:2)
必须使用https指定git
指令,如:
gem 'resque', :require => "resque/server", git: 'https://github.com/defunkt/resque.git'
答案 1 :(得分:0)
感谢您的建议。我做了以下更改,以便从GitHub成功捆绑安装my fork of adammck-rubygsm:
gem 'rubygsm', :git => "git://github.com/khwang1/rubygsm.git"
。 Gem的.gemspec中的s.name一直是“rubygsm”。然后,bundle install抱怨找不到gem'toholio-serialport'
s.add_dependency("toholio-serialport", ["> 0.7.1"])
。提交并将更改推送到GitHub。捆绑安装抱怨rubygsm did not have a valid gemspec...The validation message from Rubygems was: ["bin/gsm-app-monitor"] are not files
"bin/gsm-app-monitor"
中删除s.files
。提交并将更改推送到GitHub。现在,bundle install成功地在GitHub上从我的fork gem安装了gem rubygsm!
答案 2 :(得分:0)
你的fork的gemspec可能包含一个与RubyGems上的gem不同的名称,例如当我在GitHub上分叉active_merchant时,他们的.gemspec
文件有:
s.name = 'activemerchant'
但是gem在RubyGems上被定义为active_merchant所以我改变了我的Gemfile:
gem "active_merchant", git: "https://github.com/adamwaite/active_merchant.git", require: "active_merchant"
为:
gem "activemerchant", git: "https://github.com/adamwaite/active_merchant.git", require: "active_merchant"
注意缺少“_”。
之后一切都很完美。这可能是一个不起眼的案例,但我希望它可以帮助某人!