`आवश्यकता ': लोड करने के लिए ऐसी कोई फ़ाइल नहीं - mkmf (LoadError)


563

मैं Ruby1.9.1 का उपयोग करके उबंटू नट्टी नरवाल पर 11.04 पर रेल स्थापित करने की कोशिश कर रहा था।

मैंने माणिक स्थापित apt-get install ruby1.9.1-fullकिया जिसमें देव पैकेज है। मैंने त्रुटि को नजरअंदाज कर दिया है और सभी ने सुझाव दिया है कि मैं 1.9.1-देव स्थापित करता हूं जो मेरे पास पहले से है।

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

        /usr/bin/ruby1.8 extconf.rb
extconf.rb:36:in `require': no such file to load -- mkmf (LoadError)
    from extconf.rb:36


Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/bcrypt-ruby-3.0.1 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/bcrypt-ruby-3.0.1/ext/mri/gem_make.out

1
मुझे वियर-वेबड्राइवर स्थापित करने के लिए एक समानांतर त्रुटि हुई। रूबी1.0.1-देव
केलिडिक

जवाबों:


979

एक समाधान के लिए कुछ खोज के बाद यह पता चला कि -devपैकेज की जरूरत है, न कि सिर्फ ruby1.8। तो अगर आप की है ruby1.9.1कर रही है

sudo apt-get install ruby1.9.1-dev

या जेनेरिक रूबी संस्करण स्थापित करने के लिए, (@lamplightdev टिप्पणी के अनुसार) का उपयोग करें:

sudo apt-get install ruby-dev

इसे ठीक करना चाहिए।

locate mkmfयह देखने की कोशिश करें कि क्या वास्तव में फाइल वहां मौजूद है।


220
निम्नलिखित आपके वर्तमान में स्थापित रूबी संस्करण से मेल खाने वाले देव पैकेज को स्थापित करेगा: sudo apt-get install ruby-dev
lamplightdev

हाँ मेरे लिए काम किया। रूबी -v चलाएं संस्करण को खोजने के लिए यदि आप केवल वर्तमान रूबी संस्करण को स्थापित करना चाहते हैं।
डैन ब्रैडबरी

3
@lamplightdev Didnt मेरे लिए काम करते हैं, माणिक संस्करण 1.9.3 था और यह 1.8 स्थापित कर रहा था यदि मैंने रूबी-देव को स्थापित करने की कोशिश की
कार्तिक टी

1
मैंने स्थापित किया है ruby-all-dev, यह संभवतः सभी संस्करणों के लिए काम करेगा।
ज्यूबिक

यह भी आवश्यक है कि अब aws-sdk के लिए SOAP को AWS के लिए पदावनत किया जाए। एक चिंता का विषय है अगर हितधारक किसी उत्पादन निर्माण पर किसी भी चीज पर आपत्ति जताते हैं। (एसडीके उन्हें या तो रोमांचित नहीं करता है)।
मैकेंज़्म

185

यह जवाब है कि मेरे लिए काम किया है। ऊपर टिप्पणियों में था, लेकिन ubuntu 12.04 रूबी 1.8.7 के जवाब के रूप में अपनी सही जगह के हकदार हैं

sudo apt-get install ruby-dev
# if above doesnt work make sure you have build essential
sudo apt-get install build-essential

यह भी ध्यान देने योग्य है कि यदि आप ubuntu सॉफ्टवेयर सेंटर का उपयोग करना चाहते हैं, तो रूबी-देव के लिए एक ऐड-ऑन है जिसे आप 'एक्सटेंशन मोड्यूल को संकलित करने के लिए हेडर फाइल' के लिए चुन सकते हैं।
राइटहंडेडमोंकी

मैंने sudo apt-get install ruby1.9.1-devटिप्पणी या इस उत्तर को देखने से पहले माणिक 1.9.3 के साथ प्रयोग किया , और इसने मुझे रेल एक्सटेंशन बनाने की अनुमति दी। सुनिश्चित नहीं है कि अगर इस तरह के बेमेल संस्करण मुझे बाद में किसी भी सिरदर्द का कारण बनने जा रहे हैं, लेकिन यह ध्यान दिया जाना चाहिए कि आधिकारिक तौर पर स्वीकार किए गए उत्तर के थोड़े बदलाव का उपयोग करके रेल को सही तरीके से स्थापित किया गया है।
DWils

यदि आपके पास आरवीएम है तो क्या होगा? तो क्या आपके पास पहले से रूबी संस्करण नहीं है जो आपको चाहिए?
thesecretmaster

37

मुझे बिल्ड-एसेंशियल इनस्टॉल भी चाहिए:

sudo apt-get install build-essential

यहीं टिकट था .. मुझे लगता है कि मुझे रूबी-देव को भी स्थापित करना था, लेकिन जब तक मैंने बिल्ड-एसेंशियल स्थापित नहीं किया, तब तक यह काम नहीं किया। एक लाख धन्यवाद
अपरिवर्तित

30

समस्या अभी भी Ubuntu 13/04 / 13.10 / 14.04 पर पुनरावर्ती है

तथा

sudo apt-get install ruby1.9.1-dev

मेरे लिए ठीक काम किया। तो यदि आप Ubuntu 13.04 / 13.10 / 14.04 का उपयोग कर रहे हैं तो यह प्रयोग वास्तव में काम में आएगा।

यह तब भी काम करता है, जब माणिक संस्करण 1.9.3 हो। इसका कारण यह है कि रिपॉजिटरी में रूबी 1.9.3-देव उपलब्ध नहीं है ...


1
हां, यह मेरे लिए रूबी 1। 9।3 पर भी काम किया। Ruby1.9.3-dev के लिए ubuntu रिपॉजिटरी में एक पैकेज नहीं था।
डीडिल्स

कोई और नहीं ... rvm.io से rvm --ruby के साथ rvm को स्थापित करने के बाद काम किया - और संभवत: सबसे पहले माणिक को हटा दें
dagelf

18

आपने कोशिश की है:

sudo apt-get install ruby1.8-dev

3
मैं 1.9.1 का उपयोग कर रहा हूं, मैं रूबी 1.8-देव को क्यों स्थापित करूं?
उमर एस।

यह वास्तव में बहुत अजीब है, मैंने 1.9.1 स्थापित किया है, लेकिन यह 1.8 पढ़ता है, जब मैं रूबी -v चलाता हूं: मुझे मिलता है: रूबी 1.8.7 (2010-08-16 पैचवेल 302) [x86_64-linux]
उमर एस।

2
आपके पास अपने सिस्टम पर डिफ़ॉल्ट रूबी के रूप में रूबी 1.8 सेट है
माटेयो अल्सेनी

10

बंडल स्थापित करते समय मुझे समान त्रुटि मिली

sudo apt-get install ruby-dev

मेरे लिए बहुत अच्छा काम करता है और समस्या को हल करता है टकसाल 16 ruby1.9.3



1

आपने रूबी 1.8 किया है इसलिए आपको इसे काम करने के लिए कम से कम 1.9 में अपग्रेड करने की आवश्यकता है।

यदि ऐसा है, तो जांचें कि माणिक रत्न के विशिष्ट संस्करण को कैसे स्थापित किया जाए?

यदि यह मदद नहीं करेगा, तो फिर ruby-devसे पुनः स्थापित करें।


0

आप आरवीएम (रूबी संस्करण प्रबंधक) का उपयोग कर सकते हैं जो आपकी मशीन पर रूबी के सभी संस्करणों को प्रबंधित करने में मदद करता है, जो आपके विकास के लिए बहुत सहायक है (जब अस्थिर रिलीज से स्थिर रिलीज की ओर पलायन होता है)

या लिनक्स (ubuntu) के लिए जाना sudo apt-get install ruby1.8-dev

फिर sudo gem install railsइसे सत्यापित करने के लिए यह rails -vरेल पर संस्करण दिखाएगा

उसके बाद आप बंडल स्थापित कर सकते हैं (विकास के लिए आवश्यक रत्न)


आप अभी भी लिनक्स पर आरवीएम का उपयोग कर सकते हैं। मुझे लगता है कि (लेकिन अभी भी इस mkmf त्रुटि के मुद्दा है जब रेल स्थापित करने) कर रहा हूँ
thesecretmaster
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.