Rails pg gem不兼容的库版本 [英] Rails pg gem Incompatible library version

查看:115
本文介绍了Rails pg gem不兼容的库版本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 <$ c 

$ c>不兼容的库版本 - /var/www/vhosts/launch.site.com/httpdocs/vendor/bundle/ruby/2.2.0/gems/pg-0.18.4/lib/pg_ext.so(LoadError)
/var/www/vhosts/launch.site.com/httpdocs/vendor/bundle/ruby/2.2.0/gems/pg-0.18.4/lib/pg.rb:4:in`require'
/var/www/vhosts/launch.site.com/httpdocs/vendor/bundle/ruby/2.2.0/gems/pg-0.18.4/lib/pg.rb:4:in`< top(必填) >'
/usr/local/rvm/gems/ruby-2.2.3/gems/bundler-1.10.6/lib/bundler/runtime.rb:76:in`require'
/ usr /local/rvm/gems/ruby-2.2.3/gems/bundler-1.10.6/lib/bundler/runtime.rb:76:in`block(2 levels)in require'
/ usr / local / rvm / gems / ruby​​-2.2.3 / gems / bundler-1.10.6 / lib / bundler / runtime.rb:72:在`each'
/usr/local/rvm/gems/ruby-2.2.3 /gems/bundler-1.10.6/lib/bundler/runtime.rb:72:in`block in require'
/ usr / local / rvm / gems / r uby-2.2.3 / gems / bundler-1.10.6 / lib / bundler / runtime.rb:61:在`each'中
/usr/local/rvm/gems/ruby-2.2.3/gems/bundler -1.10.6 / lib / bundler / runtime.rb:61:在`require'
/usr/local/rvm/gems/ruby-2.2.3/gems/bundler-1.10.6/lib/bundler。 rb:134:在'require'
/var/www/vhosts/launch.site.com/httpdocs/config/application.rb:7:in`< top(required)>'
/var/www/vhosts/launch.site.com/httpdocs/config/environment.rb:2:in`require'
/var/www/vhosts/launch.site.com/httpdocs/config/environment。 rb:2:在< top(required)>'
config.ru:3:in'require'
config.ru:3:in`block in< main>'
/var/www/vhosts/launch.site.com/httpdocs/vendor/bundle/ruby/2.2.0/gems/rack-1.6.4/lib/rack/builder.rb:55:in`instance_eval'
/var/www/vhosts/launch.site.com/httpdocs/vendor/bundle/ruby/2.2.0/gems/rack-1.6.4/lib/rack/builder.rb:55:in`initialize'
config.ru:1:in`new'
config.ru:1:in`< main>'
/ usr / share / passenger / helper-s cripts / rack-preloader.rb:110:在`eval'
/usr/share/passenger/helper-scripts/rack-preloader.rb:110:in`preload_app'
/ usr / share / passenger / helper-scripts / rack-preloader.rb:156:在< module:App>'
/usr/share/passenger/helper-scripts/rack-preloader.rb:30:in`< module:PhusionPassenger>'
/usr/share/passenger/helper-scripts/rack-preloader.rb:29:in`< main>'

我查看了 pg_ext.so 试图访问和使用 ldd 以下是输出:

  $ ldd pg-0.18.4 / lib / pg_ext.so 
linux-vdso.so.1 => (0x00007ffc14a7c000)
libruby.so.1.8 => /usr/lib64/libruby.so.1.8(0x00007fe98291a000)
libpq.so.5 => /usr/lib64/libpq.so.5(0x00007fe9826f1000)
libpthread.so.0 => /lib64/libpthread.so.0(0x00007fe9824cb000)
librt.so.1 => /lib64/librt.so.1(0x00007fe9822c3000)
libdl.so.2 => /lib64/libdl.so.2(0x00007fe9820be000)
libcrypt.so.1 => /lib64/libcrypt.so.1(0x00007fe981e87000)
libm.so.6 => /lib64/libm.so.6(0x00007fe981c03000)
libc.so.6 => /lib64/libc.so.6(0x00007fe98186e000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1(0x00007fe981658000)
libssl.so.10 => /usr/lib64/libssl.so.10(0x00007fe9813ec000)
libcrypto.so.10 => /usr/lib64/libcrypto.so.10(0x00007fe981008000)
libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2(0x00007fe980dc4000)
libldap_r-2.4.so.2 => /usr/lib64/libldap_r-2.4.so.2(0x00007fe980b6c000)
/lib64/ld-linux-x86-64.so.2(0x00007fe982e47000)
libfreebl3.so => /usr/lib64/libfreebl3.so(0x00007fe980968000)
libkrb5.so.3 => /lib64/libkrb5.so.3(0x00007fe980681000)
libcom_err.so.2 => /lib64/libcom_err.so.2(0x00007fe98047d000)
libk5crypto.so.3 => /lib64/libk5crypto.so.3(0x00007fe980250000)
libz.so.1 => /lib64/libz.so.1(0x00007fe98003a000)
libkrb5support.so.0 => /lib64/libkrb5support.so.0(0x00007fe97fe2f000)
libkeyutils.so.1 => /lib64/libkeyutils.so.1(0x00007fe97fc2b000)
libresolv.so.2 => /lib64/libresolv.so.2(0x00007fe97fa11000)
liblber-2.4.so.2 => /usr/lib64/liblber-2.4.so.2(0x00007fe97f802000)
libsasl2.so.2 => /usr/lib64/libsasl2.so.2(0x00007fe97f5e7000)
libssl3.so => /usr/lib64/libssl3.so(0x00007fe97f3a7000)
libsmime3.so => /usr/lib64/libsmime3.so(0x00007fe97f17b000)
libnss3.so => /usr/lib64/libnss3.so(0x00007fe97ee3b000)
libnssutil3.so => /usr/lib64/libnssutil3.so(0x00007fe97ec0f000)
libplds4.so => /lib64/libplds4.so(0x00007fe97ea0b000)
libplc4.so => /lib64/libplc4.so(0x00007fe97e805000)
libnspr4.so => /lib64/libnspr4.so(0x00007fe97e5c7000)
libselinux.so.1 => /lib64/libselinux.so.1(0x00007fe97e3a7000)

我试过用yum update更新PostgreSQL,然后gem卸载pg和gem install pg。但我仍然遇到同样的问题。宝石本身安装没有任何错误。



我不确定如何进一步调试。我需要做什么来安装,更新或引用必要的兼容库?



服务器正在运行:




  • CentOS 6.7

  • psql(PostgreSQL)8.4.20
  • ruby​​ 2.2.3p173(2015-08-18版本51636)[x86_64-linux]

  • rails 4.2.4

  • pg gem 0.18.4



谢谢

解决方案

$ b

  $ gem install pg 
$ gem pristine --all


I'm getting the following 'incompatible library version' error when I try and access my Ruby on Rails website in development mode.

incompatible library version - /var/www/vhosts/launch.site.com/httpdocs/vendor/bundle/ruby/2.2.0/gems/pg-0.18.4/lib/pg_ext.so (LoadError)
  /var/www/vhosts/launch.site.com/httpdocs/vendor/bundle/ruby/2.2.0/gems/pg-0.18.4/lib/pg.rb:4:in `require'
  /var/www/vhosts/launch.site.com/httpdocs/vendor/bundle/ruby/2.2.0/gems/pg-0.18.4/lib/pg.rb:4:in `<top (required)>'
  /usr/local/rvm/gems/ruby-2.2.3/gems/bundler-1.10.6/lib/bundler/runtime.rb:76:in `require'
  /usr/local/rvm/gems/ruby-2.2.3/gems/bundler-1.10.6/lib/bundler/runtime.rb:76:in `block (2 levels) in require'
  /usr/local/rvm/gems/ruby-2.2.3/gems/bundler-1.10.6/lib/bundler/runtime.rb:72:in `each'
  /usr/local/rvm/gems/ruby-2.2.3/gems/bundler-1.10.6/lib/bundler/runtime.rb:72:in `block in require'
  /usr/local/rvm/gems/ruby-2.2.3/gems/bundler-1.10.6/lib/bundler/runtime.rb:61:in `each'
  /usr/local/rvm/gems/ruby-2.2.3/gems/bundler-1.10.6/lib/bundler/runtime.rb:61:in `require'
  /usr/local/rvm/gems/ruby-2.2.3/gems/bundler-1.10.6/lib/bundler.rb:134:in `require'
  /var/www/vhosts/launch.site.com/httpdocs/config/application.rb:7:in `<top (required)>'
  /var/www/vhosts/launch.site.com/httpdocs/config/environment.rb:2:in `require'
  /var/www/vhosts/launch.site.com/httpdocs/config/environment.rb:2:in `<top (required)>'
  config.ru:3:in `require'
  config.ru:3:in `block in <main>'
  /var/www/vhosts/launch.site.com/httpdocs/vendor/bundle/ruby/2.2.0/gems/rack-1.6.4/lib/rack/builder.rb:55:in `instance_eval'
  /var/www/vhosts/launch.site.com/httpdocs/vendor/bundle/ruby/2.2.0/gems/rack-1.6.4/lib/rack/builder.rb:55:in `initialize'
  config.ru:1:in `new'
  config.ru:1:in `<main>'
  /usr/share/passenger/helper-scripts/rack-preloader.rb:110:in `eval'
  /usr/share/passenger/helper-scripts/rack-preloader.rb:110:in `preload_app'
  /usr/share/passenger/helper-scripts/rack-preloader.rb:156:in `<module:App>'
  /usr/share/passenger/helper-scripts/rack-preloader.rb:30:in `<module:PhusionPassenger>'
  /usr/share/passenger/helper-scripts/rack-preloader.rb:29:in `<main>'

I've looked at what libraries pg_ext.so is trying to access and using ldd and here's the output:

$ ldd pg-0.18.4/lib/pg_ext.so
    linux-vdso.so.1 =>  (0x00007ffc14a7c000)
    libruby.so.1.8 => /usr/lib64/libruby.so.1.8 (0x00007fe98291a000)
    libpq.so.5 => /usr/lib64/libpq.so.5 (0x00007fe9826f1000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fe9824cb000)
    librt.so.1 => /lib64/librt.so.1 (0x00007fe9822c3000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007fe9820be000)
    libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007fe981e87000)
    libm.so.6 => /lib64/libm.so.6 (0x00007fe981c03000)
    libc.so.6 => /lib64/libc.so.6 (0x00007fe98186e000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fe981658000)
    libssl.so.10 => /usr/lib64/libssl.so.10 (0x00007fe9813ec000)
    libcrypto.so.10 => /usr/lib64/libcrypto.so.10 (0x00007fe981008000)
    libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007fe980dc4000)
    libldap_r-2.4.so.2 => /usr/lib64/libldap_r-2.4.so.2 (0x00007fe980b6c000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fe982e47000)
    libfreebl3.so => /usr/lib64/libfreebl3.so (0x00007fe980968000)
    libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007fe980681000)
    libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007fe98047d000)
    libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007fe980250000)
    libz.so.1 => /lib64/libz.so.1 (0x00007fe98003a000)
    libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007fe97fe2f000)
    libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007fe97fc2b000)
    libresolv.so.2 => /lib64/libresolv.so.2 (0x00007fe97fa11000)
    liblber-2.4.so.2 => /usr/lib64/liblber-2.4.so.2 (0x00007fe97f802000)
    libsasl2.so.2 => /usr/lib64/libsasl2.so.2 (0x00007fe97f5e7000)
    libssl3.so => /usr/lib64/libssl3.so (0x00007fe97f3a7000)
    libsmime3.so => /usr/lib64/libsmime3.so (0x00007fe97f17b000)
    libnss3.so => /usr/lib64/libnss3.so (0x00007fe97ee3b000)
    libnssutil3.so => /usr/lib64/libnssutil3.so (0x00007fe97ec0f000)
    libplds4.so => /lib64/libplds4.so (0x00007fe97ea0b000)
    libplc4.so => /lib64/libplc4.so (0x00007fe97e805000)
    libnspr4.so => /lib64/libnspr4.so (0x00007fe97e5c7000)
    libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fe97e3a7000)

I've tried updating PostgreSQL using yum update, then gem uninstall pg and gem install pg. But I continue to get the same problem. The gem itself installs without any errors.

I'm not really sure how to debug further. What do I need to do to install, update or reference the necessary compatible libraries?

The server is running:

  • CentOS 6.7
  • psql (PostgreSQL) 8.4.20
  • ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux]
  • rails 4.2.4
  • pg gem 0.18.4

Thanks

解决方案

Try:

$ gem install pg
$ gem pristine --all

这篇关于Rails pg gem不兼容的库版本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆