2012-04-07 113 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 
相關問題