运行 rails 应用不兼容库版本 rgeo proj4 时出错

Error when running rails app incompatible library version rgeo proj4

当我 运行 foreman start 时,我得到这个错误:

 ~/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.4/lib/active_support/dependencies.rb:274:in `require': incompatible library version - ~/.rvm/gems/ruby-2.2.3/gems/rgeo-0.4.0/lib/rgeo/coord_sys/proj4_c_impl.bundle (fatal)
        from ~/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.4/lib/active_support/dependencies.rb:274:in `block in require'
        from ~/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.4/lib/active_support/dependencies.rb:240:in `load_dependency'
        from ~/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.4/lib/active_support/dependencies.rb:274:in `require'
        from ~/.rvm/gems/ruby-2.2.3/gems/rgeo-0.4.0/lib/rgeo/coord_sys.rb:39:in `<top (required)>'

我试过 rvm gemset empty && bundle installgem uninstall rgeo && gem install rgeo,从事同一项目的其他人没有这个问题。

Ruby 2.2.3p173 Rails 4.2.4 Gem 2.4.8

我做错了什么?

我也 运行 关注这个问题。我需要更多地了解您的环境,但这可能与我今天向 RGeo 项目报告的这个问题有关:https://github.com/rgeo/rgeo/issues/114

如果您使用的是 Ruby 的 Homebrew 版本,您可能需要卸载它并使用 RVM。当您同时拥有 运行.

时,似乎存在冲突

我还提交了一个可能对你有用的补丁。它基本上确保如果您使用 Ruby 管理器,RGeo 会尝试首先使用这些库进行构建。您可以在此处查看该代码:https://github.com/eddietejeda/rgeo/tree/prioritize_ruby_manager_lib

您可以将其添加到您的 Gemfile 中进行测试:

gem 'rgeo', :git => 'git@github.com:eddietejeda/rgeo.git', :branch => 'prioritize_ruby_manager_lib'

希望对您有所帮助!