Bundler为什么不能找到这个宝石?

时间:2011-06-01 23:34:16

标签: ruby-on-rails git github mechanize bundler

为什么 bundler 找不到Mechanize gem?

以下是我的Rails项目的Gemfile:

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

运行bundle install会引发以下错误:

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)'

我在分配项目后做了一些小的更改后得出了这个问题,但是无法让bundler使用github位置和本地路径。为什么它找不到宝石?

如果我删除所有说明并只执行gem 'mechanize',那么它可以完美无缺地工作。


版本: Bundler 1.0.14 + Rails 3.1发布Canditate + Ruby 1.8.7(通过RVM)+ Debian 5

5 个答案:

答案 0 :(得分:6)

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

您应该能够将项目克隆到vendor / gems目录中。您还需要创建一个mechanize.gemspec文件。 然后,您可以使用类似的东西在Gemfile中使用它。

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

答案 1 :(得分:1)

我见过旧版本的bundler与git://像urls一样有问题。

您是否尝试过更新bundler;或用http://?

替换git://

答案 2 :(得分:1)

如果将来有人偶然发现这个话题,我就是为了让它发挥作用而做的......

我分叉了项目,做了我的更改,然后运行以下命令生成.gemspec:

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

我不得不稍作修改,因为gemspec试图包含一个不存在的.gemtest文件。

然后我将我的Gemfile修改为源自路径:

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

然后我运行捆绑安装,一切都顺利完成。

答案 3 :(得分:1)

明确使用版本。它们不支持未发布的版本,因此它们会删除gemspec文件。

gem 'mechanize', '2.0.1'

它对我有用。

答案 4 :(得分:0)

我遇到了同样的问题,我通过在名称和路径之间添加gem版本来改变。

  

gem' image_core',' 0.0.1',:path => ' ./ LIB /发动机/ image_core'