无法移除rake 0.9

时间:2011-05-23 01:06:45

标签: ruby-on-rails ruby

我在删除rake gem 0.9版时遇到了一些麻烦。我设法运行gem uninstall rake,我相信这已经删除了它。然而,回到宝石列表,它仍然表明它仍然存在。

正在运行gem env

GEM PATHS:
   /home/sean/.rvm/gems/ruby-1.9.2-p180
   /home/sean/.rvm/gems/ruby-1.9.2-p180@global

我进入@global目录并在那里手动删除它,但它仍然在某处。当我运行gem list时,我可以看到它。 0.9 rake gem导致我的Rails 3.0.7应用程序出现问题。

我跑了gem list -d rake

rake (0.9.0, 0.8.7)

Installed at 
(0.9.0): /home/sean/.rvm/gems/ruby-1.9.2-p180@global
(0.8.7): /home/sean/.rvm/gems/ruby-1.9.2-p180

我在gems目录中没有看到ruby-1.9.2-p180@global的任何内容

6 个答案:

答案 0 :(得分:47)

你应该运行

rvm use @global && gem uninstall rake -v 0.9.0  
rvm use @ && gem uninstall rake -v 0.9.0

从rvm

正确删除rake 0.9.0

答案 1 :(得分:3)

在终端输入:gem uninstall rake中,然后在出现提示时选择版本0.9.0。

然后在Rails应用程序中修改Gemfile:

gem 'rake', '0.8.7'

然后在终端运行中:

bundle install

这些步骤应该可以解决您遇到的问题。升级到rails 3.1时再次升级到rake。

答案 2 :(得分:2)

如果你正在使用rvm,你会在全局gemset中“免费”安装rake 0.9,这使得很难(不可能?)正确卸载。 gem uninstall rake成功,但实际上并没有删除rake 0.9。我不得不手动为REE和1.9.2做。

我编辑了rake可执行文件脚本(找到which rake)并添加了:

puts "Gem.bin_path: #{Gem.bin_path('rake', 'rake', version)}

...在最后一行之前。这打印(在我的系统上):    Gem.bin_path:〜/ .rvm / gems /ree-1.8.7-2011.03@global/gems/rake-0.9.0/bin/rake

将0.9 cd删除到〜/ .rvm / gems / ree-1.8.7-2011.03并手动删除所有rake-0.9文件(gems,规格是我相信的那些)。

答案 3 :(得分:2)

我遇到了同样的问题(需要rake 0.8.7但是用rvm获得0.9.0“免费”)。最初gem list -d rake给出了以下输出:

rake (0.9.0, 0.8.7)
  Installed at (0.9.0): ~/.rvm/gems/ruby-1.9.2-p136@global
               (0.8.7): ~/.rvm/gems/ruby-1.9.2-p136@my_gemset

使用rvm use @global切换到全球宝石集给了我这个输出:

rake (0.9.0)
  Installed at: ~/.rvm/gems/ruby-1.9.2-p136@global

所以我刚做了gem uninstall rake。现在,使用rvm use @my_gemset切换回我的gemset,正在使用正确版本的rake(0.8.7)。

答案 4 :(得分:2)

如果您正在使用bundler,则应阅读此excellent article by Yehuda Katz。遵循他的指示意味着您不必卸载rake 0.9.0。请尝试以下命令:

bundle exec rake --version

预先bundle exec将确保只加载正确版本的rake,而不管您安装的其他版本。

答案 5 :(得分:0)

您是否尝试过使用'gem cleanup'脚本?