Множественные установки Ruby — как решить в OS X

#ruby #macos #rubygems

#ruby #macos #rubygems

Вопрос:

У меня возникли проблемы с Ruby-скриптами, которые находят нужные драгоценные камни. Кажется, это связано с наличием нескольких установок Ruby в моей системе. OS X уже поставляется с Ruby, но это не последняя версия. Я обновился со Snow Leopard до Lion и внезапно получил все эти экземпляры папок rubygems:

  /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems
 /Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems
 /Library/Ruby/Gems/1.8/gems/rubygems-update-1.8.11/lib/rubygems
 /Library/Frameworks/MacRuby.framework/Versions/0.10/usr/lib/ruby/1.9.2/rubygems
 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems 
 /Users/[user_name]/.rvm/repos/ruby/lib/rubygems
 

Я установил graph gem с gem install помощью и, похоже, не могу найти его ни в одном из этих мест. irb находит это, когда я делаю require , но скрипт ruby, сохраненный и запущенный из командной строки, выдает ошибку:

«требуется»: нет такого файла для загрузки

Еще одна подсказка заключается в том, что при запуске rails server я часто вижу вывод из /Library/Ruby/Gems/1.8/gems/

Но graph gem, похоже, тоже не находится на этом пути.

Итак, да, большой беспорядок. Любая помощь по безопасному упрощению этого и удалению избыточных экземпляров будет с благодарностью принята.

Обновить:

Удалось отследить установленные драгоценные камни, чтобы: /System/Library/Frameworks/Ruby.framework/Versions/Current/usr/lib/ruby/user-gems/1.8/gems

Итак, я должен просто удалить все остальное с помощью a rm -rf ? Я бы не хотел этого делать и вызывать всевозможные проблемы с зависимостями. В конечном итоге я хотел бы получить чистую систему только с одной установкой ruby, но я не могу стереть свой жесткий диск.

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

1. Удален тег ruby-on-rails, добавлен тег osx.

Ответ №1:

Я рекомендую вам использовать rvm для переключения рубинов и драгоценных камней. поместите файл .rvmrc в папки вашего проекта, и он автоматически переключит для вас «набор драгоценных камней».

Общее мнение заключается в том, чтобы оставить версию ОС ruby, поскольку для переключения версий ruby используется либо rvm, либо rbenv.

Похоже, у вас установлен rvm, а также несколько установок ruby, установленных разными способами.

Правильно ли работает rvm, если это так, вы можете игнорировать другие ваши установки ruby.

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

1. Но найдет ли он установленные драгоценные камни в других папках? (см. Редактирование выше, я обнаружил местоположение установленных пользователем драгоценных камней). Также как мне автоматически переключать набор драгоценных камней? Что нужно добавить в .rvmrc?

2. в .rvmrc вы вводите строку, например, поэтому rvm use gemsetx@ruby1xx вам нужно добавить этот ruby, а затем добавить к нему набор драгоценных камней. учебные пособия по rvm должны помочь вам в этом.

3. да, наборы драгоценных камней похожи на чистый лист для конкретной версии ruby.

4. Ах, да, это намного лучше, с rvmrc и gemset все выглядит хорошо. Вы бы порекомендовали мне удалить другие местоположения? Просто очень запутанно иметь все эти версии, но я не хочу нарушать какие-либо зависимости, особенно для любого материала MacRuby, который может иметь Xcode. Большое спасибо!

5. не помешало бы сохранить их все.