it-swarm.com.de

Wie löse ich die "inkompatible Bibliotheksversion" für mysql2 gem mit Ruby 2.3 unter OS X?

Ich verwende Ruby 2.3, und in der Gemfile habe ich den mysql2-Gem aufgelistet. Wenn ich versuche, rake db:migrate auszuführen, erhalte ich Folgendes:

/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)

Ich kann anscheinend nicht herumkommen. Ich habe Mysql 5.7 mit Homebrew installiert, habe versucht, das Bundle zu aktualisieren, den mysql2-Gem zu deinstallieren und erneut zu installieren, alles ohne Erfolg.

Wie kann ich das lösen?

24
croceldon

Am Ende habe ich das mit gem pristine --all gelöst.

39
croceldon

Ich habe dies mit gem pristine mysql2 gefolgt von spring stop gelöst.

8
joe

Ich habe das gleiche Problem erlebt. Ich hatte Ruby 2.3.4 installiert und benutzte Rails 4.6.2.

Es gab zwei Ursachen und das Supportteam des Hosting-Unternehmens, das ich verwendete, half mir bei der Lösung des Problems.

Die erste war, dass die installierte mysql2 lib standardmäßig mit Ruby 1.8 anstelle von Ruby 2 verknüpft war

# lld ../2.2.0/mysql2-0.4.4/mysql2/mysql2.so
... 
...
libruby.so.1.8 => /usr/lib64/libruby.so.1.8 (0x00007f2af1f8a000)
...

Das zweite Problem war das Kompilieren der lib mit der installierten mysql server config

Daher musste mysql2 gem mit der richtigen Ruby-Bibliothek deinstalliert und erneut installiert und mit der richtigen mysql-Konfiguration kompiliert werden.

Unten sind die Befehle.

gem uninstall mysql2
gem install mysql2 -- --with-mysql-config=/usr/bin/mysql_config --with-opt-lib=/where/my/Ruby22/lib_was_located/
0
mwangi

sudo Gem Pristine zu betreiben, hat mysql2 bei mir nicht funktioniert.

Ich musste den mysql2 gem deinstallieren und erneut installieren.

0
Krishna Vedula

Das einzige, was für mich funktioniert hat, war

gem install nokogiri -v 1.10.2

danach war es gut.

0
newtron54

Dieses Problem trat bei Ubuntu 16.04 auf

Das Folgende hat den Trick gemacht

Sudo apt-get install g++
Sudo apt-get install build-essential
0
user3487016