卸载Ruby gem

时间:2017-03-03 11:11:29

标签: ruby rubygems rake uninstall

user@machine:~$ gem list

*** LOCAL GEMS ***

bigdecimal (1.2.8)
did_you_mean (1.0.0)
io-console (0.4.5)
json (1.8.3)
minitest (5.8.4)
net-telnet (0.1.1)
power_assert (0.2.7)
psych (2.0.17)
rake (10.5.0)
rdoc (4.2.1)
sass (3.4.23)
test-unit (3.1.7)
user@machine:~$ sudo gem uninstall rake
ERROR:  While executing gem ... (Gem::InstallError)
    rake is not installed in GEM_HOME, try:
    gem uninstall -i /usr/share/rubygems-integration/all rake
user@machine:~$ sudo gem uninstall -i /usr/share/rubygems-integration/all rake 
Remove executables:
    rake

in addition to the gem? [Yn]  Y
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /usr/share/rubygems-integration/all/bin directory.
user@machine:~$ ls /usr/share/rubygems-integration/all/
specifications
user@machine:~$ 

我无法卸载此gem特别是,也不能使用它:( 如果它似乎不存在。

我的红宝石版本是2.3.1.p112

2 个答案:

答案 0 :(得分:5)

理想情况下,您可以使用RVM或rbenv创建本地沙箱并处理Ruby安装和gems而不是系统默认值。然后,您不必使用sudo即可使用gem uninstall <gem>。它不会让你有机会访问,因此不小心搞乱了Ruby系统。

如果您可以阅读这些install directions来设置RVM,然后安装以前在新环境中使用的gem。在将来管理Ruby和宝石时,它将为您节省很多麻烦。

-

如果您不想这样做,可以尝试这个答案

尝试此related question的答案。

gem list -d 'name of gem'并注意&#34;安装于:&#34;位置

sudo gem uninstall 'name of gem' -i 'the path noted above'

如果仍然返回权限错误。在上面的路径中创建一个文件夹/ bin。继续卸载,如步骤2,仍然使用原始路径(/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8)。

答案 1 :(得分:0)

sudo不是施放咒语的魔杖“无论如何都要做。”

当您列出宝石时,您可以从用户执行纯gem list。它列出了为用户安装的gem。然后尝试sudo gem uninstall rake。为什么你期望超级用户的宝石列表与用户的宝石列表相同?

要删除用gem list列出的用户宝石,请使用gem uninstall rake。没有sudo

要列出超级用户的宝石,您尝试使用sudo gem uninstall rake删除,请使用sudo gem list。使用sudo

有关sudo的更多信息:http://aplawrence.com/Basics/sudo.html