2011-12-12 20 views
7

ho ottenuto questo errore "popolare" durante l'installazione mysql2 gemma su Debian Squeeze:Errore durante l'installazione mysql2 gemma su Debian Squeeze

gem install mysql2 
Building native extensions. This could take a while... 
ERROR: Error installing mysql2: 
    ERROR: Failed to build gem native extension. 

     /usr/local/rvm/rubies/ruby-1.9.2-p290/bin/ruby extconf.rb 
checking for rb_thread_blocking_region()... yes 
checking for rb_wait_for_single_fd()... no 
checking for mysql.h... yes 
checking for errmsg.h... yes 
checking for mysqld_error.h... yes 
creating Makefile 

make 
gcc -I. -I/usr/local/rvm/rubies/ruby-1.9.2-p290/include/ruby-1.9.1/i686-linux -I/usr/local/rvm/rubies/ruby-1.9.2-p290/include/ruby-1.9.1/ruby/backward -I/usr/local/rvm/rubies/ruby-1.9.2-p290/include/ruby-1.9.1 -I. -DHAVE_RB_THREAD_BLOCKING_REGION -DHAVE_MYSQL_H -DHAVE_ERRMSG_H -DHAVE_MYSQLD_ERROR_H -D_FILE_OFFSET_BITS=64 -I/usr/include/mysql -DBIG_JOINS=1 -fno-strict-aliasing -g -fPIC -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wno-long-long -fPIC -Wall -funroll-loops -o client.o -c client.c 
gcc -I. -I/usr/local/rvm/rubies/ruby-1.9.2-p290/include/ruby-1.9.1/i686-linux -I/usr/local/rvm/rubies/ruby-1.9.2-p290/include/ruby-1.9.1/ruby/backward -I/usr/local/rvm/rubies/ruby-1.9.2-p290/include/ruby-1.9.1 -I. -DHAVE_RB_THREAD_BLOCKING_REGION -DHAVE_MYSQL_H -DHAVE_ERRMSG_H -DHAVE_MYSQLD_ERROR_H -D_FILE_OFFSET_BITS=64 -I/usr/include/mysql -DBIG_JOINS=1 -fno-strict-aliasing -g -fPIC -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wno-long-long -fPIC -Wall -funroll-loops -o mysql2_ext.o -c mysql2_ext.c 
gcc -I. -I/usr/local/rvm/rubies/ruby-1.9.2-p290/include/ruby-1.9.1/i686-linux -I/usr/local/rvm/rubies/ruby-1.9.2-p290/include/ruby-1.9.1/ruby/backward -I/usr/local/rvm/rubies/ruby-1.9.2-p290/include/ruby-1.9.1 -I. -DHAVE_RB_THREAD_BLOCKING_REGION -DHAVE_MYSQL_H -DHAVE_ERRMSG_H -DHAVE_MYSQLD_ERROR_H -D_FILE_OFFSET_BITS=64 -I/usr/include/mysql -DBIG_JOINS=1 -fno-strict-aliasing -g -fPIC -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wno-long-long -fPIC -Wall -funroll-loops -o result.o -c result.c 
result.c: In function ‘rb_mysql_result_fetch_fields’: 
result.c:381: warning: comparison between signed and unsigned integer expressions 
gcc -shared -o mysql2.so client.o mysql2_ext.o result.o -L. -L/usr/local/rvm/rubies/ruby-1.9.2-p290/lib -Wl,-R/usr/local/rvm/rubies/ruby-1.9.2-p290/lib -L. -rdynamic -Wl,-export-dynamic -Wl,-rpath,/usr/lib -Wl,-R -Wl,/usr/local/rvm/rubies/ruby-1.9.2-p290/lib -L/usr/local/rvm/rubies/ruby-1.9.2-p290/lib -lruby -L/usr/lib -lmysqlclient_r -lpthread -lz -lm -lrt -lssl -lcrypto -ldl -lpthread -lrt -ldl -lcrypt -lm -lc 
/usr/bin/ld: cannot find -lmysqlclient_r 
collect2: ld returned 1 exit status 
make: *** [mysql2.so] Error 1 


Gem files will remain installed in /usr/local/rvm/gems/ruby-1.9.2-p290/gems/mysql2-0.3.11 for inspection. 
Results logged to /usr/local/rvm/gems/ruby-1.9.2-p290/gems/mysql2-0.3.11/ext/mysql2/gem_make.out 

Ci sono un sacco di risultati di ricerca in overflow dello stack, ma nessuno di loro avrebbe risolto il mio problema .

libmysqlclient-dev - MySQL database development files 
libmysqlclient18 - MySQL database client library 

vengono installati tramite punto deb repo.

Anche mysql-server è installato.

I seguenti file relativi a libmysqlclient potrebbe essere trovato in/usr/lib

/usr/lib/libmysqlclient.so.18 
/usr/lib/libmysqlclient_r 
/usr/lib/libmysqlclient.so 
/usr/lib/libmysqlclient.so.16.0.0 
/usr/lib/libmysqlclient.a 
/usr/lib/libmysqlclient_r.so.16 
/usr/lib/libmysqlclient.so.16 
/usr/lib/libmysqlclient.so.18.0.0 
/usr/lib/libmysqlclient_r.so.16.0.0 
+1

È presumibilmente cercando nel posto sbagliato per 'libmysqlclient'. C'è un posto nella configurazione di build che puoi personalizzare? Inoltre, sarebbe di aiuto se potessi indicare da dove stai scaricando la tua fonte, quindi forse l'errore può essere riprodotto. –

+0

Grazie per aver menzionato 'libmysqlclient-dev', che ha risolto il mio problema –

risposta

21

Sembra che il problema con le estensioni native è la mancanza dei file di intestazione (h) Essi si trovano tipicamente nelle librerie -dev

sudo apt-get install libmysqlclient-dev 

gem install mysql2 

risolve il problema per Debian/Ubuntu.

+0

+1 grazie !! funziona anche per me :) – SubniC

Problemi correlati