jruby

2012-03-26 20 views
6

पर mysql इंस्टॉल करने में कई त्रुटियां मैं jsuby का उपयोग करके रेल पर उपयोग के लिए mysql मणि स्थापित करने का प्रयास कर रहा हूं, इसे समझ नहीं सकता ... किसी भी मदद की सराहना की जाती है!jruby

$ sudo gem install mysql2 

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

     /Users/masedesign/Work/repos/code/conf/vms/ruby/jruby/bin/jruby extconf.rb 
WARNING: JRuby does not support native extensions or the `mkmf' library very well. 
Check http://kenai.com/projects/jruby/pages/Home for alternatives. 
checking for rb_thread_blocking_region()... 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 
cc -I. -I. -I/Users/masedesign/Work/repos/code/conf/vms/ruby/jruby/lib/native/include/ruby -I. -DHAVE_RB_THREAD_BLOCKING_REGION -DHAVE_MYSQL_H -DHAVE_ERRMSG_H -DHAVE_MYSQLD_ERROR_H -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE  -I/usr/local/mysql/include -g -Os -arch x86_64 -fno-common -D_P1003_1B_VISIBLE -DSIGNAL_WITH_VIO_CLOSE -DSIGNALS_DONT_BREAK_READ -DIGNORE_SIGHUP_SIGQUIT -DDONT_DECLARE_CXA_PURE_VIRTUAL -fPIC -DTARGET_RT_MAC_CFM=0 -fno-omit-frame-pointer -fno-strict-aliasing -fexceptions -Wall -funroll-loops -arch x86_64 -c client.c 
cc -I. -I. -I/Users/masedesign/Work/repos/code/conf/vms/ruby/jruby/lib/native/include/ruby -I. -DHAVE_RB_THREAD_BLOCKING_REGION -DHAVE_MYSQL_H -DHAVE_ERRMSG_H -DHAVE_MYSQLD_ERROR_H -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE  -I/usr/local/mysql/include -g -Os -arch x86_64 -fno-common -D_P1003_1B_VISIBLE -DSIGNAL_WITH_VIO_CLOSE -DSIGNALS_DONT_BREAK_READ -DIGNORE_SIGHUP_SIGQUIT -DDONT_DECLARE_CXA_PURE_VIRTUAL -fPIC -DTARGET_RT_MAC_CFM=0 -fno-omit-frame-pointer -fno-strict-aliasing -fexceptions -Wall -funroll-loops -arch x86_64 -c mysql2_ext.c 
cc -I. -I. -I/Users/masedesign/Work/repos/code/conf/vms/ruby/jruby/lib/native/include/ruby -I. -DHAVE_RB_THREAD_BLOCKING_REGION -DHAVE_MYSQL_H -DHAVE_ERRMSG_H -DHAVE_MYSQLD_ERROR_H -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE  -I/usr/local/mysql/include -g -Os -arch x86_64 -fno-common -D_P1003_1B_VISIBLE -DSIGNAL_WITH_VIO_CLOSE -DSIGNALS_DONT_BREAK_READ -DIGNORE_SIGHUP_SIGQUIT -DDONT_DECLARE_CXA_PURE_VIRTUAL -fPIC -DTARGET_RT_MAC_CFM=0 -fno-omit-frame-pointer -fno-strict-aliasing -fexceptions -Wall -funroll-loops -arch x86_64 -c result.c 
cc -dynamic -bundle -undefined dynamic_lookup -o mysql2.bundle client.o mysql2_ext.o result.o -L"." -L"/Users/masedesign/Work/repos/code/conf/vms/ruby/jruby-1.6.5/lib" -bundle -framework JavaVM -Wl,-syslibroot, -mmacosx-version-min=10.4 -Wl,-rpath,/usr/local/mysql/lib -arch x86_64 -L/usr/local/mysql/lib -lmysqlclient_r -lz -lm  -lmygcc 
ld: library not found for -lbundle1.o 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 
make: *** [mysql2.bundle] Error 1 


Gem files will remain installed in /Users/masedesign/Work/repos/code/conf/vms/ruby/jruby-1.6.5/lib/ruby/gems/1.8/gems/mysql2-0.3.11 for inspection. 
Results logged to /Users/masedesign/Work/repos/code/conf/vms/ruby/jruby-1.6.5/lib/ruby/gems/1.8/gems/mysql2-0.3.11/ext/mysql2/gem_make.out 

उत्तर

8

mysql मणि केवल एमआरआई (रूबी 1.8) के खिलाफ विकसित और परीक्षण किया गया था। जैसे कि यह उनके अधिकांश कार्यान्वयन के लिए पुरानी शैली के सी-एक्सटेंशन का उपयोग करता है। जबकि वे तकनीकी रूप से जेआरबी द्वारा समर्थित हैं, वे धीमे और त्रुटि-प्रवण हैं। तो उनका उपयोग न करें।

यदि आप जेआरबीबी का उपयोग करते हैं, तो आप जावा-नेटिव डेटाबेस इंटरफ़ेस का उपयोग करने वाले जेडीबीसी एडाप्टर का उपयोग करने से काफी बेहतर हैं और इस प्रकार बहुत तेज और बेहतर समर्थित हैं। उच्च स्तरीय इंटरफ़ेस (जैसा कि रेल द्वारा उपयोग किया जाता है) मोटे तौर पर वही है, आपको कोई अंतर नहीं दिखना चाहिए।

तो JRuby के लिए आपको jdbc-mysql मणि का उपयोग करना चाहिए, या - यदि आप रेल का उपयोग करते हैं - activerecord-jdbcmysql-adapter मणि जिसके लिए मणि की आवश्यकता होती है और उपयुक्त डेटाबेस एडाप्टर जोड़ता है।

0

ऐसा लगता है कि यह समय-समय पर आता है। यहां कुछ जानकारी के साथ SO post है (दूसरा और तीसरा उत्तर जो आप ढूंढ रहे हैं उसके साथ अधिक हैं)।

एक और नोट this blogjdbc-mysql का उपयोग करने का सुझाव देता है।

संबंधित मुद्दे