मणि स्थापित करने में असमर्थ - मणि देशी एक्सटेंशन बनाने में विफल - ऐसी फ़ाइल लोड नहीं कर सकता - mkmf (LoadError)


172

रूबी 1.9.3

जेमफाइल का हिस्सा

#...............
gem "pony"
gem "bcrypt-ruby", :require => "bcrypt"
gem "nokogiri" 
#..................

जब मैं रत्नों को स्थापित करने की कोशिश कर रहा हूं, मुझे एक त्रुटि मिलती है

alex@ubuntu:~/$ bundle
Fetching gem metadata from http://rubygems.org/.........
Fetching gem metadata from http://rubygems.org/..
Enter your password to install the bundled RubyGems to your system: 
#####............................................................
Installing bcrypt-ruby (3.0.1) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.9.1 extconf.rb 
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError)
        from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from extconf.rb:36:in `<main>'


Gem files will remain installed in /home/alex/.bundler/tmp/5526/gems/bcrypt-ruby-3.0.1 for inspection.
Results logged to /home/alex/.bundler/tmp/5526/gems/bcrypt-ruby-3.0.1/ext/mri/gem_make.out
An error occurred while installing bcrypt-ruby (3.0.1), and Bundler cannot continue.
Make sure that `gem install bcrypt-ruby -v '3.0.1'` succeeds before bundling.

फिर मैं यह कर रहा हूं

sudo gem install bcrypt-ruby -v '3.0.1'
Building native extensions.  This could take a while...
ERROR:  Error installing bcrypt-ruby:
        ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.9.1 extconf.rb
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError)
        from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from extconf.rb:36:in `<main>'


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

और एक त्रुटि भी हो रही है।

मुझसे क्या छूट गया?


जवाबों:


428

ऐसे ही सवाल हैं:

आमतौर पर, समाधान है:

sudo apt-get install रूबी-देव

या, अगर वह काम नहीं करता है, आपके रूबी संस्करण के आधार पर , कुछ इस तरह से चलाएं:

sudo apt-get install रूबी १.१.१-देव

अपनी समस्या को ठीक करना चाहिए।


अभी भी काम नहीं कर रहा है? रूबी-देव स्थापित करने के बाद निम्नलिखित प्रयास करें:

sudo apt-get install मेक


लेकिन मेरे पास 1.9.3 माणिक ही हैं।
अलेक्जेंड्रे

5
रूबी 1.9.3 रूबी 1.9.1 का एक उपनाम है

6
स्थापित करने के बाद ruby1.9.1-devमुझे भी करना पड़ा sudo apt-get install make। धन्यवाद!
टैच छिपकली

6
यदि आपने अपने रूबी को कमांड के साथ स्थापित किया है sudo apt-get install ruby(संस्करण को निर्दिष्ट किए बिना) तो आपको अपने संस्करण के बारे में बहुत अधिक चिंता करने की आवश्यकता नहीं है यदि आप अभी स्थापित करते हैंsudo apt-get install ruby-dev
kellins

7
मैंने पाया कि उबंटू 16.04 पर आप भी जरूरत हैsudo apt-get install gcc make
Treur

13

WSL (लिनक्स के लिए विंडोज सबसिस्टम) के लिए आपको build-essentialपैकेज की जरूरत है:

sudo apt install build-essential

1
अन्य सुझावों में से कोई भी ऐसा करने के बाद मेरे लिए इसे हल किया। मेरा सेटअप: Ubuntu 10.04 + रूबी 2.5 के साथ Win10 प्रो + WSL। धन्यवाद!
cjs1978

1
उबंटू सर्वर हाइपर-वी वीएम के लिए एक ही बात।
जॉर्ज येंस डाइज़

1
मेरे लिए उबंटू पर डॉकटर के भीतर काम किया
मिगुएल मोटा

यह मेरे लिए उबंटू 18.04 एलटीएस की एक नियमित स्थापना पर काम किया जब टायफॉउस को स्थापित करने की कोशिश कर रहा था। वहाँ जाने के लिए उम्र ले ली, धन्यवाद!
रिमेकिंगडेन

8

मेरे पास एक ही मुद्दा था जो jquery-rails स्थापित करने की कोशिश कर रहा था। फिक्स था

sudo apt-get install zlibc zlib1g zlib1g-dev

1
बस स्थापित करने zlib1g-devसे आपको यहाँ क्या चाहिए, या कम से कम यह मेरे लिए था।
लिंड करता है

4

मैंने पाया कि मुझे माणिक का एक और संस्करण स्थापित करने की आवश्यकता है। इसलिए कमांड चला रहा हूं

$ sudo apt-get install ruby1.9.1-dev

और फिर एक्सटेंशन को स्थापित करने का प्रयास करें

यदि आप उन मुद्दों में भाग लेते हैं जहां यह आपको बता रहा है कि आपके पास g ++ नहीं है, तो आप इसे स्थापित करने के लिए निम्न कमांड चला सकते हैं

$ sudo apt-get install g++

4

बस इसे हल करने की कोशिश कर रहे एक 2 घंटे के जंगली हंस पीछा खत्म कर दिया। मेरे द्वारा पोस्ट किए गए किसी भी उत्तर ने काम नहीं किया। एक मैक पर Im (Mojave संस्करण 10.14.6, Xcode संस्करण 11.3)।

यह पता चला है कि रूबी फ़ाइल हेडर गायब थे इसलिए मुझे भागना पड़ा open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg

मेरे लिए यह काम नहीं किया क्योंकि कमांडलाइन के संस्करण को मैंने स्थापित किया था जिसमें "संकुल" फ़ोल्डर नहीं था। तो मैं इस तरह की स्थापना रद्द और पुनः स्थापित:

rm -rf /Library/Developer/CommandLineTools

xcode-select --install

फिर मैंने पिछली कमांड को फिर से चलाया:

open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg

स्थापित करने के बाद त्रुटि ठीक हो गई थी!


इसने मेरे लिए काम किया। मैं macOS 10.14.6 (18G1012) पर हूं। Xcode 11.3।
पलमी

धन्यवाद। आपके समाधान ने मेरे लिए काम किया जब स्पंदन विकास के लिए "सूडो मणि स्थापित कोकोपोड्स" स्थापित किया।
वेंकटरामन के

3

यदि भविष्य में किसी को भी यह समस्या थी, तो मैं एक मैक का उपयोग कर रहा हूं और बस कमांड लाइन टूल्स को 'xcode-select - setup' का उपयोग करके इंस्टॉल करना था।


1
इसने मेरे लिए काम किया। मेरे मामले में, मैं अपना सिर खुजला रहा था क्योंकि मेरा निर्माण तब तक ठीक काम कर रहा था जब तक कि मैं एल कैपिटान में अपग्रेड नहीं हो गया।
ब्रूस 1337

2
  1. सुनिश्चित करें कि ruby-devस्थापित किया गया है
  2. सुनिश्चित करें कि makeस्थापित किया गया है
  3. यदि आपको अभी भी त्रुटि मिलती है, तो सुझाए गए पैकेजों की तलाश करें। यदि आप कुछ ऐसा स्थापित करने का प्रयास कर रहे हैं, जैसे gem install pgआपको परिवाद स्थापित करने की आवश्यकता होगी libpq-dev( sudo apt-get install libpq-dev)।

1

यह भी सुनिश्चित करने में मदद करता है कि libmysqlclient-dev स्थापित है (Ubuntu 14.04)



0

मैक में, मेरे लिए यह काम करता है:

CONFIGURE_OPTS="--enable-shared" rbenv install 2.2.2

0

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

sudo apt-get install ruby1.9.1-dev

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

sudo apt-get install ruby-dev

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

यह देखने के लिए mkmf का पता लगाने की कोशिश करें कि क्या फ़ाइल वास्तव में वहाँ है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.