ruby on rails - rails - ¿Cómo resuelvo la “versión de biblioteca incompatible” para la gema mysql2 con ruby 2.3 en OS X?
ruby on rails mysql configuration (5)
Estoy usando ruby 2.3, y en el archivo gem, tengo la gema mysql2 listada. Pero cuando intento ejecutar rake db:migrate
, obtengo lo siguiente:
/Users/me/.gem/ruby/2.3.0/gems/mysql2-0.4.2/lib/mysql2.rb:31:in `require'': incompatible library version - /Users/me/.gem/ruby/2.3.0/gems/mysql2-0.4.2/lib/mysql2/mysql2.bundle (fatal)
Parece que no puedo evitar esto. He instalado Mysql 5.7 con Homebrew, he intentado actualizar el paquete, desinstalar y reinstalar la gema mysql2, todo en vano.
¿Cómo puedo resolver esto?
Experimenté el mismo problema. Tenía Ruby 2.3.4 instalado y usando rieles 4.6.2.
Hubo dos problemas, y el equipo de soporte de la compañía de alojamiento que estaba usando me ayudó a resolver el problema.
La primera fue que el lib de mysql2 que se instaló estaba, por defecto, vinculado a ruby 1.8 en lugar de ruby 2
# lld ../2.2.0/mysql2-0.4.4/mysql2/mysql2.so
...
...
libruby.so.1.8 => /usr/lib64/libruby.so.1.8 (0x00007f2af1f8a000)
...
El segundo problema fue compilar la biblioteca con la configuración del servidor mysql instalada
Así que la gema mysql2 tuvo que ser desinstalada y reinstalada con el ruby lib correcto y compilada con la configuración mysql correcta.
A continuación se muestran los comandos.
gem uninstall mysql2
gem install mysql2 -- --with-mysql-config=/usr/bin/mysql_config --with-opt-lib=/where/my/ruby22/lib_was_located/
Experimenté este problema moviéndome a Ubuntu 16.04
Lo siguiente hizo el truco
sudo apt-get install g++
sudo apt-get install build-essential
He resuelto esto con la gem pristine mysql2
seguida de una spring stop
.
Terminé resolviendo esto con gem pristine --all
corriendo sudo gema prístina mysql2 no funcionó para mí.
Tuve que desinstalar y reinstalar la gema mysql2.