2012-02-03 19 views
7

Acabo de migrar mi entorno de desarrollo RoR a Ubuntu. Saqué un proyecto en el que estoy trabajando desde github, y estoy intentando instalar todas las gemas necesarias. Sin embargo, cada vez que corro bundle o bundle install o bundle install exec me sale el siguiente error:No puedo ejecutar el paquete, sigo recibiendo el error

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

nadie se ha ocupado de este dolor en particular? Tu ayuda es eternamente apreciada.

+0

¿podría incluir la salida de 'cat /home/edu/Workspace/SuitBrokers/exec/ruby/1.9.1/gems/mysql-2.8.1/ext/mysql_api/gem_make.out'? – Woahdae

+0

ese archivo dice textualmente lo que dice la salida comenzando después de esta línea "Gem :: Installer :: ExtensionBuildError: ERROR: no se pudo construir la extensión nativa de la gema". –

+0

sin embargo, no veo extconf.rb en ningún lugar del directorio ruby ​​.../bin/ruby ​​ –

Respuesta

12

Necesita decirle a bundler dónde encontrar las cosas de mysql-dev en su caja. Por lo general, algo así como el siguiente trabajo:

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

Por supuesto, tendrá que sustituir la ruta anterior con su ruta real a mysql_config. Si no tiene instalado mysql_config, necesitará el paquete mysql-dev instalado en su servidor. Parece que probablemente estés en un servidor compartido, así que con suerte el paquete de desarrollo ya está instalado. Si no, deberás solicitarlo.

+0

gracias @JasonK. ¿Cómo averiguo si tengo instalado el paquete mysql-dev? ¿Dónde lo busco? hay un comando para ejecutar? Estoy usando Ubuntu 11.10 que está instalado en una máquina virtual de Oracle que se ejecuta en Windows 7. –

+6

Creo que en Ubuntu el paquete se llama libmysqlclient-dev. Así que el comando para instalarlo sería algo así como 'sudo apt-get install libmysqlclient-dev' – JasonK

+0

Esto funcionó para mí sin ningún problema. Gracias. –

3

La biblioteca que te falta, en Ubuntu 14.04 (Confiable) es: libmysqlclient-dev. La línea de abajo hizo el truco para mí:

sudo apt-get install libmysqlclient-dev 
Cuestiones relacionadas