2012-02-03 15 views
7

Ho appena trasferito il mio ambiente di sviluppo RoR su Ubuntu. Ho tirato un progetto su cui sto lavorando da github e sto tentando di installare tutte le gemme necessarie. Tuttavia, ogni volta che corro bundle o bundle install o bundle install exec ottengo il seguente errore:Non riesco a eseguire il bundler, continuo a ricevere l'errore

[email protected]:~/Workspace/SuitBrokers$ bundle install exec 
Fetching source index for http://rubygems.org/ 
Installing rake (0.9.2.2) 
Installing multi_json (1.0.3) 
Installing activesupport (3.1.0) 
Installing bcrypt-ruby (3.0.1) with native extensions 
Installing builder (3.0.0) 
Installing i18n (0.6.0) 
Installing activemodel (3.1.0) 
Installing erubis (2.7.0) 
Installing rack (1.3.5) 
Installing rack-cache (1.0.3) 
Installing rack-mount (0.8.3) 
Installing rack-test (0.6.1) 
Installing hike (1.2.1) 
Installing tilt (1.3.3) 
Installing sprockets (2.0.3) 
Installing actionpack (3.1.0) 
Installing mime-types (1.17.2) 
Installing polyglot (0.3.3) 
Installing treetop (1.4.10) 
Installing mail (2.3.0) 
Installing actionmailer (3.1.0) 
Installing arel (2.2.1) 
Installing tzinfo (0.3.31) 
Installing activerecord (3.1.0) 
Installing activeresource (3.1.0) 
Installing ansi (1.4.1) 
Using bundler (1.0.21) 
Installing cocaine (0.2.0) 
Installing coffee-script-source (1.1.3) 
Installing execjs (1.2.9) 
Installing coffee-script (2.2.0) 
Installing rack-ssl (1.3.2) 
Installing json (1.6.1) with native extensions 
Installing rdoc (3.11) 
Installing thor (0.14.6) 
Installing railties (3.1.0) 
Installing coffee-rails (3.1.1) 
Installing jquery-rails (1.0.18) 
Installing mysql (2.8.1) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. 

     /home/edu/.rvm/rubies/ruby-1.9.2-p290/bin/ruby extconf.rb 
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... yes 
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=/home/edu/.rvm/rubies/ruby-1.9.2-p290/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 /home/edu/Workspace/SuitBrokers/exec/ruby/1.9.1/gems/mysql-2.8.1 for inspection. 
Results logged to /home/edu/Workspace/SuitBrokers/exec/ruby/1.9.1/gems/mysql-2.8.1/ext/mysql_api/gem_make.out 
An error occured while installing mysql (2.8.1), and Bundler cannot continue. 
Make sure that `gem install mysql -v '2.8.1'` succeeds before bundling. 

Qualcuno ha affrontato questo particolare dolore? Il tuo aiuto è eternamente apprezzato.

+0

potreste includere l'output di 'cat /home/edu/Workspace/SuitBrokers/exec/ruby/1.9.1/gems/mysql-2.8.1/ext/mysql_api/gem_make.out'? – Woahdae

+0

il file dice verbatim cosa dice l'uscita dopo questa riga "Gem :: Installer :: ExtensionBuildError: ERRORE: impossibile creare l'estensione nativa gem". –

+0

tuttavia, non vedo extconf.rb ovunque nella directory ruby ​​.../bin/ruby ​​ –

risposta

12

Devi dire a bundler dove trovare la roba mysql-dev sulla tua scatola. Di solito qualcosa di simile a quanto segue funziona:

bundle config build.mysql --with-mysql-config=/usr/local/mysql/bin/mysql_config 

Naturalmente, sarà necessario sostituire il percorso di cui sopra con il percorso effettivo mysql_config. Se non hai mysql_config installato, avrai bisogno del pacchetto mysql-dev installato sul tuo server. Sembra che tu stia probabilmente su un server condiviso, quindi speriamo che il pacchetto di sviluppo sia già installato. In caso contrario, dovrai richiederlo.

+0

grazie a @JasonK. Come faccio a capire se ho installato il pacchetto mysql-dev? Dove lo cerco? c'è un comando da eseguire? Sto usando Ubuntu 11.10 che è installato in una macchina Oracle Oracle in esecuzione su Windows 7. –

+6

Credo che su Ubuntu il pacchetto si chiami libmysqlclient-dev. Quindi il comando per installarlo sarebbe qualcosa come "sudo apt-get install libmysqlclient-dev' – JasonK

+0

Questo ha funzionato per me senza problemi. Grazie. –

3

La libreria che ti manca, su Ubuntu 14.04 (Trusty) è: libmysqlclient-dev. La riga sotto ha fatto il trucco per me:

sudo apt-get install libmysqlclient-dev 
Problemi correlati