Ruby on rails 安装rbenv时如何解决gem依赖关系?

Ruby on rails 安装rbenv时如何解决gem依赖关系?,ruby-on-rails,bundler,rbenv,Ruby On Rails,Bundler,Rbenv,最近我安装了rbenv,并将ruby指定为2.3.1,将rails指定为5.1.1,但我无法运行我的项目,因为我得到: Ignoring json-2.1.0 because its extensions are not built. Try: gem pristine json --version 2.1.0 Ignoring nokogiri-1.8.1 because its extensions are not built. Try: gem pristine nokogiri --

最近我安装了rbenv,并将ruby指定为2.3.1,将rails指定为5.1.1,但我无法运行我的项目,因为我得到:

Ignoring json-2.1.0 because its extensions are not built.  Try: gem pristine json --version 2.1.0
Ignoring nokogiri-1.8.1 because its extensions are not built.  Try: gem pristine nokogiri --version 1.8.1
Ignoring unf_ext-0.0.7.4 because its extensions are not built.  Try: gem pristine unf_ext --version 0.0.7.4
Ignoring yajl-ruby-1.3.1 because its extensions are not built.  Try: gem pristine yajl-ruby --version 1.3.1
/var/lib/gems/2.3.0/gems/bundler-1.16.1/lib/bundler/spec_set.rb:88:in `block in materialize': Could not find unf_ext-0.0.7.4 in any of the sources (Bundler::GemNotFound)

from /var/lib/gems/2.3.0/gems/bundler-1.16.1/lib/bundler/spec_set.rb:82:in `map!'
...
from /home/alex/pnv/vendor/bundle/ruby/2.3.0/gems/spring-2.0.2/bin/spring:49:in `<main>'
安装成功通过,但。。。现在我得到:

bundle install
/home/alex/pnv/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi.rb:6:in `require': incompatible library version - /home/alex/pnv/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi_c.so (LoadError)
    from /home/alex/pnv/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi.rb:6:in `rescue in <top (required)>'
    from /home/alex/pnv/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi.rb:3:in `<top (required)>'
    from /home/alex/pnv/vendor/bundle/ruby/2.3.0/gems/rb-inotify-0.9.8/lib/rb-inotify/native.rb:1:in `require'
    from /home/alex/pnv/vendor/bundle/ruby/2.3.0/gems/rb-inotify-0.9.8/lib/rb-inotify/native.rb:1:in `<top (required)>'
    from /home/alex/pnv/vendor/bundle/ruby/2.3.0/gems/rb-inotify-0.9.8/lib/rb-inotify.rb:1:in `require'
    from /home/alex/pnv/vendor/bundle/ruby/2.3.0/gems/rb-inotify-0.9.8/lib/rb-inotify.rb:1:in `<top (required)>'
    from /home/alex/pnv/vendor/bundle/ruby/2.3.0/gems/listen-3.0.8/lib
    ...
    from /home/alex/.rbenv/versions/2.3.1/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:59:in `require'
    from -e:1:in `<main>'
/home/alex/pnv/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi.rb:6:in'require':不兼容的库版本-/home/alex/pnv/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi_c.so(加载错误)
from/home/alex/pnv/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi.rb:6:in'rescue in'
from/home/alex/pnv/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi.rb:3:in`'
from/home/alex/pnv/vendor/bundle/ruby/2.3.0/gems/rb-inotify-0.9.8/lib/rb-inotify/native.rb:1:in'require'
from/home/alex/pnv/vendor/bundle/ruby/2.3.0/gems/rb-inotify-0.9.8/lib/rb-inotify/native.rb:1:in`'
from/home/alex/pnv/vendor/bundle/ruby/2.3.0/gems/rb-inotify-0.9.8/lib/rb-inotify.rb:1:in'require'
from/home/alex/pnv/vendor/bundle/ruby/2.3.0/gems/rb-inotify-0.9.8/lib/rb-inotify.rb:1:in`'
from/home/alex/pnv/vendor/bundle/ruby/2.3.0/gems/listen-3.0.8/lib
...
from/home/alex/.rbenv/versions/2.3.1/lib/ruby/site\u ruby/2.3.0/rubygems/core\u ext/kernel\u require.rb:59:in'require'
from-e:1:in`'
我不知道如何解决这个问题。感谢您的帮助

更新1
最后,我找到了这个邪恶bug的来源——尽管如此,我还是指定了Rails 5.1.1,当我运行Rails新应用程序_name时,它会安装5.1.6!似乎它使用了5.1.6 gem依赖项。。。仍然不知道如何解决而不是升级到>=5.1.6

将以下行添加到您的GEM文件中

gem'rails',5.1.1'


运行
bundle install

您能再次尝试
bundle uninstall ffi
bundle install
吗?如果您得到“找不到命令uninstall”,似乎您不小心跳过了
bundle
。尝试
捆绑卸载ffi
而不是
卸载ffi
。下次你可以试试。但很高兴听到你的问题解决了:)@AlexanderGorgIn在您的gem文件中,添加行
gem rails,'5.1.1'
@akaspinnaka谢谢,就这样!我必须指定版本!请修改你的答案,这样我就可以接受了!更新了答案@AlexanderGorg