从Git / Github删除通过Bundler安装的gem

时间:2014-03-01 09:16:53

标签: ruby-on-rails git bundler rbenv

在我的Rails应用程序中,我通过在sdoc中指定gem 'sdoc', github: 'voloko/sdoc'从Github安装了gem Gemfile。一切顺利,直到我最近将Bundler更新为v1.6.0.rc。

现在,当Bundler尝试加载gem时,我收到以下错误消息:

There was a LoadError while loading sdoc.gemspec: 
cannot infer basepath from
  /Users/manuel/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/bundler/gems/sdoc-1a0e80c2d629/sdoc.gemspec:2:in `require_relative'

Does it try to require a relative path? That's been removed in Ruby 1.9.

我已经解决了问题和submitted a pull request,但我无法摆脱“破碎”的宝石!

这就是我的尝试:

  • Gemfile删除gem或将其设置为其他版本
  • 删除Gemfile.lock
  • 删除gem文件夹/Users/manuel/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/bundler/gems/sdoc-1a0e80c2d629
  • gem uninstall sdoc(它甚至没有出现在gem list

没有任何帮助,每次我bundle installbundle update后,我都会遇到同样的错误。

任何提示?

2 个答案:

答案 0 :(得分:2)

首先:澄清一些事情

来自Bundler documentation

  

由于Rubygems缺乏从git处理gems的能力,因此从git存储库安装的任何gem都不会显示在gem列表中。但是,在运行Bundler.setup

之后,它们将可用

此外,删除. . . /bundler/gems/目录中的gem后,您还应该运行rbenv rehash。这应该为你摆脱宝石。


答案:

转到项目的根目录(Gemfile所在的位置)并运行bundle clean。您必须通过--path--force个开关。这应该删除通过 git 安装的gems(通常如果你已经安装并列出gem list列出的那些gems)。

如果您有问题。按照您的尝试手动删除目录并运行rbenv rehash

答案 1 :(得分:0)

如果我是你,我会降级Bundler(即卸载RC版本并安装最新的稳定版)。