我正在开发一个gem并设置我的Gemfile(Rails 3.0.9)从github下载最新的副本。经过几次更新后,我现在通过bundler安装了许多这些不同的版本,例如:
/Users/jseidel/.rvm/gems/ruby-1.9.2-p180/gems/test_gem-0.0.1/lib/test_gem.rb
/Users/jseidel/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/test_gem-073530fbb227/lib/test_gem.rb
/Users/jseidel/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/test_gem-19ca852f2dbc/lib/test_gem.rb
/Users/jseidel/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/test_gem-1c54d091fa69/lib/test_gem.rb
/Users/jseidel/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/test_gem-2a792620be0e/lib/test_gem.rb
/Users/jseidel/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/test_gem-3dc70da90fcb/lib/test_gem.rb
/Users/jseidel/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/test_gem-4bb5ca8c3fb5/lib/test_gem.rb
/Users/jseidel/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/test_gem-6587eb65715f/lib/test_gem.rb
/Users/jseidel/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/test_gem-6e58646ce11d/lib/test_gem.rb
/Users/jseidel/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/test_gem-725511907cc1/lib/test_gem.rb
/Users/jseidel/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/test_gem-7bc40a7293aa/lib/test_gem.rb
/Users/jseidel/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/test_gem-7fceecaf1539/lib/test_gem.rb
/Users/jseidel/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/test_gem-9ca2049c33f0/lib/test_gem.rb
/Users/jseidel/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/test_gem-b63e6a695990/lib/test_gem.rb
/Users/jseidel/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/test_gem-be3cfbdd01a2/lib/test_gem.rb
bundle exec gem list仅显示最新版本:
test_gem (0.3.2)
bundle exec gem uninstall test_gem -v0.1.0抛出错误:
ERROR: While executing gem ... (Gem::InstallError)
cannot uninstall, check `gem list -d test_gem`
gem list -d test_gem什么都没显示
bundle exec gem list -d test_gem确实显示了我的gem,但没有版本信息
我想我可以进去并手动删除这些条目,但我认为有更好的方法可以解决这个问题。
答案 0 :(得分:3)
让我在mysql2上展示如何:
$ gem list mysql2
mysql2(0.3.7,0.3.6,0.3.2,0.2.7,0.2.6)
我们可以先在干运行模式下运行gem cleanup,看看会删除什么:
$ gem cleanup -d
清理已安装的宝石......
...
Dry Run Mode:将卸载mysql2-0.2.6
Dry Run Mode:将卸载mysql2-0.2.7
Dry Run Mode:将卸载mysql2-0.3.2
Dry Run Mode:将卸载mysql2-0.3.6
...
清理完成
一旦我们对结果感到满意,我们就可以运行gem cleanup来实际删除旧的gem:
$ gem cleanup -v
如果您未在gem list -d test_gem*
中看到test_gem(请注意*
符号),请尝试gem cleanup -d
或许它会显示在该列表中
以其他方式 - 手动 - 是最好的选择!
答案 1 :(得分:1)
(sudo) rm -rf /Users/jseidel/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/test*
答案 2 :(得分:0)
如果您必须,Bundler提供了一种方法:
bundle clean --force
不建议这样做,因为宝石可能被其他项目使用。
其他选项是使用RVM gemsets,在这种情况下,您可以使用以下方法清除gemset:
rvm gemset empty