it-roy-ru.com

Ruby на Rails несовместимая библиотека

Я только начал изучать Ruby на Rails и ​​не могу запустить сервер. Я запускаю Ruby 2.3.0 и Rails 4.2.5, и после того, как у меня появились новые железнодорожные проекты, я пытаюсь запустить bin/Rails server, но получаю следующую ошибку:

Warning: Running `gem pristine --all` to regenerate your installed gemspecs (and deleting then reinstalling your bundle if you use bundle --path) will improve the startup performance of Spring.
/Users/John/.rvm/gems/Ruby-head/gems/json-1.8.3/lib/json/ext.rb:13:in `require': incompatible library version - /Users/John/.rvm/gems/Ruby-head/gems/json-1.8.3/lib/json/ext/parser.bundle (fatal)
    from /Users/John/.rvm/gems/Ruby-head/gems/json-1.8.3/lib/json/ext.rb:13:in `<module:Ext>'
    from /Users/John/.rvm/gems/Ruby-head/gems/json-1.8.3/lib/json/ext.rb:12:in `<module:JSON>'
    from /Users/John/.rvm/gems/Ruby-head/gems/json-1.8.3/lib/json/ext.rb:9:in `<top (required)>'
    from /Users/John/.rvm/gems/Ruby-head/gems/json-1.8.3/lib/json.rb:58:in `require'
    from /Users/John/.rvm/gems/Ruby-head/gems/json-1.8.3/lib/json.rb:58:in `<module:JSON>'
    from /Users/John/.rvm/gems/Ruby-head/gems/json-1.8.3/lib/json.rb:54:in `<top (required)>'
    from /Users/John/.rvm/gems/Ruby-head/gems/activesupport-4.2.5/lib/active_support/core_ext/object/json.rb:2:in `require'
    from /Users/John/.rvm/gems/Ruby-head/gems/activesupport-4.2.5/lib/active_support/core_ext/object/json.rb:2:in `<top (required)>'
    from /Users/John/.rvm/gems/Ruby-head/gems/activesupport-4.2.5/lib/active_support/core_ext/object.rb:12:in `require'
    from /Users/John/.rvm/gems/Ruby-head/gems/activesupport-4.2.5/lib/active_support/core_ext/object.rb:12:in `<top (required)>'
    from /Users/John/.rvm/gems/Ruby-head/gems/railties-4.2.5/lib/Rails/configuration.rb:2:in `require'
    from /Users/John/.rvm/gems/Ruby-head/gems/railties-4.2.5/lib/Rails/configuration.rb:2:in `<top (required)>'
    from /Users/John/.rvm/gems/Ruby-head/gems/railties-4.2.5/lib/Rails/railtie.rb:2:in `require'
    from /Users/John/.rvm/gems/Ruby-head/gems/railties-4.2.5/lib/Rails/railtie.rb:2:in `<top (required)>'
    from /Users/John/.rvm/gems/Ruby-head/gems/railties-4.2.5/lib/Rails/engine.rb:1:in `require'
    from /Users/John/.rvm/gems/Ruby-head/gems/railties-4.2.5/lib/Rails/engine.rb:1:in `<top (required)>'
    from /Users/John/.rvm/gems/Ruby-head/gems/railties-4.2.5/lib/Rails/application.rb:7:in `require'
    from /Users/John/.rvm/gems/Ruby-head/gems/railties-4.2.5/lib/Rails/application.rb:7:in `<top (required)>'
    from /Users/John/.rvm/gems/Ruby-head/gems/railties-4.2.5/lib/Rails.rb:11:in `require'
    from /Users/John/.rvm/gems/Ruby-head/gems/railties-4.2.5/lib/Rails.rb:11:in `<top (required)>'
    from /Users/John/.rvm/gems/Ruby-head/gems/railties-4.2.5/lib/Rails/commands/server.rb:4:in `require'
    from /Users/John/.rvm/gems/Ruby-head/gems/railties-4.2.5/lib/Rails/commands/server.rb:4:in `<top (required)>'
    from /Users/John/.rvm/gems/Ruby-head/gems/railties-4.2.5/lib/Rails/commands/commands_tasks.rb:123:in `require'
    from /Users/John/.rvm/gems/Ruby-head/gems/railties-4.2.5/lib/Rails/commands/commands_tasks.rb:123:in `require_command!'
    from /Users/John/.rvm/gems/Ruby-head/gems/railties-4.2.5/lib/Rails/commands/commands_tasks.rb:73:in `server'
    from /Users/John/.rvm/gems/Ruby-head/gems/railties-4.2.5/lib/Rails/commands/commands_tasks.rb:39:in `run_command!'
    from /Users/John/.rvm/gems/Ruby-head/gems/railties-4.2.5/lib/Rails/commands.rb:17:in `<top (required)>'
    from /Users/John/Developer/Rails/blog/bin/Rails:9:in `require'
    from /Users/John/Developer/Rails/blog/bin/Rails:9:in `<top (required)>'
    from /Users/John/.rvm/gems/Ruby-head/gems/spring-1.6.1/lib/spring/client/Rails.rb:28:in `load'
    from /Users/John/.rvm/gems/Ruby-head/gems/spring-1.6.1/lib/spring/client/Rails.rb:28:in `call'
    from /Users/John/.rvm/gems/Ruby-head/gems/spring-1.6.1/lib/spring/client/command.rb:7:in `call'
    from /Users/John/.rvm/gems/Ruby-head/gems/spring-1.6.1/lib/spring/client.rb:28:in `run'
    from /Users/John/.rvm/gems/Ruby-head/gems/spring-1.6.1/bin/spring:51:in `<top (required)>'
    from /Users/John/.rvm/gems/Ruby-head/gems/spring-1.6.1/lib/spring/binstub.rb:11:in `load'
    from /Users/John/.rvm/gems/Ruby-head/gems/spring-1.6.1/lib/spring/binstub.rb:11:in `<top (required)>'
    from /Users/John/.rvm/rubies/Ruby-head/lib/Ruby/site_Ruby/2.3.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    from /Users/John/.rvm/rubies/Ruby-head/lib/Ruby/site_Ruby/2.3.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    from /Users/John/Developer/Rails/blog/bin/spring:13:in `<top (required)>'
    from bin/Rails:3:in `load'
    from bin/Rails:3:in `<main>'

Список драгоценных камней говорит, что у меня есть json (1.8.3, 1.8.2). Я также попытался переустановить Rails и ​​обновить мою версию Ruby через rvm. Есть идеи, что не так? Я пытался смотреть онлайн, но немного застрял, тем более, что я никогда не использовал Rails раньше и только немного Ruby.

7
John P

Что-то странное/испорченное в вашей среде Ruby. Я бы обвинил РВМ. Лично я не фанат рвм. 

Но вы можете попробовать gem uninstall json, следуйте инструкциям, чтобы удалить ВСЕ версии. Затем снова bundle install. Тогда, надеюсь, вы будете исправлены. 

11
jrochkind

У меня была проблема, аналогичная описанной вами после того, как я использовал другую версию Ruby (из 2.3.0 -> 2.3.3).

Я обнаружил, что работает:

$ gem install bundler

Затем:

$ bundle install

... работал на меня Это переустановило все необходимые мне пакеты в моем Gemfile без каких-либо проблем с зависимостями.

0
Lance Fono

Похоже, что никогда не существовавшая версия json gem была найдена Rails. Вы можете удалить версию вручную:

gem uninstall json -v 1.8.2

или, поскольку вы уже используете RVM, create gemset, специфичный для этого проекта.

0
sqbell