2010-06-15 163 views
6

当我试图清理我的rails版本的sudo gem cleanup rails宝石::安装错误

我收到以下错误:

Cleaning up installed gems... 
Attempting to uninstall rails-2.3.5 
Unable to uninstall rails-2.3.5: 
Gem::InstallError: cannot uninstall, check `gem list -d rails` 
Attempting to uninstall rails-1.2.6 
Unable to uninstall rails-1.2.6: 
Gem::InstallError: cannot uninstall, check `gem list -d rails` 

gem list -d rails结果:

rails (2.3.8, 2.3.5, 1.2.6) 
    Author: David Heinemeier Hansson 
    Rubyforge: http://rubyforge.org/projects/rails 
    Homepage: http://www.rubyonrails.org 
    Installed at (2.3.8): /Library/Ruby/Gems/1.8 
       (2.3.5): /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8 
       (1.2.6): /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8 

    Web-application framework with template engine, control-flow layer, 
    and ORM. 

任何一个知道什么是错误?

+0

的http://stackoverflow.com/questions/1000731/getting-rid-of-ruby-gems-that-wont-die – x1a4 2010-06-15 21:39:38

回答

13

经过一段长时间的搜索后发现原因是因为路径不存在。无法卸载,因为系统不搜索/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8

在粒度级别上,而不是gem cleanup rails,您可以简单地使用卸载命令和类型:

gem uninstall rails -i /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8

,那么你可能打与不存在的路径中的另一个问题,在这一点上,你应该用命令创建一个目录:

mkdir /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/bin

现在所有的卸载程序都应该正常运行。我建议做一个干净的宝石通过执行以下功能重新安装:

创建所有现有的gem的列表

gem list --no-versions | sed -e '/^(*|$)/d' > installed_gems

卸载所有现有的宝石

gem list | cut -d" " -f1 | xargs gem uninstall -aIx

重新安装最新的宝石

cat installed_gems | xargs sudo gem install

+0

非常有益的欺骗。要运行卸载脚本,尽管我必须在添加-i /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8之间进行切换,直到所有的gem被成功删除。 – 2010-09-26 16:16:37

+0

我用过:gem list --no-versions | xargs sudo gem uninstall -aIx -i /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8 **或** gem list --no-versions | xargs sudo gem uninstall -aIx -i /Library/Ruby/Gems/1.8取决于Gem的安装位置。 – terrace 2011-05-13 02:14:39

+0

我刚刚花了最后一小时寻找不同的替代品,这是为我工作的。顺便说一句,我没有使用SUDO。上帝保佑你,如果可以的话,我会给你50票 – 2012-01-30 17:01:49