त्रुटि: Rubocop डाउनलोड करने का प्रयास करते समय मणि देशी एक्सटेंशन बनाने में विफल


13

जब मैं "sudo gem rubocop स्थापित करने की कोशिश करता हूं", मुझे लगता है ...

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

    current directory: /var/lib/gems/2.3.0/gems/rainbow-2.2.1/ext
/usr/bin/ruby2.3 mkrf_conf.rb

current directory: /var/lib/gems/2.3.0/gems/rainbow-2.2.1/ext
/usr/bin/ruby2.3 -rubygems /usr/share/rubygems-integration/all/gems/rake-10.5.0/bin/rake RUBYARCHDIR=/var/lib/gems/2.3.0/extensions/x86_64-linux/2.3.0/rainbow-2.2.1 RUBYLIBDIR=/var/lib/gems/2.3.0/extensions/x86_64-linux/2.3.0/rainbow-2.2.1
/usr/bin/ruby2.3: No such file or directory -- /usr/share/rubygems-integration/all/gems/rake-10.5.0/bin/rake (LoadError)

rake failed, exit code 1

Gem files will remain installed in /var/lib/gems/2.3.0/gems/rainbow-2.2.1 for inspection.
Results logged to /var/lib/gems/2.3.0/extensions/x86_64-linux/2.3.0/rainbow-2.2.1/gem_make.out

इसलिए मैंने कई समाधानों की कोशिश की है, विशेष रूप से /programming/22544754/failed-to-build-gem-native-extension-installing-compass (अलग रत्न, एक ही त्रुटि) से

मैंने आरवीएम को "आरवीएम रीइंस्टॉल - डीडेबल-बाइनरी 2.2.0" के साथ फिर से इंस्टॉल करने की कोशिश की, जिसमें कुछ समय लगा लेकिन इसे ठीक नहीं किया

अगले मैं $ "sudo apt-get install रूबी-देव" की कोशिश की जो पैदावार देता है

Reading package lists... Done
Building dependency tree       
Reading state information... Done
ruby-dev is already the newest version (1:2.3.0+1).
The following packages were automatically installed and are no longer required:
  dkms linux-headers-4.4.0-53 linux-headers-4.4.0-53-generic
  linux-image-4.4.0-53-generic linux-image-extra-4.4.0-53-generic
  python-appindicator python-gconf python-gi python-glade2
  python-gobject python-pexpect python-ptyprocess python-xdg
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 40 not upgraded.

मैंने "रत्न अपडेट - सिस्टम" की भी कोशिश की है, जो मुझे मिलता है ...

Latest version currently installed. Aborting.

किसी भी सुझाव की बहुत सराहना की जाएगी क्योंकि मैं कुल noob हूं और मैं फंस गया हूं।


जैसा कि त्रुटि कहती है, क्या आपने rakeस्थापित किया है?
मुरु

हां। मेरे पास सबसे नया संस्करण है।
user642832

जवाबों:


27

करो sudo gem install rakeऔर फिर करो sudo gem install rubocopऔर यह काम करना चाहिए।

इससे कोई फर्क नहीं पड़ता कि आपके पास रेक का सही संस्करण है। मेरे लिए rake --versionरिपोर्ट किया 10.5.0गया था, लेकिन मुझे आपके जैसा ही त्रुटि संदेश मिल रहा था।

त्रुटि संदेश को देखते हुए, यह rakeएक विशिष्ट पथ की तलाश कर रहा है, न कि मेरे पर कहीं भी PATH:

/usr/bin/ruby2.3: No such file or directory -- /usr/share/rubygems-integration/all/gems/rake-10.5.0/bin/rake (LoadError)

which rakeरिपोर्ट /usr/local/bin/rake, नहीं /usr/share/rubygems-integration/all/gems/rake-10.5.0/bin/rake

और वास्तव में, जैसा कि त्रुटि संदेश कहता है, इसमें कोई फ़ाइल नहीं है /usr/share/rubygems-integration/all/gems/rake-10.5.0/bin/rake

यह शायद एड के बजाय एड rakeहोने के साथ करना है । वह फ़ाइल बनाता है।apt-get installgem installsudo gem install rake


3

मैं इस समस्या को हल करने में सक्षम था

sudo mkdir -p /usr/share/rubygems-integration/all/gems/rake-10.5.0/bin
sudo ln -s /usr/bin/rake /usr/share/rubygems-integration/all/gems/rake-10.5.0/bin/

इसे GitHub पर देखें ।


2

जब मैंने 2017 में इसका उत्तर दिया, तो मुझे @ सीनहैंडॉन्ड के समाधान पर संदेह हुआ, क्योंकि रेक रत्न पहले से ही स्थापित होना दिखाई दिया। यह डेबियन के रेक पैकेज और उनके रूबीज-इंटीग्रेशन सिस्टम के माध्यम से निकला है। रेक रत्न को फिर से स्थापित करते हुए, श्री हैमंड के अनुसार, आज मेरे लिए काम किया, क्योंकि यह डेबियन के संस्करण को ओवरराइड करता है, इसलिए अंतर्निहित बग से बचा जाता है। खैर, पहले यह कहा:

martind@balance:~$ sudo gem2.1 install --no-ri --no-rdoc rake
Fetching: rake-12.3.1.gem (100%)
ERROR:  While executing gem ... (TypeError)
    no implicit conversion of nil into String
martind@balance:~$ 

त्रुटि की रिपोर्टिंग के लिए मैंने अपस्ट्रीम फिक्स लागू करने के बाद कहा कि:

rake's executable "rake" conflicts with an unknown executable
Overwrite the executable? [yN]  n
ERROR:  Error installing rake:
    "rake" from rake conflicts with installed executable from 
martind@balance:~$ 

... जिससे मुझे सफलता मिली:

martind@balance:~$ sudo gem2.1 install --no-ri --no-rdoc --format-executable rake
Successfully installed rake-12.3.1
1 gem installed
martind@balance:~$ 

रूबीज के लिए अद्यतन बाइनरी को खोजने के लिए यह पर्याप्त है:

martind@balance:~$ ruby2.1 -we 'puts(Gem.bin_path("rake", "rake"))'
/var/lib/gems/2.1.0/gems/rake-12.3.1/exe/rake
martind@balance:~$ ls -l /var/lib/gems/2.1.0/gems/rake-12.3.1/exe/rake
-rwxr-xr-x 1 root root 1182 Apr 17 15:03 /var/lib/gems/2.1.0/gems/rake-12.3.1/exe/rake
martind@balance:~$ 

@ ShaunJackman के समाधान ने मेरे लिए भी काम किया। यह अच्छी तरह से हो सकता है कि डेबियन को इसे ठीक करना चाहिए, हालांकि मैं अपनी मशीन पर एक निर्देशिका में फाइलें नहीं छोड़ूंगा, जिसे डेबियन बाद में बदलना चाहेगा।

चारों ओर एक कम दर्दनाक कार्य rake=/usr/bin/rakeवातावरण में सेट हो रहा था जिसमें से मैं वह रत्न स्थापित कर रहा था जिसे मैं चाहता था:

martind@balance:~$ rake=/usr/bin/rake sudo gem2.1 install --no-ri --no-rdoc mediawiki_api
Fetching: unf-0.2.0.beta2.gem (100%)
Building native extensions.  This could take a while...
Successfully installed unf-0.2.0.beta2
Fetching: mediawiki_api-0.7.1.gem (100%)
Successfully installed mediawiki_api-0.7.1
2 gems installed
martind@balance:~$ 

... जैसा कि अब मेरी डेबियन बग रिपोर्ट में बताया गया है । उस सेटिंग से गुजरने के लिए आपके sudo की आवश्यकता हो सकती है --preserve-env।

(इस उत्तर के पहले संस्करण में, मैंने दावा किया कि " sudo gem install rainbowइसे हल करने के बराबर " लेकिन यह पता चला है कि मेरी समस्या समतुल्य नहीं थी। मेरी समस्या मणि, इंद्रधनुष और रूबोक के साथ नहीं थी, लेकिन वास्तव में मणि के साथ थी ।1, मीडियाविकि- प्रवेश द्वार (या इसके उत्तराधिकारी, मीडियाविकि_पी) और गैर-कारण। निर्भरता को मैन्युअल रूप से स्थापित करने का कारण जिसने पहली बार मेरे मामले में काम किया, वह यह था कि gem2.1 में एक बग है, जिसमें यह निर्भरता के रूप में पूर्व-संस्करण संस्करण स्थापित करना पसंद करता है। मुझे संदेह है, कोड के बजाय कोड से। गद्य, कि बग यह एक है, जब खुद को स्थापित करने के लिए कहा जाता है, तो इसके बजाय, और ठीक है, एक रिलीज संस्करण चुनता है, एक जो सिर्फ रेकग्मेंट के बजाय रूबीगैम के एक्सटॉनफ्यूबर्ल कोड पथ का उपयोग करने के लिए होता है। इससे मूल पोस्टर को उनके इंद्रधनुष समस्या के साथ मदद नहीं मिली होगी, क्योंकि उन्हें प्रीलीज़ संस्करण नहीं मिला था। लम्बी विषयांतर के लिए क्षमा करें, लेकिन शायद यह किसी और को इसी तरह की समस्या का सामना करने में मदद करेगा।)


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