如何在 OS X 上使用 ruby 2.3 解决 mysql2 gem 的“不兼容的库版本”?
Posted
技术标签:
【中文标题】如何在 OS X 上使用 ruby 2.3 解决 mysql2 gem 的“不兼容的库版本”?【英文标题】:How do I resolve "incompatible library version" for mysql2 gem with ruby 2.3 on OS X? 【发布时间】:2016-04-04 19:56:38 【问题描述】:我使用的是 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,都无济于事。
我怎样才能解决这个问题?
【问题讨论】:
我在相同的 gem 版本中遇到了同样的问题 - 我正在使用续集,不确定你是否在使用,或者它是否有所作为。你解决了这个问题吗? 另外,在arch linux上使用mariadbclient 不,还没有。我正在使用 OS X。 【参考方案1】:唯一对我有用的是
gem install nokogiri -v 1.10.2
之后就好了。
【讨论】:
【参考方案2】:运行 sudo gem pristine mysql2 对我不起作用。
我不得不卸载并重新安装 mysql2 gem。
【讨论】:
【参考方案3】:我在迁移到 Ubuntu 16.04 时遇到了这个问题
下面的方法成功了
sudo apt-get install g++
sudo apt-get install build-essential
【讨论】:
【参考方案4】:我遇到了同样的问题。我安装了 ruby 2.3.4 并使用 rails 4.6.2。
有两个问题原因,我使用的托管公司的支持团队帮助我解决了问题。
首先是安装的 mysql2 库默认链接到 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)
...
第二个问题是使用已安装的 mysql 服务器配置编译 lib
因此必须卸载 mysql2 gem 并使用正确的 ruby 库重新安装并使用正确的 mysql 配置进行编译。
以下是命令。
gem uninstall mysql2
gem install mysql2 -- --with-mysql-config=/usr/bin/mysql_config --with-opt-lib=/where/my/ruby22/lib_was_located/
【讨论】:
【参考方案5】:我已经用gem pristine mysql2
和spring stop
解决了这个问题。
【讨论】:
【参考方案6】:我最终用gem pristine --all
解决了这个问题
【讨论】:
伟大的作品。请您解释一下为什么它不起作用以及如何解决这个问题? 了解它的样子justinweiss.com/articles/3-quick-gem-tricks以上是关于如何在 OS X 上使用 ruby 2.3 解决 mysql2 gem 的“不兼容的库版本”?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 rvm 在 OS_X 10.9 上安装 ruby 2.1.0? (没有可用的二进制红宝石:osx/10.9/x86_64/ruby)