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

3
在macOS Catalina 10.15.1上,我有几个Ruby宝石(gems),每个都安装了两个版本,分别位于以下两个目录中:
旧版目录:
/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,我也会遇到相同的错误。

我如何删除旧版本的gems?

另外,我有一些gems仅存在于/System/…目录下,而不是/Library/…目录下。我该如何将它们从前者移动到后者?


我会使用带有gemset和bundler的rvm。 - Horacio
1
使用\curl -sSL https://get.rvm.io | bash -s stable安装RVM;重新启动你的shell;使用rvm install 2.6.0安装Ruby。不要使用系统自带的Ruby - anothermh
1
我不会编写Ruby代码,我只是试图保持系统上的所有组件最新,主要是为了安全和错误修复。我从未有意安装额外的gems,我只更新了Mac预安装的内容。(也许在安装某些软件以使用时安装了gem)。如果我可以轻松地摆脱所有现有的gems并使用类似churby的东西,那就可以工作了,但我不想在文件系统中留下旧的gems。 - XDR
1个回答

1
为什么不使用版本管理器,完全不必担心系统 Ruby / Gems?例如,您可以尝试使用 RVM。请参见此处的安装说明
或者,您可以尝试 Churby,请参见https://github.com/postmodern/chruby
更新:不要擅自更改操作系统安装的系统库。它们很可能存在很好的原因。如果您不知道自己在做什么,可能会在某个地方出现问题。对于系统和安全更新,请遵循操作系统发布的系统更新和补丁。

我不会编写Ruby代码,我只是试图保持系统上的所有组件最新,主要是为了安全和错误修复。我从未有意安装额外的gems,我只更新了Mac预安装的内容。(也许在安装某些软件以使用时安装了gem)。如果我可以轻松地摆脱所有现有的gems并使用类似churby的东西,那就可以工作了,但我不想在文件系统中留下旧的gems。 - XDR
@XDR 如果系统已经安装了它们,那么很可能有充分的理由,你不需要担心自己管理它们。请查看更新的答案。 - lacostenycoder

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