2012-04-07 118 views
47

我试图安装使用Rails 3.2.3 mysql2宝石和它的失败:错误:无法建立宝石原生扩展(mysql2上轨3.2.3)

★ 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. 

我运行安装包这是在我的Gemfile中:

gem 'mysql2', '~> 0.3.11' 

我目前已经通过MAMP运行MySQL。我不确定这是否是一个坏主意,我应该运行一个vanilla MySQl,但目前的问题似乎只是安装了gem。我在这里看到了很多关于stackoverflow的这些问题,但都显得有点不同或者有非常复杂的解决方案。有什么我失踪?简单的事情?有什么愚蠢的东西?如有必要,我可以从out文件中提供更多信息。我读过一些人使用SQLite进行开发和测试,然后在prod中使用MySQL,但这听起来像一个非常可怕的想法。

+0

我有可用mysql_config命令,不知道MySQL的库和头文件。我将MAMP/Library/bin添加到我的.profile文件中,似乎有所帮助。现在它失败了,因为它找不到mysql.h,我假设它是库/头文件的一部分? – 2012-04-07 03:54:03

回答

1

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

17

这主要是由于缺乏mysql的头,尝试安装MySQL的开发者(的mysql-devel的)封装

通常,当 '的libmysqlclient-dev的' 包丢失

+0

这使我工作!谢谢! :) – 2014-06-13 03:21:42

+1

链接已死亡。 – Cyclonecode 2015-07-09 14:23:17

40

我以前Homebrew for Mac安装mysql:

brew install mysql 

然后我用宝石命令来安装mysql2宝石:

sudo gem install mysql2 
+0

这样做并解决了我收到的错误消息。 – 2015-05-20 15:12:04

2

我只是碰到了同样的问题,使用OS X塞拉利昂和甲基苯丙胺和轨5.我成功地通过

gem install mysql2 -- --with-mysql-config=/Applications/MAMP/Library/bin/mysql_config 

后所安装的宝石,捆绑安装工作就好了。

0

当我得到这个错误,我可以通过运行来解决这个:

gem install devtools 
相关问题