2013-06-21 10 views
28

के साथ ओएस एक्स पर MySQL 5.6.12 के साथ संकलित करने में विफल रहता है मैंने होमब्री के साथ स्थापित सभी संकुल अपडेट किए हैं। MySQL 5.6.12 पर अपग्रेड किया गया (5.5.27 या तो से):mysql2 मणि ​​होमब्री

$ mysql --version 
mysql Ver 14.14 Distrib 5.6.12, for osx10.8 (x86_64) using EditLine wrapper 

और अब mysql2 मणि ​​अब और संकलन नहीं करता है:

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

     /Users/pupeno/.rvm/rubies/ruby-1.9.3-p429-perf/bin/ruby extconf.rb 
checking for rb_thread_blocking_region()... yes 
checking for rb_wait_for_single_fd()... yes 
checking for mysql.h... no 
checking for mysql/mysql.h... no 
----- 
mysql.h is missing. please check your installation of mysql and try again. 
----- 
*** 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/pupeno/.rvm/rubies/ruby-1.9.3-p429-perf/bin/ruby 
    --with-mysql-config 
    --without-mysql-config 

फ़ाइल mysql.h/usr/local/Cellar/mysql/5.6.12/include/mysql.h में मौजूद है। कोई विचार क्या चल रहा है?

फ़ाइल mysql.h/usr/local में प्रकट नहीं होता क्योंकि सिमलिंक से यह होना चाहिए गहराई में जाने लगता है: करने के बाद कहा कि, मैं मैन्युअल रूप से सिमलिंक तय की और

$ ls -la /usr/local/include/mysql 
lrwxr-xr-x 1 pupeno admin 36 21 Jun 15:18 /usr/local/include/[email protected] -> ../Cellar/mysql/5.6.12/include/mysql 
बजाय

/usr/local/Cellar/mysql/5.6.12/include 

संकलन अभी भी असफल रहा। तो मैं अटक गया हूँ।

+1

क्या आपके पास mysql डेवलपर लाइब्रेरी स्थापित है? –

+0

@HunterMcMillen मैंने सोचा कि सभी विकास फ़ाइलों को आपके mysql brew पैकेज के साथ स्थापित किया गया था। मैं क्या खो रहा हूँ? – Pablo

+0

होमब्रू + rbenv हमेशा मेरे लिए काम किया है। क्या यह एक आरवीएम मुद्दा हो सकता है? साथ ही, 'mysql.h' वास्तव में मौजूद है जहां आपको लगता है कि यह है? – tadman

उत्तर

30

मुझे एक ही समस्या थी, मैं इसे ठीक करने में कामयाब रहा। मैंने बहुत सी चीजें कीं, और मुझे यकीन नहीं है कि यह क्या था, लेकिन MySQL 5.6.10 पर जा रहा है।

स्थापना रद्द करें MySQL 5.6.12:

brew unlink mysql 
brew uninstall mysql 

homebrew निर्देशिका पर जाएं: संस्करण 5.6.10 को

cd /usr/local 

जाओ (आप brew versions mysql चलाकर संस्करणों की एक सूची प्राप्त कर सकते हैं:

git checkout 48f7e86 Library/Formula/mysql.rb 

फिर MySQL फिर से स्थापित करें:

brew install mysql 

और अब gem install mysql2 मेरे लिए काम करता है।

मैंने स्रोत (brew install mysql --build-from-source) से mysql भी स्थापित किया है, लेकिन इससे हल नहीं हुआ है, लेकिन समाधान का हिस्सा हो सकता है।

+7

आईन के जवाब ने मेरे लिए इसे हल किया। होमब्रू 0.9.4 में (अन्य संस्करणों के बारे में निश्चित नहीं है) आप 5.6.10 तक डाउनग्रेड करने के बाद 'ब्रू पिन माइस्क्ल'' का उपयोग कर सकते हैं, और अगर आप नियमित रूप से 'ब्रू अपग्रेड' का उपयोग करते हैं तो इसे अपग्रेड करने से रोक दिया जाएगा। –

+0

धन्यवाद यह मेरी मदद करता है। – prcaen

+0

एक आकर्षण की तरह काम करता है! :) – sborsje

8

यह भी मेरे लिए काम करना प्रतीत होता था। यह मणि को 5.6.10 के खिलाफ संकलित करने के लिए मजबूर करता है।

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

संबंधित जवाब: https://stackoverflow.com/a/9360181

+1

यह केवल तभी काम करेगा जब वास्तव में उस पथ पर स्थापित mysql 5.6.10 है। – Jan

+1

महान काम किया! बस यह सुनिश्चित करने की आवश्यकता है कि पथ स्थापित MySQL के संस्करण को इंगित करता है। (मेरे मामले में, मुझे 5.1 के खिलाफ संकलन करने की आवश्यकता है) –

+0

यह पुनः लिखता है ~ ~ .bundle/config'। –

18

बस;)

gem install mysql2 -- --with-mysql-config=/usr/local/Cellar/mysql/5.6.10/bin/mysql_config 
1

मैं इस जवाब के बजाय की सिफारिश करेंगे: mysql2 gem fails to compile with MySQL 5.6.12 on OS X with Homebrew

समस्या MySql की Homebrew के संस्करण में संकलक सेटिंग्स के साथ है । मूल जवाब मिला:

brew update 
brew upgrade mysql 
gem install mysql2 

यह 5.6 करने के लिए mysql अपडेट कर देगा: http://www.randomactsofsentience.com/2013/05/gem-install-mysql2-missing-mysqlh-on-os.html

9

शीर्ष जवाब यहाँ बाहर का तारीख ... ब्रुअर्स तय कर दी है mysql है।13, जो ओएसएक्स पर mysql2 मणि ​​के साथ ठीक काम करता प्रतीत होता है।

+0

एक आकर्षण की तरह काम किया! धन्यवाद दोस्त। –

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