首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误:无法构建gem本机扩展(mysql2 on rails 3.2.3)

问错误:无法构建gem本机扩展(mysql2 on rails 3.2.3)
EN

Stack Overflow用户
提问于 2012-04-07 11:19:11
回答 8查看 41.6K关注 0票数 49

我正在尝试使用Rails 3.2.3安装mysql2 gem,但失败了:

代码语言:javascript
复制
★  bundle install
Fetching gem metadata from https://rubygems.org/.........
Using rake (0.9.2.2) 
Using i18n (0.6.0) 
Using multi_json (1.2.0) 
Using activesupport (3.2.3) 
Using builder (3.0.0) 
Using activemodel (3.2.3) 
Using erubis (2.7.0) 
Using journey (1.0.3) 
Using rack (1.4.1) 
Using rack-cache (1.2) 
Using rack-test (0.6.1) 
Using hike (1.2.1) 
Using tilt (1.3.3) 
Using sprockets (2.1.2) 
Using actionpack (3.2.3) 
Using mime-types (1.18) 
Using polyglot (0.3.3) 
Using treetop (1.4.10) 
Using mail (2.4.4) 
Using actionmailer (3.2.3) 
Using arel (3.0.2) 
Using tzinfo (0.3.32) 
Using activerecord (3.2.3) 
Using activeresource (3.2.3) 
Using bundler (1.1.3) 
Using coffee-script-source (1.2.0) 
Using execjs (1.3.0) 
Using coffee-script (2.2.0) 
Using rack-ssl (1.3.2) 
Using json (1.6.6) 
Using rdoc (3.12) 
Using thor (0.14.6) 
Using railties (3.2.3) 
Using coffee-rails (3.2.2) 
Using jquery-rails (2.0.2) 
Installing mysql2 (0.3.11) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        /Users/rarneson/.rvm/rubies/ruby-1.9.3-p125/bin/ruby extconf.rb 
checking for rb_thread_blocking_region()... yes
checking for rb_wait_for_single_fd()... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lmygcc... no
checking for mysql_query() in -lmysqlclient... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
    --with-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/Users/rarneson/.rvm/rubies/ruby-1.9.3-p125/bin/ruby
    --with-mysql-config
    --without-mysql-config
    --with-mysql-dir
    --without-mysql-dir
    --with-mysql-include
    --without-mysql-include=${mysql-dir}/include
    --with-mysql-lib
    --without-mysql-lib=${mysql-dir}/lib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-mlib
    --without-mlib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-zlib
    --without-zlib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-socketlib
    --without-socketlib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-nsllib
    --without-nsllib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-mygcclib
    --without-mygcclib
    --with-mysqlclientlib
    --without-mysqlclientlib


Gem files will remain installed in /Users/rarneson/.rvm/gems/ruby-1.9.3-p125/gems/mysql2-0.3.11 for inspection.
Results logged to /Users/rarneson/.rvm/gems/ruby-1.9.3-p125/gems/mysql2-0.3.11/ext/mysql2/gem_make.out
An error occured while installing mysql2 (0.3.11), and Bundler cannot continue.
Make sure that `gem install mysql2 -v '0.3.11'` succeeds before bundling.

我正在运行bundle install,它在我的Gemfile中:

代码语言:javascript
复制
gem 'mysql2', '~> 0.3.11' 

我目前已经通过MAMP运行了MySQL。我不确定这是不是一个坏主意,我应该运行一个普通的MySQl,但我目前的问题似乎只是安装gem。我在stackoverflow上见过很多这样的问题,但看起来都有点不同,或者都有非常复杂的解决方案。我是不是漏掉了什么?一些简单的东西?做些愚蠢的事?如果需要,我可以从out文件中提供其他信息。我读到过一些人在开发时使用SQLite,然后在prod中使用MySQL进行测试,但这听起来是一个非常可怕的想法。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2012-05-15 22:14:36

我最终只安装了一个新的MySQL副本,没有使用MAMP,这就起到了作用。还必须确保安装的是64位版本,而不是32位版本。

票数 1
EN

Stack Overflow用户

发布于 2012-07-24 08:00:01

来自https://github.com/brianmario/mysql2/issues/8

刚在控制台里复制了这个

代码语言:javascript
复制
sudo apt-get install mysql-client libmysqlclient-dev

成功了!!

票数 129
EN

Stack Overflow用户

发布于 2012-10-28 08:18:23

我使用Homebrew for Mac安装mysql:

代码语言:javascript
复制
brew install mysql

然后我使用gem命令安装mysql2 gem:

代码语言:javascript
复制
sudo gem install mysql2
票数 40
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10051448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档