Rails pg gem Incompatible version of the library

I get the following "incompatible library" error when trying to access the Ruby on Rails website in design 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 looked at which libraries pg_ext.so trying to access using ldd , and here is 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 tried updating PostgreSQL using yum update, then gem uninstall pg and gem install pg. But I still get the same problem. The stone itself is installed without errors.

I am not sure how to debug further. What do I need to do to install, update or link to the necessary compatible libraries?

The server is running:

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

thanks

+8
source share
5 answers

Try:

 $ gem install pg $ gem pristine --all 
+10
source

It looks like you may be suffering from this error: https://bitbucket.org/ged/ruby-pg/issues/229/pg_exit-improperly-linked-when-using-rvm

The version of libruby should be different.

However: I have the same error message and my libruby are correct, so I think there might be more ...

+2
source

I get the same error when called in rails c console. Calling bundle exec rails c removed this error.

+1
source

After looking at the discussion https://bitbucket.org/ged/ruby-pg/issues/229/pg_ext-improperly-linked-when-using-rvm , the only way I was able to get it working in Arch Linux is to remove the system-wide ruby, then I did gem uninstall pg and then gem install pg --version 0.18.3 . This made the problem go away. After that, I installed the ruby ​​system-wide again. On my installation, I did not pack depending on the system-wide ruby, so it would be nice to remove it, but YMMV.

0
source

I ran into this problem. I had a ruby ​​2.2.1. I updated ruby ​​to 2.3.3 and after that everything worked. Try this instruction:

 rvm install ruby-2.3.3 rvm gemset empty gem install bundler bundle install 
0
source

All Articles