web-dev-qa-db-ja.com

Ruby 2.3 OS Xでmysql2 gemの「互換性のないライブラリバージョン」を解決するにはどうすればよいですか?

Ruby 2.3を使用しています。gemfileにはmysql2 gemがリストされていますが、rake db:migrateを実行しようとすると、次のようになります。

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

これを回避できないようです。 Homebrewを使用してMysql 5.7をインストールし、バンドルの更新、mysql2 gemのアンインストールおよび再インストールを試みましたが、まったく役に立ちませんでした。

これを解決するにはどうすればよいですか?

25
croceldon

私はgem pristine --allでこれを解決することになりました

40
croceldon

gem pristine mysql2に続いてspring stopでこれを解決しました。

8
joe

同じ問題が発生しました。 Ruby 2.3.4をインストールし、Rails 4.6.2。

2つの問題の原因があり、使用しているホスティング会社のサポートチームが問題の解決を助けてくれました。

最初は、インストールされたmysql2 libがデフォルトでRuby 2の代わりにRuby 1.8にリンクされていた

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

2番目の問題は、インストールされたmysqlサーバー設定でlibをコンパイルすることでした

そのため、mysql2 gemをアンインストールして、正しいRuby libで再インストールし、正しいmysql構成でコンパイルする必要がありました。

以下はコマンドです。

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 mysql2を実行してもうまくいきませんでした。

Mysql2 gemをアンインストールして再インストールする必要がありました。

0
Krishna Vedula

私のために働いた唯一のものは

gem install nokogiri -v 1.10.2

その後、それは大丈夫だった。

0
newtron54

Ubuntu 16.04に移行すると、この問題が発生しました

次はトリックをしました

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