Установка gem завершается с ошибкой разрешений

Я обновил свою Mac OS до 10.9 Mavericks вчера. Моя текущая версия Ruby отображается как

ruby ​​2.0.0p247 (версия для печати 2013-06-27 41674) [universal.x86_64-darwin13]

Я установил Rails на свою машину, и когда я пытаюсь установить gems, я получаю следующее сообщение:

Fetching: eventmachine-1.0.3.gem (100%)
ERROR:  While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.

Я пытаюсь все это в своем домашнем каталоге. Любые предложения?

Ответ 1

Используйте менеджер версий Ruby, например RVM или rbenv.

Я не могу говорить за rbenv, но RVM добавляет к вашему PATH для версии bin версию, определенную Ruby версии PATH, поэтому вам не нужно использовать sudo (так вы могли установите драгоценные камни в вашу текущую ситуацию, но очень не рекомендуется).

rbenv аналогично добавляет к вашему $PATH, но использует прокладку.

Ответ 2

Когда у меня была такая же ошибка, это было из-за того, что у меня не было установленного менеджера версий Ruby, по умолчанию это была версия Ruby, поставляемая с моим компьютером, который принадлежит root.

Поскольку для установки драгоценных камней очень плохо использовать sudo, я установил RVM с Ruby 2.1.2

\curl -sSL https://get.rvm.io | bash -s stable --ruby=2.1.2

то убедитесь, что он используется по умолчанию, запустив

rvm use ruby-2.1.2

RVM создает новое местоположение для хранения ваших Ruby и gems с вашими разрешениями пользователя, поэтому вам не нужно использовать sudo или получить ошибку разрешений. Новое местоположение драгоценного камня:

~/.rvm/gems

Затем продолжайте, как и вы...

gem install ....

Ответ 3

У меня нет RVM. Я получил эту ошибку, потому что я установил rbenv, но еще не выполнил rbenv init.

После того, как я вставил содержимое из команды rbenv init в .bash_profile, gem install работает как ожидалось.

Я также случайно установил rbenv global <ruby-version> в загруженную версию Ruby.

Ответ 4

Просто как сказать вам все, потратив хороший час или больше на попытку установить RubyGems... на rubygems-2.4.5 'sudo' получил меня через! Это работает...