ruby-on-rails - 从 Git/Github 中删除通过 Bundler 安装的 gem

标签 ruby-on-rails git bundler rbenv

在我的 Rails 应用程序中,我通过在 Gemfile 中指定 gem 'sdoc', github: 'voloko/sdoc' 从 Github 安装了 gem sdoc 。一切都很好,直到我最近将 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 ,但我无法摆脱“破损”的 gem !

这是我尝试过的:

  • 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之后,我都会收到相同的错误。

有什么提示吗?

最佳答案

首先:澄清一些事情

来自Bundler documentation :

Because Rubygems lacks the ability to handle gems from git, any gems installed from a git repository will not show up in gem list. They will, however, be available after running Bundler.setup

此外,删除 内的 gem 后。 。 。/bundler/gems/ 目录下,您还应该运行 rbenv rehash。这应该会帮你去掉 gem 。


答案:

转到项目的根目录(Gemfile 所在的位置)并运行bundle clean。您必须传递 --path--force 开关。这应该会删除通过git安装的gem(通常如果您安装了这些gem并通过gem列表列出)。

如果您有问题。正如您已经尝试过的那样,手动删除目录并运行 rbenv rehash

关于ruby-on-rails - 从 Git/Github 中删除通过 Bundler 安装的 gem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22112423/

相关文章:

ruby-on-rails - RVM 错误 : "Unknown ruby interpreter version" when trying to verify an . rvmrc 文件

ruby-on-rails - Rails 3.1 Ransack HABTM

linux - 查看远程 Linux 服务器上的 git 存储库 -> 在 Windows 中?

ruby-on-rails - 部署到heroku时清理 bundle 程序缓存

ruby-on-rails - 在数组上运行 destroy_all?

ruby-on-rails - 主要 :Object 的 RSpec 3.1 未定义方法 `feature'

git - 从 SourceTree 创建一个文件的 git diff

git - 尝试使用 cocoapods 克隆 git repo 的 SSL 验证问题

ruby - 如何通过 Bundler 测试 Ruby 脚本是否正在运行

php - "PHP Composer"与 "Ruby Gems and Bundler"相比