Подтвердить что ты не робот

Как мне разрешить "несовместимую версию библиотеки" для gem mysql2 с ruby ​​2.3 на OS X?

Я использую ruby ​​2.3, а в gemfile у меня есть драгоценный камень mysql2. Но когда я пытаюсь запустить 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)

Я не могу обойти этот. Я установил Mysql 5.7 с помощью Homebrew, попробовал обновить пакет, удалить и переустановить gem mysql2, но безрезультатно.

Как я могу решить эту проблему?

4b9b3361

Ответ 1

В итоге я решил это с помощью gem pristine --all

Ответ 2

Я решил это с помощью gem pristine mysql2, а затем spring stop.

Ответ 3

У меня возникла одна и та же проблема. Я установил рубин 2.3.4 и использовал рельсы 4.6.2.

Были две проблемы, и команда поддержки хостинговой компании, которую я использовал, помогла мне решить проблему.

Первым было то, что установленная mysql2 lib была по умолчанию связана с ruby ​​1.8 вместо ruby ​​2

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

Вторая проблема заключалась в том, чтобы скомпилировать lib с установленной конфигурацией сервера mysql

Так что 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/

Ответ 4

Я столкнулся с этой проблемой, перейдя на Ubuntu 16.04

Следующий трюк

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

Ответ 5

работает sudo gem, но не работает для mysql2.

Мне пришлось удалить и переустановить gem mysql2.