rails 应用程序不会使用 hive_geoip2 gem 在 elastic beanstalk 上初始化

rails app wont initialize on elastic beanstalk with hive_geoip2 gem

我在 Elastic Beanstalk 上部署了一个 rails 应用程序。当我添加 gem hive_geoip2 它在开发中工作但是当我部署到 eb 时 rails 应用程序无法初始化并出现以下错误:

/opt/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/gems/bundler-1.7.3/lib/bundler/runtime.rb:76:in `require': libmaxminddb.so.0: cannot open shared object file: No such file or directory - /opt/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0/extensions/x86_64-linux/2.1.0-static/hive_geoip2-0.1.2/hive_geoip2.so (LoadError)

EC2 实例上确实存在有问题的文件。如果我尝试启动 rails 控制台,我会遇到同样的错误。

非常欢迎任何有关调试此错误的方法的见解或建议。提前致谢。

编辑 这是相关的 eb 配置部分:

  03_install_libmaxminddb:
    cwd: /usr/local/src
    command: git clone --recursive https://github.com/maxmind/libmaxminddb.git; cd libmaxminddb; ./bootstrap; ./configure; make; make install; ldconfig

我猜你的 ld.so.conf 中没有 /usr/local/lib。作为 root,尝试 运行:

echo "/usr/local/lib" >> /etc/ld.so.conf
ldconfig

或者,您可以在 /etc/ld.so.conf.d/ 中创建一个新文件。您应该确认 libmaxminddb.so.0/usr/local/lib 中可用。