摆脱不会死的rubygem

我有一些不会消失的rubygem。

我认为这与我安装它们时有关。 偶尔我忘记在进行gem安装之前使用“sudo”,这会导致写入错误,并且我可以收集的内容将gem的副本放在我的用户目录中,而不是它可以运行的某个地方。 但是gem卸载不起作用。 它不断显示在’gem list’中,但不能从gem uninstall或sudo gem uninstall中卸载它。 我在’gem环境’中找到路径后尝试直接删除一个gem,但仍然将gem留在列表中。

还可以删除所有gem并从头开始吗? 这些让我疯狂。

我正在运行OS X.

假设gem clean (或sudo gem clean )不起作用,我会尝试以下方法从您的系统中完全删除所有gem:

您可以通过运行命令查看已安装gem的位置:

 gem env paths 

要删除系统上的所有gem,只需删除此命令返回的文件夹即可。

此外,在OSX Leopard上,此文件夹中安装了默认gem:

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

如果您的系统上存在此文件夹,则可以像以前一样删除此文件夹以确保删除所有gem。

我有一个类似的问题,但根本问题结果是gemspecs因为一些未知的原因而坚持下去。

在我以为我卸载了所有gem之后:

 matt$ gem1.9 list *** LOCAL GEMS *** minitest (1.6.0) rake (0.8.7) rdoc (2.5.8) 

这里没有gem:

 matt$ ls -al /opt/local/lib/ruby1.9/gems/1.9.1/gems/ total 0 drwxr-xr-x 2 root admin 68 Jul 23 14:54 . drwxr-xr-x 8 root admin 272 Mar 3 14:56 .. 

他们在那里!

 matt$ ls -al /opt/local/lib/ruby1.9/gems/1.9.1/specifications/ total 24 drwxr-xr-x 5 root admin 170 Jul 23 14:54 . drwxr-xr-x 8 root admin 272 Mar 3 14:56 .. -rw-r--r-- 2 root admin 129 Nov 1 2010 minitest.gemspec -rw-r--r-- 2 root admin 121 Nov 1 2010 rake.gemspec -rw-r--r-- 2 root admin 121 Nov 1 2010 rdoc.gemspec 

删除gemspecs:

 matt$ sudo rm /opt/local/lib/ruby1.9/gems/1.9.1/specifications/* 

而现在gem已经消失了:

 matt$ gem1.9 list *** LOCAL GEMS *** 

您还可以执行以下操作以摆脱已安装的gem。

 gem list -d [gem name] gem uninstall --install-dir [install directory] [gem name] 

如果前面提到的东西不起作用,我今天必须自己做。

如果您有多个版本的gem,则必须首先进行清理,然后删除最终的gem。

  gem cleanup  gem uninstall  --version 

我有一个不会死的gem,不得不通过命令gem uninstall -aIx删除我所有的gem去“nuke everything”路线。 然后只需gem install ,我就恢复运行了。

更新你的版本的ruby gems gem update –system然后希望gem uninstall xxx现在可以工作[是旧版本中的一个bug]

查看RVM ,它允许您在用户下而不是在系统目录中完全管理ruby环境。 我发现使用它来管理ruby版本和gem更加容易。