ruby-on-rails - 安装rbenv时如何解决gem依赖?

标签 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 --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>'

我不知道如何解决这个问题。感谢您的帮助!

更新 1: 最后,我找到了这个邪恶错误的来源——尽管如此,我指定了 Rails 5.1.1,当我运行 rails new app_name 时,它​​安装了 5.1.6!似乎它使用 5.1.6 gem 依赖项...仍然不知道如何解决而不是升级到 >= 5.1.6

最佳答案

将以下行添加到您的 Gemfile。

gem 'rails', '5.1.1'

运行 bundle install

关于ruby-on-rails - 安装rbenv时如何解决gem依赖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50271805/

相关文章:

ruby-on-rails - Billing.subscription.renewed webhook 未被触发

ruby-on-rails - 条件 order_by 取决于 Sunspot 中的数据

mysql - ruby on Rails 中与远程计算机的数据库连接

ruby-on-rails - 在 Dockerfile 中从 Github bundle

ruby - 无法通过 bundler 和 heroku push 安装 gems 被拒绝

ruby-on-rails - Rails 中的 ActiveRecord 查询

ruby - 为什么 Gem 可以安装 gems debase 和 ruby​​-debug-ide 而 Bundler 却不能?

ruby-on-rails - 为什么 rails server Welcome Aboard 站点向 rbenv 报告不同的 ruby​​ 版本?

ruby - 由于 psych YAML 解析错误,在 mac osx 上安装任何 ruby​​ 1.9.x(带有 rbenv)时遇到问题

ruby - Bundle 不能与 rbenv 一起使用并且不能 gem install bundler