2016-08-11 6 views
0

При попытке запуска bundle install с MySQL я получил:Ошибка при установке Rails на вершине Руби

An error occurred while installing json (1.8.3), and Bundler cannot continue. 
Make sure that `gem install json -v '1.8.3'` succeeds before bundling. 

Я попытался запустить:

sudo gem update 
sudo gem update --system 
sudo gem install rails 

И получил:

ERROR: Error installing rails: 
    activesupport requires Ruby version >= 2.2.2 

Тогда я проверено:

gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 
\curl -sSL https://get.rvm.io | bash 
\curl -sSL https://get.rvm.io | bash -s stable --ruby 
\curl -sSL https://get.rvm.io | bash -s stable 

И я получил это:

[email protected]:~ $ rvm use 2.3 
Using /home/pi/.rvm/gems/ruby-2.3.0 
[email protected]:~ $ rvm use 2.3 --default 
Using /home/pi/.rvm/gems/ruby-2.3.0 
[email protected]:~ $ sudo gem install rails 
ERROR: Error installing rails: 
    activesupport requires Ruby version >= 2.2.2. 

Почему?

ответ

0

Вы использовали sudo с RVM. Не делайте этого, если ваш RVM установлен в вашей учетной записи пользователя, что кажется вашим.

Когда вы используете sudo, вы работаете как sysadmin, который не знает о Rubies в ~/.rvm, только принадлежащий системе Ruby. Вот почему версия неверна.

Search the RVM documentation on for "sudo" для получения дополнительной информации. В частности, это важно:

НЕ использовать Судо ...

работать с РВМ драгоценных камней. Когда вы выполняете sudo, вы выполняете команды как root, другой пользователь в другой оболочке и, следовательно, все настройки, которые RVM сделал для вас, игнорируются, пока команда выполняется под sudo (такие вещи, как GEM_HOME и т. Д.). Поэтому, чтобы повторить, как только вы «sudo» вы работаете как пользователь root-системы, который очистит вашу среду, а также любые файлы, которые она создает, не могут быть изменены вашим пользователем и приведут к странным вещам. (Вы начинаете думать, что кто-то имеет куклу вуду вашего приложения ...)

https://rvm.io/rubies/rubygems

В дополнение к вуду, вы также установили и/или обновленных драгоценных камней в Ruby, принадлежащих системой, которая может играть хаос с другими сценариями, которые ожидают определенного поведения драгоценного камня, которое могло быть изменено обновлением. Это еще хуже, потому что системные инструменты или службы могут перестать работать, что ненадолго останется незамеченным.

Итак, не используйте sudo с gem, если вы не уверены, что знаете, что делаете.

Смежные вопросы