2011-12-12 44 views
7

Tôi đã nhận lỗi này "nổi tiếng" trong khi cài đặt mysql2 đá quý trên Bóp Debian:Lỗi khi cài đặt mysql2 đá quý trên 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 

Có rất nhiều kết quả tìm kiếm tại stack overflow nhưng không ai trong số họ sẽ sửa chữa vấn đề của tôi .

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

được cài đặt qua repo dấu chấm.

Máy chủ mysql cũng được cài đặt.

Các tập tin sau đây liên quan đến libmysqlclient có thể được tìm thấy tại/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

Có lẽ là tìm kiếm địa điểm sai cho 'libmysqlclient'. Có một số nơi trong cấu hình xây dựng, bạn có thể tùy chỉnh này? Ngoài ra, nó sẽ giúp nếu bạn có thể chỉ ra nơi bạn đang tải về nguồn của bạn từ, sau đó có thể là lỗi có thể được sao chép. –

+0

Cảm ơn bạn đã đề cập đến 'libmysqlclient-dev', giải quyết được sự cố của tôi –

Trả lời

21

Có vẻ như các vấn đề với các phần mở rộng tự nhiên là thiếu các tập tin header (.h) Họ thường được tìm thấy trong các thư viện -dev

sudo apt-get install libmysqlclient-dev 

gem install mysql2 

giải quyết vấn đề cho Debian/Ubuntu.

+0

+1 cảm ơn !! mà làm việc cho tôi quá :) – SubniC

Các vấn đề liên quan