卸载Ruby gems

3
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,也不能使用它 :( 似乎它不存在。

我的 Ruby 版本是 2.3.1.p112

2个回答

7
理想情况下,您应使用RVM或rbenv创建本地沙盒并处理Ruby安装程序和gems,而不是使用系统默认设置。然后您将无需使用sudo,只需使用gem uninstall <gem>即可。出于某些原因,它不允许您访问,因此更难意外搞乱系统Ruby。
如果您只需阅读这些安装说明以使用RVM设置并在新环境中安装先前使用的gems。这样,在未来管理Ruby和gems时,它会为您节省很多麻烦。

--

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

相关问题中尝试此答案。

gem list -d 'gem名称'并注意“已安装于:”位置

sudo gem uninstall 'gem名称' -i '上述路径'

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


1

sudo不是一个魔杖,不能施展“无论如何都可以做”的咒语。

当您列出宝石时,您从用户执行普通的gem list。它列出了为用户安装的宝石。之后,您尝试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


我被卸载了,但是由于某些原因还有一些文件残留。我手动删除了它们,现在一切都正常了。我尝试安装rake并将其卸载,现在一切都正常了。 - Daniel Gonzalez

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接