在我的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
/Users/manuel/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/bundler/gems/sdoc-1a0e80c2d629
gem uninstall sdoc
(它甚至没有出现在gem list
)没有任何帮助,每次我bundle install
或bundle update
后,我都会遇到同样的错误。
任何提示?
答案 0 :(得分:2)
由于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版本并安装最新的稳定版)。