Ответ 1
В итоге я решил это с помощью gem pristine --all
Я использую 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, но безрезультатно.
Как я могу решить эту проблему?
В итоге я решил это с помощью gem pristine --all
Я решил это с помощью gem pristine mysql2
, а затем spring stop
.
У меня возникла одна и та же проблема. Я установил рубин 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/
Я столкнулся с этой проблемой, перейдя на Ubuntu 16.04
Следующий трюк
sudo apt-get install g++
sudo apt-get install build-essential
работает sudo gem, но не работает для mysql2.
Мне пришлось удалить и переустановить gem mysql2.