2015-03-07 5 views
9

में रेल 4.1.5 के साथ mysql2 मणि ​​का उपयोग करने में सक्षम नहीं है, मैं रेल के साथ mysql 2 मणि ​​का उपयोग करने की कोशिश कर रहा हूं, इसलिए मैंने gem 'mysql2' जोड़ा। मैं bundle install का उपयोग कर इसे स्थापित करने में सक्षम नहीं हूं, और यह मुझे यह त्रुटि देता है।रूबीमाइन

Gem::Ext::BuildError: ERROR: Failed to build gem native extension. 

    /Users/Ben/.rvm/rubies/ruby-2.2.0/bin/ruby -r ./siteconf20150307-17143-1jx7cob.rb extconf.rb 
checking for ruby/thread.h... yes 
checking for rb_thread_call_without_gvl() in ruby/thread.h... yes 
checking for rb_thread_blocking_region()... no 
checking for rb_wait_for_single_fd()... yes 
checking for rb_hash_dup()... yes 
checking for rb_intern3()... yes 
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... no 
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=/Users/Ben/.rvm/rubies/ruby-2.2.0/bin/$(RUBY_BASE_NAME) 
     --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-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 

extconf failed, exit code 1 

Gem files will remain installed in /Users/Ben/.rvm/gems/ruby-2.2.0/gems/mysql2-0.3.18 for inspection. 
Results logged to /Users/Ben/.rvm/gems/ruby-2.2.0/extensions/x86_64-darwin-14/2.2.0/mysql2-0.3.18/gem_make.out 
An error occurred while installing mysql2 (0.3.18), and Bundler cannot continue. 
Make sure that `gem install mysql2 -v '0.3.18'` succeeds before bundling. 

मुझे नहीं पता कि इसे कैसे काम करना है, इसलिए किसी भी मदद की सराहना की जाएगी।

यहां मेरे कंप्यूटर पर कुछ जानकारी दी गई है। ruby -v =>ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin14]

gem 'rails', '4.1.5' (रेल -v काम नहीं करेगा)

bundler -v =>Bundler version 1.8.4

ओएस: मैक Yosemite

+0

कैसे आप 'ruby', स्थापित के माध्यम से' rvm' – Sontya

+0

हाँ एक्स) समस्या ठीक होती है। कोशिश की कि सवाल पोस्ट करने से पहले और अभी भी काम नहीं करता है। –

+0

भाग गया: 'curl -sSL https://get.rvm.io | बैश-स्थिर - रुबी –

उत्तर

1

मैं मेरी समस्या पता लगा के बाद, मैं था RubyMine में rails server चला रहा है, लेकिन किसी कारण से, आरएम एक का उपयोग कर रहा था रूबी का पुराना संस्करण। परियोजना के एसडीएस बदलना पूरी तरह से काम किया!

+0

यह जानना अच्छा है। :) –

21

लिए मैक उपयोगकर्ता:

brew install mysql 
gem install mysql2 

लिए उबंटू उपयोगकर्ता:

sudo apt-get install mysql-server mysql-client libmysqlclient-dev 
sudo gem install mysql2 

स्थापित कर रहा है libmysqlclient-देव आप mysql2 मणि है जो रेल जब आप अपने सेटअप MySQL से कनेक्ट करने का उपयोग करेगा संकलित करने के लिए आवश्यक फ़ाइलों देता है रेल ऐप


अंत में, bundle install

+0

के लिए mysql या जो भी देव लाइब्रेरी की आवश्यकता है, उसे नहीं लगता है ओपी का कहना है कि वे इस सवाल में ओएस एक्स योसामेट पर हैं। – Jon

+0

मै मैक पर हूं। कृपया प्रश्न पढ़ें। –

+1

मेरा जवाब अपडेट किया गया। –

5

कोशिश चलाने स्थापित करने के लिए 'libmysqlclient-देव' पहली

sudo apt-get install libmysqlclient-dev 

और रन

bundle install 
1

सुनिश्चित करें कि आप अपने रत्न बंडलर का उपयोग कर स्थापित करें।

भागो

bundle install 

या बस

gem install mysql2 

फिर अपने database.yml फ़ाइल

+0

पहले से ही यह किया है। मुझे एक समाधान मिला, लेकिन धन्यवाद। –

+0

समाधान क्या था। मैं इस पर फंस गया हूं, mysql2 मणि ​​को अनइंस्टॉल करने का प्रयास किया, पुनः स्थापित करना, errormkmf.rb प्राप्त करना जारी रखें: 381: 'try_do' में: कंपाइलर निष्पादन योग्य फ़ाइल उत्पन्न करने में विफल रहा। (RuntimeError) आपको पहले विकास उपकरण इंस्टॉल करना होगा। – bjm88

1

नहीं एक OS विशिष्ट जवाब में यह शामिल है, लेकिन दूसरों की मदद कर सकते हैं:

नई MySQL2 एडेप्टर (v0.4.x) रेल 4.1.5 के साथ संगत नहीं हैं। एक पुराना mysql2 मणि ​​निर्दिष्ट करना (उदाहरण के लिए v0.3।

gem 'mysql2', '~> 0.3.21' 

स्रोत:: https://github.com/brianmario/mysql2/issues/675

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