2012-01-27 139 views
5

在GitHub上,我做了一個寶石adammck-rubygsm的分支。我的叉子在這裏https://github.com/khwang1/rubygsmBundle安裝無法在GitHub上安裝我的寶石叉

我想從我的應用程序切換到我的分叉寶石。所以,在我的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)' 

任何想法,爲什麼?

+1

你有沒有嘗試在rubygsm.gemspec文件中用adammck-rubygsm替換rubygsm?對於s.name變量。或者它可能會在Gemfile中用gem'khwang1-rubygsm'替換gem'adammck-rubygsm'。 – 2012-01-27 08:44:15

+0

感謝您的建議。原始寶石中的s.name和我的叉子一直是「rubygsm」。我確實將Gemfile中的更改從「gem'adammck-rubygsm'」更改爲「gem'rubygsm'」,這確實有所幫助。 – 2012-02-07 21:01:33

回答

2

git指令必須以https來指定,如:

gem 'resque', :require => "resque/server", git: 'https://github.com/defunkt/resque.git' 
0

感謝您的建議。

    在我的應用程序的Gemfile,更改爲 gem 'rubygsm', :git => "git://github.com/khwang1/rubygsm.git"
  • :我爲了成功束從GitHub安裝my fork of adammck-rubygsm做了如下修改。 Gem的.gemspec中的s.name一直是「rubygsm」。

然後,捆綁安裝抱怨找不到寶石 'toholio-的SerialPort'

    在我的叉子寶石的.gemspec
  • ,刪除行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

  • 檢查寶石源鱈魚,文件斌/ GSM的應用程序監視器確實不存在。在我的fork gem的.gemspec文件中,從s.files刪除"bin/gsm-app-monitor"。提交併將更改推送到GitHub。

現在,bundle install已成功安裝gem ruby​​gsm從我的叉子寶石上GitHub!

0

您叉中可能包含不同的名稱上的RubyGems創業板的gemspec,例如當我分叉active_merchant GitHub上的.gemspec文件有:

s.name   = 'activemerchant' 

但創業板定義爲active_merchant上RubyGems的,所以我改變了我的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" 

注意缺少「_」。

之後一切都很完美。這可能是一個不起眼的情況,但我希望它可以幫助別人!