Переустановите системный ruby после сбоя «gem update —system

#ruby #macos #rubygems

#ruby #macos #rubygems

Вопрос:

Пытаясь обновить что-то еще, я запустил «gem update —system» (что я обычно не делаю), и в итоге все закончилось не совсем успешно. Теперь, когда я запускаю любую команду gem или даже ruby, я получаю сообщение об ошибке, которое заканчивается:

 /Users/username/.rbenv/versions/2.6.4/lib/ruby/site_ruby/2.6.0/rubygems/defaults.rb:23:in `default_spec_cache_dir': undefined method `user_home' for Gem:Module (NoMethodError)
 

Попытка использовать rbenv для переустановки версии 2.6.4 ruby в конечном итоге завершается неудачей с

 1: from /Users/john_muccigrosso/.rbenv/versions/2.6.4/lib/ruby/site_ruby/2.6.0/rubygems/path_support.rb:75:in `default_path'
 

Понятия не имею, куда теперь идти. Предложения приветствуются!

Комментарии:

1. Переустановите свою ОС, которая переустановит ваш системный Ruby. Тогда никогда не делайте этого снова.

2. Нет, не сработало. Я только что выполнил переустановку из раздела восстановления. Все еще возникают проблемы с поиском user_home, согласно ошибке.

Ответ №1:

Хотя переустановка системы не работала сама по себе, я смог снова заставить все работать. Я попытался удалить 2.6.4 с помощью rbenv и получил кучу ошибок с разрешениями, что заставило меня подумать, что, возможно gem update --system , команда изменила некоторые или все из них, и это вызвало проблему. Итак, я полностью удалил каталог 2.6.4 (ну, переместил его, чтобы я мог что-либо восстановить из него) и переустановил 2.6.4 через rbenv. Вуаля!

Сейчас все кажется хорошо.