2011-06-01 27 views
3

爲什麼不能bundler找到機械寶石?Bundler爲什麼找不到這個寶石?

以下是我的Rails項目的Gemfile:

gem 'mechanize', :git => 'git://github.com/tenderlove/mechanize.git' 

運行捆綁安裝引發以下錯誤:

Updating git://github.com/tenderlove/mechanize.git 
Fetching source index for http://rubygems.org/ 
Could not find gem 'mechanize (>= 0)' in git://github.com/tenderlove/mechanize.git (at master). 
Source does not contain any versions of 'mechanize (>= 0)' 

我建立該項目,使一些小的修改後得出這個問題,但無法讓捆綁商使用github位置或本地路徑。爲什麼它找不到寶石?

如果我刪除所有說明,只是做gem 'mechanize',那麼它的工作完美無瑕。


版本:捆紮機1.0.14 +的Rails 3.1發行Canditate +紅寶石1.8.7(RVM通過)+ Debian的5

回答

6

看起來好像the project is missing a gemspec and one won't be getting added.

你應該能夠項目克隆到你的供應商/寶石目錄。您還需要創建一個mechanize.gemspec文件。 然後,你會需要它在你的Gemfile中使用類似的東西。

gem 'mechanize',   :path => 'vendor/gems/mechanize' 
+0

我將它克隆到我的gems目錄中,如何在我的應用程序中使用它? – Marco 2011-06-02 00:18:29

+1

另外,你也可以分叉並提供你自己的gemspec – 2011-06-02 00:19:37

1

我已經看到了使用Git有捆綁問題,舊的版本://像網站一樣。

您是否嘗試過更新捆綁器;或用http://替換git://?

+0

沒有運氣從http鏈接拉。 Bundler是最新的。 – Marco 2011-06-01 23:57:32

+0

看來@ henry-collingridge有正確的答案 – 2011-06-02 00:18:45

1

,以防有人在未來絆倒在這個線程,這裏就是我所做的,使其工作..

我分叉的項目,使我改變然後跑下生成一個.gemspec:

rake debug_gem | grep -v "(in " > `basename \`pwd\``.gemspec 

我不得不作一些修改,因爲gemspec試圖包含一個不存在的.gemtest文件。

然後我修改了我的Gemfile源從路徑:

gem 'mechanize', :path => '/my_rails_app/vendor/gems/mechanize' 

我然後跑捆綁安裝,一切都通過順利。

1

明確使用版本。他們不支持未發佈的版本,所以他們刪除gemspec文件。

gem 'mechanize', '2.0.1' 

它適用於我。

0

我面臨同樣的問題,我通過在名稱和路徑之間添加gem版本進行了更改。

gem 'image_core', '0.0.1', :path => './lib/engine/image_core'

相關問題