2012-04-07 13 views
47

Sto cercando di installare il gioiello mysql2 con Rails 3.2.3 e sta in mancanza:ERRORE: impossibile costruire gemma estensione nativa (mysql2 sulle rotaie 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. 

sto correndo bundle install e questo è nel mio Gemfile:

gem 'mysql2', '~> 0.3.11' 

Attualmente ho MySQL in esecuzione tramite MAMP. Non sono sicuro se questa è una cattiva idea e dovrei eseguire un MySQl vaniglia ma sembra che il mio problema attuale sia quello di installare la gemma. Ho visto alcuni di questi problemi qui su StackOverflow ma tutti sembrano un po 'diversi o hanno soluzioni davvero complicate. C'è qualcosa che mi manca? Qualcosa di semplice? Qualcosa di stupido? Posso fornire ulteriori informazioni dal file esterno, se necessario. Ho letto che alcune persone usano SQLite per sviluppatori e testano poi MySQL in prod, ma sembra un'idea orribile.

+0

Ho un comando di mysql_config a disposizione, non sono sicuro circa le librerie e gli header di MySQL. Ho aggiunto MAMP/Library/bin al mio .profile e questo mi è sembrato di aiuto. Ora non funziona perché non riesce a trovare mysql.h, che presumo faccia parte delle librerie/delle intestazioni? –

risposta

1

ho finito solo l'installazione di una nuova copia di MySQL e non usare MAMP e questo ha fatto il trucco. Dovevo anche essere sicuro di installare la versione a 64 bit, non a 32 bit.

17

Ciò è in gran parte a causa della mancanza di intestazioni mysql, tenta di installare sviluppatore mysql (mysql-devel) Pacchetti

Normalmente questo errore viene quando il pacchetto 'libmysqlclient-dev' manca

+0

Questo ha funzionato! Grazie! :) –

+1

I collegamenti sono morti. – Cyclonecode

0

È possibile seguire questo thread Errors Installing mysql2 gem via the Bundler che spiega la soluzione per Centos e questo problema verrà risolto, se si modifica i comandi w.r.t. il proprio sistema operativo e si può essere in grado di installare con successo mysql2 gem.

40

ho usato Homebrew for Mac installare mysql:

brew install mysql 

Poi ho usato un comando gioiello per installare la gemma mysql2:

sudo gem install mysql2 
+0

ha fatto questo e corretto il mio messaggio di errore che stavo ottenendo. –

2

Ho appena incontrato lo stesso problema, utilizzando OS X Sierra e MAMP e Rails 5. Ho installato con successo la gemma via

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

Successivamente, l'installazione di bundle ha funzionato bene.

0

Quando ho ricevuto questo errore, sono stato in grado di risolvere questo problema eseguendo:

gem install devtools 
Problemi correlati