2015-12-30 16 views
20

Używam ruby ​​2.3, a na gemfile mam klejnot mysql2 na liście. Ale gdy próbuję uruchomić rake db:migrate, pojawia się następujący:Jak mogę rozwiązać "niezgodną wersję biblioteki" dla mysql2 gem z ruby ​​2.3 na OS X?

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

I nie wydaje się obejść ten jeden. Zainstalowałem Mysql 5.7 z Homebrew, próbowałem aktualizacji pakietu, odinstalowałem i ponownie zainstalowałem klejnot mysql2, wszystko bez skutku.

Jak mogę to rozwiązać?

+0

Mam taki sam problem z tą samą wersją klejnotu - używam kontynuacji, nie jestem pewien, czy tak, czy to ma znaczenie. Czy rozwiązałeś ten problem? – dax

+0

również, używając mariadbclient na arch. Linux – dax

+0

Nie, jeszcze nie. Używam OS X. – croceldon

Odpowiedz

32

skończyło się to rozwiązanie z gem pristine --all

+0

niesamowite działa, dzięki –

+0

świetne prace. Czy mógłbyś wyjaśnić, dlaczego to nie działa i jak to rozwiązuje? – Batbayar

+0

Aby zrozumieć, jak wygląda https://www.justinweiss.com/articles/3-quick-gem-tricks/ –

5

Mam rozwiązać ten z gem pristine mysql2 następnie spring stop.

0

Doświadczyłem tego samego problemu. Zainstalowałem ruby ​​2.3.4 i używam szyn 4.6.2.

Wystąpiły dwa problemy, a zespół wsparcia firmy hostingowej, z której korzystałem, pomógł mi rozwiązać problem.

Pierwszym było to, że lib mysql2 który został zainstalowany był domyślnie powiązany z ruby ​​1.8 zamiast rubin 2

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

Drugą kwestią było opracowanie lib z zainstalowanym mysql server config

Tak więc klej mysql2 musiał zostać odinstalowany i ponownie zainstalowany z odpowiednią biblioteką ruby ​​i skompilowany z właściwą konfiguracją mysql.

Poniżej znajdują się polecenia.

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

doświadczyłem tego problemu przeprowadzce do Ubuntu 16.04

Poniższa wystarczyły

sudo apt-get install g++ 
sudo apt-get install build-essential 
0

działa sudo gem dziewiczy mysql2 nie działał na mnie.

Musiałem odinstalować i ponownie zainstalować klejnot mysql2.

Powiązane problemy