摆脱不会死的红宝石宝石

hol*_*den 22 ruby rubygems ruby-on-rails

我有一些不会消失的红宝石宝石.

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

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

我正在运行OS X.

Oll*_*lly 30

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

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

gem env paths
Run Code Online (Sandbox Code Playgroud)

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

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

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8
Run Code Online (Sandbox Code Playgroud)

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


Bit*_*oet 9

您还可以执行以下操作以摆脱已安装的宝石.

gem list -d [gem name]
gem uninstall --install-dir [install directory] [gem name]
Run Code Online (Sandbox Code Playgroud)

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

  • 这是唯一真正对我有帮助的事情。所有其他的东西都没有改变任何东西 (2认同)

小智 8

我有一个类似的问题,但根本问题结果是gemspecs由于一些未知的原因坚持.

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

matt$ gem1.9 list
*** LOCAL GEMS ***
minitest (1.6.0)
rake (0.8.7)
rdoc (2.5.8)
Run Code Online (Sandbox Code Playgroud)

这里没有宝石:

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 ..
Run Code Online (Sandbox Code Playgroud)

他们在那里!

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
Run Code Online (Sandbox Code Playgroud)

删除gemspecs:

matt$ sudo rm /opt/local/lib/ruby1.9/gems/1.9.1/specifications/*
Run Code Online (Sandbox Code Playgroud)

而现在宝石已经消失了:

matt$ gem1.9 list
*** LOCAL GEMS ***
Run Code Online (Sandbox Code Playgroud)