2012-04-07 18 views
47

Ich versuche, das mysql2 Juwel mit Rails 3.2.3 zu installieren und es andernfalls bauen:ERROR: Fehler gem native Erweiterung (mysql2 auf Schienen 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. 

Ich renne Bündel installieren und das ist in meinem Gemfile:

gem 'mysql2', '~> 0.3.11' 

Ich habe derzeit MySQL läuft durch MAMP. Ich bin mir nicht sicher, ob das eine schlechte Idee ist und ich sollte eine Vanille MySql laufen lassen, aber es scheint, dass mein aktuelles Problem nur darin besteht, das Juwel zu installieren. Ich habe einige dieser Probleme auf Stackoverflow gesehen, aber alle scheinen ein bisschen anders zu sein oder haben wirklich komplizierte Lösungen. Gibt es etwas, das mir fehlt? Etwas Einfaches? Etwas Dummes? Ich kann bei Bedarf zusätzliche Informationen aus der Out-Datei bereitstellen. Ich habe gelesen, dass einige Leute SQLite für Dev benutzen und dann MySQL in prod testen, aber das klingt nach einer ziemlich schrecklichen Idee.

+0

ich einen mysql_config Befehl zur Verfügung, nicht sicher über die MySQL-Bibliotheken und Header haben. Ich habe MAMP/Library/bin zu meinem .profile hinzugefügt und das schien mir zu helfen. Jetzt schlägt es fehl, weil es mysql.h nicht finden kann, von dem ich annehme, dass es ein Teil der Bibliotheken/Überschriften ist? –

Antwort

1

landete ich gerade eine neue Kopie der Installation von MySQL und nicht mit MAMP und das hat den Trick gemacht. Außerdem musste unbedingt die 64-Bit-Version installiert werden, nicht 32-Bit.

17

Dies ist vor allem wegen des Mangels an MySQL-Header, versuchen MySQL Entwickler (mysql-devel) Pakete

Normalerweise dieser Fehler kommt, wenn 'libmysqlclient-dev' Paket fehlt

+0

Das hat mir geholfen! Vielen Dank! :) –

+1

Die Links sind tot. – Cyclonecode

0

Sie können diesem Thread folgen Errors Installing mysql2 gem via the Bundler, die die Lösung für Centos erklärt und dieses Problem wird behoben, wenn Sie die Befehle w.r.t Ihres Betriebssystems zwicken und Sie in der Lage sein, das mysql2-Juwel erfolgreich zu installieren.

40

verwendete ich Homebrew for Mac mysql zu installieren:

brew install mysql 

Dann habe ich ein Juwel Befehl verwendet, um die mysql2 Juwel zu installieren:

sudo gem install mysql2 
+0

tat dies und reparierte meine Fehlermeldung, die ich bekam. –

2

Ich lief in das gleiche Problem, mit OS X Sierra und MAMP und Schienen 5. Ich habe erfolgreich installiert den Edelstein über

Danach, Bündel installieren funktionierte gut.

0

Wenn ich diesen Fehler bekam, konnte ich dieses Problem beheben, indem Sie:

gem install devtools 
Verwandte Themen