Rails pg gem Incompatible version de bibliothèque
Je me fais de la suite de "incompatible version de bibliothèque' erreur lorsque j'essaie d'accéder et de Ruby on Rails site web, le mode de développement.
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>'
J'ai regardé ce que les bibliothèques pg_ext.so
tente d'accéder et d'utiliser ldd
et voici le résultat:
$ 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)
J'ai essayé la mise à jour de PostgreSQL à l'aide de yum update, puis gem désinstaller pg et gem install pg. Mais j'obtiens toujours le même problème. Le bijou lui-même s'installe sans aucune erreur.
Je ne suis pas vraiment sûr de savoir comment déboguer plus loin. Que dois-je faire pour installer, mettre à jour ou faire référence à la nécessaire compatible avec les bibliothèques?
Le serveur est en cours d'exécution:
- CentOS 6.7
- psql (PostgreSQL) 8.4.20
- ruby 2.2.3p173 (2015-08-18 révision 51636) [x86_64-linux]
- rails 4.2.4
- pg gem 0.18.4
Grâce
- Avez-vous essayé "bundle intall --sans production"? Veuillez consulter stackoverflow.com/questions/11127486/...
- exécuter
bundle update
et puisbundle install
- Merci, mais aucun de ces travaux. La forte réponse sur la question est un peu au-delà de moi. Les environnements sont également différents (il était sur Mac OSX, je suis sur CentOS 6.7 ) de sorte que le fichier de la bibliothèque de la structure est totalement différente. En outre, la trace que je reçois n'est pas de me dire laquelle de ces bibliothèques est incompatible pour autant que je peux dire qui est ce qui rend beaucoup plus difficile à déboguer.
- J'obtiens le même message d'erreur, mais pas à l'aide de Rails, juste pg.
Vous devez vous connecter pour publier un commentaire.
Essayer:
rails console
il a été de sortir sans les lignes du journal. Essayé plusieurs solutions, mais cela fait le charme.Il semble que si vous pourriez souffrir de ce bug:
https://bitbucket.org/ged/ruby-pg/issues/229/pg_exit-improperly-linked-when-using-rvm
La libruby version devrait être différent, apparemment.
Toutefois: j'ai le même message d'erreur, et mon libruby est correct, donc je pense qu'il pourrait y avoir plus de choses...
Je reçois le même message d'erreur quand je l'appelle dans la console
rails c
. L'appel debundle exec rails c
supprimé cette erreur.Après avoir regardé le débat sur https://bitbucket.org/ged/ruby-pg/issues/229/pg_ext-improperly-linked-when-using-rvm, la seule façon que j'ai réussi à le faire fonctionner sur Arch Linux a été de retirer le système à l'échelle de ruby, alors je n'ai
gem uninstall pg
suivie pargem install pg --version 0.18.3
. Ce qui fait que la question de s'en aller. J'ai réinstallé le système à l'échelle de ruby, après que.Sur ma configuration, je n'avais pas emballé selon l'échelle du système, de rubis, de sorte qu'il était d'accord pour le retirer, mais YMMV.
J'ai fait face à ce problème. J'ai eu ruby 2.2.1. J'ai mis à jour ruby 2.3.3 et après avoir travaillé. Essayez cette instruction: