Как исправить "У вас нет прав на запись в каталог /usr/bin " при установке Rails?

Я пытаюсь установить Rails 3 на совершенно новый MacBook Pro, работающий под управлением OS X 10.6.3, Ruby 1.8.7 и Rails 2.3.5, и мне интересно, если я сам себя обманул. До сих пор я запускал следующие команды:

$ gem update --system
$ gem install arel tzinfo builder memcache-client rack rack-test rack-mount erubis mail text-format thor bundler i18n
$ gem install rails --pre

Однако, когда я запускаю последнюю команду, я получаю эту ошибку:

ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions into the /usr/bin directory.

Я думаю, он хочет, чтобы я выполнил команду с sudo, чтобы она могла писать через /usr/bin/rails. Но если я это сделаю, разве я не буду перезаписывать исполняемый файл Rails 2.3.5? Я не хочу этого делать. Вместо этого я хотел бы сохранить обе версии Rails. Как это сделать?

Ответ 1

Я бы предложил использовать RVM, что позволяет вам иметь несколько версий Ruby/Rails, установленных с профилями gem, и в основном хранить все ваши драгоценные камни содержащиеся друг от друга. Вы можете захотеть проверить аналогичное сообщение Как установить Ruby on Rails 3 в OSX

Ответ 2

используйте параметр -n для установки как для cocoapods:

sudo gem install cocoapods -n /usr/local/bin

Ответ 3

Использование флага -n/usr/local/bin работает, НО мне приходилось возвращаться на эту страницу каждый раз, когда я хотел снова обновить пакет. Так что я нашел постоянное решение для этого.

Для тех, кто хочет исправить это навсегда:

Создайте файл ~/.gemrc

vim .gemrc

Со следующим содержанием:

:gemdir:
   - ~/.gem/ruby
install: -n /usr/local/bin

Теперь вы можете запустить свою команду в обычном режиме без флага -n.

Наслаждайтесь!

Ответ 4

Вы можете использовать sudo gem install -n /usr/local/bin cocoapods

Это работает для меня.

Ответ 5

sudo gem install cocoapods --pre -n /usr/local/bin

Это работает для меня.

Ответ 6

Чтобы исправить вашу конкретную ошибку, вам нужно запустить эту команду как sudo, то есть:

sudo gem install rails --pre

Ответ 7

Эта ошибка ударила меня после правильной установки RVM. Решение: перезагрузите терминал.

Ссылка RailsCast RVM Install.

Ответ 8

Для меня что-то другое сработало, что я нашел в этом ответе по аналогичному вопросу. Наверное, это не поможет OP, но, возможно, кто-то вроде меня, у которого была аналогичная проблема.

Вы действительно должны использовать rvm, но, поскольку никто не объяснил вам, как это сделать без rvm, вы здесь:

sudo gem install tzinfo builder memcache-client rack rack-test rack-mount \
  abstract erubis activesupport mime-types mail text-hyphen text-format   \
  thor i18n rake bundler arel railties rails --prerelease --force

Ответ 9

В macOS High Sierra это решило мою проблему:

sudo gem update --system -n /usr/local/bin/gem