无法从macOS Catalina 10.15.1卸载旧版本的gem

时间:2019-11-03 05:48:25

标签: ruby macos rubygems macos-catalina

在macOS Catalina 10.15.1上,我有一些Ruby gem,其中安装了两个版本,一个版本位于以下两个目录中的每个目录下:

较旧:

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

较新:

/Library/Ruby/Gems/2.6.0/gems 

我想从/System/…下卸载旧版本,但是,当我运行以下命令时,出现相关错误:

$ sudo gem uninstall CFPropertyList --version 2.3.6
ERROR:  While executing gem ... (Gem::InstallError)
    CFPropertyList is not installed in GEM_HOME, try:
    gem uninstall -i /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/gems/2.6.0 CFPropertyList

$ sudo gem uninstall -i /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/gems/2.6.0 CFPropertyList
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/gems/2.6.0 directory.

如果我运行没有sudo的最后一条命令,我也会遇到相同的错误。

如何删除旧版本的宝石?

在相关说明中,我有一些仅位于/System/…目录下的宝石,而不是/Library/…目录下的宝石。我如何将它们从前者转移到后者?

1 个答案:

答案 0 :(得分:1)

为什么不使用版本管理器并且完全不用担心系统ruby / gem?您可以例如尝试RVM。参见install instructions here

或者Churby参见https://github.com/postmodern/chruby

更新:请勿与操作系统安装的系统库混为一谈。他们可能在那里是有充分理由的。如果您不知道自己在做什么,则可能会在某处破坏某些东西。对于系统和安全更新,请在发布它们时坚持使用OS系统更新和补丁。