Mysql2 स्थापित करने में त्रुटि: मणि देशी एक्सटेंशन बनाने में विफल




ruby-on-rails ruby (20)

रेल के लिए mysql2 मणि स्थापित करने का प्रयास करते समय मुझे कुछ समस्याएं आ रही हैं। जब मैं इसे bundle install या gem install mysql2 करता gem install mysql2 तो gem install mysql2 यह मुझे निम्न त्रुटि देता है:

Mysql2 स्थापित करने में त्रुटि: त्रुटि: मणि देशी एक्सटेंशन बनाने में विफल।

मैं इसे कैसे ठीक कर सकता हूं और सफलतापूर्वक mysql2 इंस्टॉल कर सकता हूं?


आपको यह समस्या हो रही है क्योंकि आपने MySQL इंस्टॉल नहीं किया है। Mysql2 मणि ​​स्थापित करने से पहले। MySQL स्थापित करें। उसके बाद mysql2 मणि ​​स्थापित होगा।


मैं एक मैक पर हूं और ओपन सोर्स प्रोग्राम स्थापित करने के लिए Homebrew का उपयोग करता हूं। होमब्री को स्थापित करने के लिए मुझे मैक देव टूल्स इंस्टॉल करना पड़ा, लेकिन उसके बाद यह एक आसान था:

brew install mysql

mysql स्थापित करने के लिए। मेरे पास से एक MySQL मणि समस्या नहीं है।



मेरे पास कई कंप्यूटर, 32 और 64 बिट प्रोसेसर हैं, वे उबंटू लिनक्स, मावेरिक (10.10) रिलीज पर चलते हैं।

मुझे एक ही समस्या थी, और मेरे लिए, sudo apt-get install libmysql-ruby libmysqlclient-dev ने काम किया !!!


Mysql-dev समस्याओं को ठीक करने के बाद, आपको खराब mysql2 इंस्टॉल को हटाने की आवश्यकता हो सकती है। $ बंडल इंस्टॉल के बाद संदेशों पर सावधानी से देखो। आपको इसकी आवश्यकता हो सकती है

rm -rf vendor/cache/
rm -rf ./Zentest

यह खराब mysql2 स्थापना को साफ़ कर देगा ताकि अंतिम $ बंडल इंस्टॉल एक अच्छा बना सके।


मुझे मैक ओएस एक्स 10.6.6 पर बनाया गया मणि मिला है) डेवलपर टूल पैकेज को स्थापित करना 2) स्रोत से वर्तमान MySQL पैकेज (मेरे मामले में 5.5.8) को डाउनलोड करना 3) cmake.org से cmake टूल इंस्टॉल करना 4 ) MySQL वितरण फ़ाइलों से sudo gem install mysql2 -- --srcdir=/usr/local/mysql/include धारा 2.11 में निर्देशों के बाद 5) sudo gem install mysql2 -- --srcdir=/usr/local/mysql/include मणि सफलतापूर्वक बनाया गया है, लेकिन दस्तावेज़ में दो त्रुटियां हैं rdoc और ri शिकायत के बारे में। लेकिन अब जब मैं 'mysql2' की आवश्यकता का प्रयास करता हूं तो मुझे एक मिलता है

LoadError: no such file to load -- mysql2/mysql2

मैं उम्मीद कर रहा था कि मुझे मिली त्रुटि यह थी कि libmysqlclient.16.dylib नहीं मिला क्योंकि हमने पाया कि एक और पोस्ट में (install_name_tool के लिए खोजें)।

मेरे $ पाथ में / usr / local / mysql है (यही वह जगह है जहां मेरा स्रोत और निर्मित फाइलें स्थित हैं), इसलिए मैं थोड़ा स्टंप हूं। अगर किसी के पास कोई विचार है, तो मैं सोने के कुछ घंटों के बाद वापस देखूंगा।


योग्यता का उपयोग करते हुए उबंटू / डेबियन और अन्य वितरण पर:

sudo apt-get install libmysql-ruby libmysqlclient-dev

पैकेज libmysql-ruby चरणबद्ध हो गया है और ruby-mysql द्वारा प्रतिस्थापित किया गया है। This वह जगह है जहां मुझे समाधान मिला।

यदि उपरोक्त आदेश काम नहीं करता है क्योंकि libmysql-ruby नहीं मिल सका, तो निम्नलिखित पर्याप्त होना चाहिए:

sudo apt-get install libmysqlclient-dev

यम का उपयोग कर Red Hat / CentOS और अन्य वितरण पर:

sudo yum install mysql-devel

Homebrew साथ मैक ओएस एक्स पर:

brew install mysql

मैकोज उपयोगकर्ताओं के लिए एक और तरीका

यदि आपने mysql को स्थापित करने के लिए "ब्रू" का उपयोग किया है:

gem install mysql2 -v 'x.x.x' -- --with-mysql-config=/usr/local/Cellar/mysql/y.y.y/bin/mysql_config

xxx = mysql2 मणि ​​का संस्करण जिसे आप इंस्टॉल करना चाहते हैं
yyy = mysql का संस्करण आपने इसे खोजने के लिए ls /usr/local/Cellar/mysql स्थापित किया है।


"आपको पहले विकास उपकरण इंस्टॉल करना होगा।" मैक ओएस एक्स माउंटेन शेर को अपग्रेड करने के बाद mysql2 मणि ​​स्थापित करने का प्रयास करते समय त्रुटि। स्पष्ट रूप से यह अपग्रेड करने से कमांड लाइन कंपाइलर्स को हटा दिया जाता है।

तै होना:

  • मैंने एक्सकोड के अपने पुराने संस्करण को अनइंस्टॉल किया (अनइंस्टॉल स्क्रिप्ट / डेवलपर / लाइब्रेरी में चलाया)। फिर / डेवलपर निर्देशिका हटा दी।
  • ऐपस्टोर के लिए गया और डाउनलोड एक्सकोड।
  • एक्सकोड लॉन्च किया और वरीयताओं -> डाउनलोड में चला गया, और कमांड लाइन टूल्स इंस्टॉल किया।

विंडोज उपयोगकर्ता के लिए: आप lib को सेट करते हैं और अपने mysql का पथ शामिल करते हैं, उदाहरण के लिए, यदि आप xampp का उपयोग कर रहे हैं तो आपको यह पसंद हो सकता है:

gem install mysql2 -- '--with-mysql-lib="C:\xampp\mysql\lib" --withmysql-include="C:\xampp\mysql\include"'

मैं सिर्फ विशेष रूप से मैक उपयोगकर्ताओं के लिए यह जवाब जोड़ना चाहता था।

मेरा सर्वर पूरी तरह ठीक चल रहा था जब तक कि मैंने अपना एक्सकोड अपडेट नहीं किया। मेरे रेल सर्वर को शुरू करते समय त्रुटि इस तरह दिखाई गई थी

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

    /Users/user/.rvm/rubies/ruby-1.9.3-p448/bin/ruby extconf.rb --with-mysql-
    checking for rb_thread_blocking_region()... /Users/user/.rvm/rubies/ruby-1.9.3-  
    p448/lib/ruby/1.9.1/mkmf.rb:381:in `try_do': The compiler failed to generate an    
    executable file. (RuntimeError)

और त्रुटि संदेश के अंत में mysql2 मणि ​​स्थापित करने के लिए सुझाव था। तो जब मैंने इसे स्थापित करने का प्रयास किया तो मुझे इस प्रश्न में उल्लिखित त्रुटि मिली। मुझे मिली त्रुटि निम्नानुसार है

ERROR:  Error installing mysql2:
ERROR: Failed to build gem native extension.

तो इस पोस्ट में सुझाए गए अनुसार मैंने 'mysql इंस्टॉल करें' और यह कहकर छोड़ा कि MySQL संस्करण इतना पहले से स्थापित है। लेकिन कहने से पहले चेतावनी थी

Warning: You have not agreed to the Xcode license.
Builds will fail! Agree to the license by opening Xcode.app or running:
xcodebuild -license

तब मैंने इस sudo xcodebuild -license की कोशिश की और अंत में 'सहमत' टाइप करें। लाइसेंस से सहमत होने के लिए आपको रूट होना होगा।

इसके बाद, मैंने फिर से बंडल इंस्टॉल करने का प्रयास किया और फिर सबकुछ सामान्य के रूप में ठीक काम कर रहा है। [यहां तक ​​कि इस एक्सकोड अद्यतन के कारण, मुझे अपने टावर के साथ भी समस्या थी।]


libmysql-ruby चरणबद्ध हो गया है और प्रतिस्थापित किया गया है। नया आदेश:

 sudo apt-get install ruby-mysql libmysqlclient-dev

आपको कुछ निर्भरताओं को स्थापित करना होगा

sudo apt-get install libmysql-ruby libmysqlclient-dev

मैं अपने मैक पर इस त्रुटि में भाग रहा था और पाया कि मुझे यह त्रुटि प्राप्त करने के लिए mysql 32bit से mysql 64 बिट में अपग्रेड करने की आवश्यकता है। मैं एक इंटेल मैकबुक प्रो पर रूबी 1.9.2 और रेल 3.0.0 के साथ ओएसएक्स 10.6 चला रहा था

मुझे मिक्स को संकलित करने के लिए आवश्यक "मेक" जैसी यूनिक्स उपयोगिताओं को प्राप्त करने के लिए एक्सकोड स्थापित करने की भी आवश्यकता है।

एक बार ऐसा करने के बाद मैं मम चलाने में सक्षम था mysql इंस्टॉल करें और मणि बिना त्रुटि के mysql2 स्थापित करें।


क्या आपने इसका उपयोग करने की कोशिश की है

 gem install mysql -- --with-mysql-lib=/usr/lib/mysql/lib 

मस्तिष्क निर्देशिका के स्थान के साथ-साथ मणि स्थापना को पूरा करने के लिए आवश्यक MySQL पुस्तकालयों के पथ को निर्दिष्ट करने के लिए?

स्रोत: MySQL जेम इंस्टॉल त्रुटि: मणि देशी एक्सटेंशन बनाने में विफल MySQL फ़ोरम :: रूबी :: रूबी के लिए MySQL बाध्यकारी स्थापित करने में सहायता की आवश्यकता


यदि आपको अभी भी परेशानी हो रही है ...।

स्थापित करने का प्रयास करें

   sudo apt-get install ruby1.9.1-dev

अगर अभी भी त्रुटि हो रही है तो रेल 3 पर mysql2 मणि ​​स्थापना के चरणों का पालन करें -

http://rorguide.blogspot.com/2011/03/installing-mysql2-gem-on-ruby-192-and.html

जहां अधिकांश उपयोगकर्ता mysql2 मणि ​​स्थापित करने में सक्षम थे।


विंडोज 7 और 64-बिट MySQL का उपयोग करने वालों के लिए

यदि आप 64-बिट MySQL का उपयोग करना चाहते हैं, तो आपको here निर्देशों here पालन ​​करना चाहिए ( here भी)।

एक कस्टम निर्मित 64-बिट कनेक्टर भी है जो परेशानी के बिना काम करता है।


मेरे पास विंडोज 7 के साथ यह समस्या थी। यह स्पष्ट रूप से एक असंगतता मुद्दा है और समाधान निम्नानुसार है: mysql.dll फ़ाइल को पुराने InstantRails इंस्टॉलर से डाउनलोड करें। लिंक http://tinyurl.com/24ocp8u केवल mysql.dll फ़ाइल डाउनलोड करेगा। (यह InstantRails के svn भंडार का लिंक है)। इसके बाद, उस फ़ाइल को कॉपी करें जो आपके रूबी / बिन फ़ोल्डर में है। अब, आप जाने के लिए अच्छे हैं;)


समाधान केवल मैक ओएस एक्स पर काम करता है

यदि आपने होमब्री के साथ MySQL स्थापित किया है, तो मेरे लिए क्या काम किया गया है MySQL को अनइंस्टॉल कर रहा था, और MySQL वेबसाइट ( https://www.mysql.com/ ) के माध्यम से MySQL समुदाय संस्करण स्थापित करना था।

स्थापित करने के बाद, यदि आप अनुमति प्राप्त कर रहे हैं, तो sudo gem install mysql2 gem install mysql2 करने के लिए आदेश को पुनः दर्ज करें या यदि आवश्यक हो, तो sudo gem install mysql2





mysql2