Невозможно удалить старую версию gem из macOS Catalina 10.15.1

В macOS Catalina 10.15.1 у меня есть несколько гемов Ruby, где установлены две версии, по одной в каждом из следующих двух каталогов:

Старшая:

/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/…. Как я могу переместить их из первого во вторую?


person XDR    schedule 03.11.2019    source источник
comment
Я бы использовал rvm с gemset и bundler.   -  person Horacio    schedule 03.11.2019
comment
Установите RVM с \curl -sSL https://get.rvm.io | bash -s stable; перезапустите вашу оболочку; установите Ruby с rvm install 2.6.0. Не делать используйте system Ruby.   -  person anothermh    schedule 03.11.2019
comment
Я не пишу код на Ruby, я просто пытаюсь поддерживать все компоненты в моей системе в актуальном состоянии, в основном для обеспечения безопасности и исправления ошибок. Я никогда намеренно не устанавливал лишние гемы, я обновлял только то, что было предустановлено на моем Mac. (Возможно, драгоценный камень был установлен, когда я установил какое-то программное обеспечение). Если я смогу легко избавиться от всех существующих драгоценных камней и использовать что-то вроде churby, это может сработать, но я не хочу оставлять старые драгоценные камни в своей файловой системе.   -  person XDR    schedule 03.11.2019


Ответы (1)


Почему бы не использовать диспетчер версий и вообще не беспокоиться о системных ruby ​​/ gems? Вы можете, например, попробовать RVM. См. инструкции по установке здесь

Или Churby см. https://github.com/postmodern/chruby

ОБНОВЛЕНО: не связывайтесь с системными библиотеками, установленными вашей ОС. Скорее всего, они здесь по уважительной причине. Если вы не знаете, что делаете, то можете где-нибудь что-нибудь сломать. Для обновлений системы и безопасности придерживайтесь обновлений и исправлений системы ОС по мере их выпуска.

person lacostenycoder    schedule 03.11.2019
comment
Я не пишу код на Ruby, я просто пытаюсь поддерживать все компоненты в моей системе в актуальном состоянии, в основном для обеспечения безопасности и исправления ошибок. Я никогда намеренно не устанавливал лишние гемы, я обновлял только то, что было предустановлено на моем Mac. (Возможно, драгоценный камень был установлен, когда я установил какое-то программное обеспечение). Если я смогу легко избавиться от всех существующих драгоценных камней и использовать что-то вроде churby, это может сработать, но я не хочу оставлять старые драгоценные камни в своей файловой системе. - person XDR; 03.11.2019
comment
@XDR Если система их установила, вероятно, есть веская причина, и вам не нужно беспокоиться об управлении ими самостоятельно. Смотрите обновленный ансер. - person lacostenycoder; 03.11.2019