GEM को अनदेखा करना क्योंकि इसके एक्सटेंशन नहीं बने हैं


133

मेरे काम और होम कंप्यूटर दोनों पर, मैंने हाल ही में रूबी को 2.3.1 में अपग्रेड किया, जिसका उपयोग कर ruby-install। मैं chrubyअपने रूबी स्विचर के रूप में उपयोग करता हूं।

मैंने अपने टर्मिनल में इस चेतावनी को देखना शुरू किया:

Ignoring bcrypt-3.1.11 because its extensions are not built.  Try: gem pristine bcrypt --version 3.1.11
Ignoring bcrypt-3.1.10 because its extensions are not built.  Try: gem pristine bcrypt --version 3.1.10
Ignoring binding_of_caller-0.7.2 because its extensions are not built.  Try: gem pristine binding_of_caller --version 0.7.2
Ignoring byebug-9.0.5 because its extensions are not built.  Try: gem pristine byebug --version 9.0.5
Ignoring byebug-5.0.0 because its extensions are not built.  Try: gem pristine byebug --version 5.0.0
Ignoring concurrent-ruby-ext-1.0.2 because its extensions are not built.  Try: gem pristine concurrent-ruby-ext --version 1.0.2
Ignoring debug_inspector-0.0.2 because its extensions are not built.  Try: gem pristine debug_inspector --version 0.0.2

मेरे काम, कंप्यूटर पर, सूची बहुत लंबी थी, लेकिन हल करना आसान था। जब मैंने सुझाव देने की कोशिश की gem pristine GEM, तो उसने मुझे बताया कि यह मणि नहीं मिल सकती है, इसलिए मैं भागा gem install GEM, और उसने इसे हल किया।

घर में, कुछ भी काम नहीं कर रहा है।

सामान्य ज्ञान और विभिन्न अन्य स्टैक प्रश्नों से मैंने जो चीजें आज़माई हैं, वे हैं:

  • gem pristine GEM
  • gem pristine --all
  • रत्न को अनइंस्टॉल करना और पुन: स्थापित करना
  • gem update
  • gem update --system
  • bundle update
  • स्थापना रद्द करना और पुन: स्थापित करना bundler
  • स्थापना रद्द करना और पुन: स्थापित करना rails(हालांकि, यह एक विशिष्ट समस्या नहीं है।)
  • हटाने ~/.bundle/
  • खोलने XCodeऔर इसे कुछ एक्सटेंशन स्थापित करने की अनुमति देता है (इसे करने की आवश्यकता थी, लेकिन यह कुछ भी ठीक नहीं करता था।)
  • चल रहे हैं brew doctorऔर सभी छोटे मुद्दों को हल करने, फिर brew updateऔरbrew upgrade
  • gem install curb (मैं सोच भी नहीं सकता कि इस रत्न का इस मुद्दे से क्या लेना-देना है, लेकिन दो अलग-अलग लोगों ने इसे एक ही चेतावनी के अपने फिक्स के अंतिम चरण के रूप में सूचीबद्ध किया है।)

1
यदि रत्न स्थापित नहीं हैं तो मैं भी वही चेतावनी देख रहा हूं। मैंने अनइंस्टॉल bcryptकर दिया और इसने मुझे इसके बारे में दो चेतावनी दी।
फिलिप लॉन्गमैन

1
क्या आपने बंडल अपडेट किया? अनइंस्टॉल करना और रीइंस्टॉल करना सिर्फ आपके जेमफाइल.लॉक में जो भी होगा, उसका उपयोग करेगा। बुंडलर वह है जो एक्सटेंशन का निर्माण करेगा। साथ ही, आपका आउटपुट रत्नों के कई संस्करणों को सूचीबद्ध कर रहा है, इसलिए आपको पता होना चाहिए कि यह रूबी के उस संस्करण के लिए विस्तृत है (जिसका अर्थ है कि आपके पास पुनर्निर्माण के लिए कई रत्न होंगे)।
एंथनी

मैं अपने होम फोल्डर में था, रेल्स प्रोजेक्ट नहीं था, इसलिए जेमफाइल नहीं था।
फिलिप लांगमैन

एक ही मुद्दा मेरे लिए हुआ (rvm का उपयोग करके)। gem pristine --allकाम नहीं किया। बंडल सहित सभी रत्नों को हटाकर हल किया गया। फिर बंडलर स्थापित किया gem install bundlerऔर अंत में मेरी परियोजना में वापस आ गया और भाग गया bundle installजिसने मेरे सभी रत्नों को फिर से स्थापित किया और सब कुछ काम कर रहा है
डेविड वॉटसन

मेरे मामले में, यह एक विम विस्तार के कारण था। मैंने इसके आसपास काम करने के लिए उर्फ ​​विम = "आरवीएम यूज़ सिस्टम डू विम" ​​किया। लेकिन मैंने केवल चेतावनी को देखा जब मैंने विम को बाहर कर दिया, यदि आप इसे अन्य स्थितियों में देख रहे हैं तो यह संभवत: लागू नहीं होगा।
ब्रायन डिटर्जलिंग

जवाबों:


179

मैं आज इस सटीक मुद्दे पर आया था - इस तरह के रत्नों के लिए चेतावनी प्राप्त करना जो कि स्थापित भी नहीं थे!

... खैर, यह पता चला है कि रत्नों को स्थापित किया गया था - एक अलग रूबी के लिए जिसे मैंने क्रुबी के साथ सक्रिय किया था (2.2.3 बनाम 2.3.1)।

सभी अलग-अलग माणिकों gem pristine --allपर स्विच करने और उन सभी पर चलने से समस्या हल हो गई।


3
यह मेरे लिए केवल वर्तमान रूबी (मैं आरवीएम का उपयोग करता हूं) पर कर रहा हूं। शायद यह किसी को बहुत अधिक सफाई करने से रोकता है;)
सैंड्रो एल

1
कभी-कभी gem pristine --allअच्छा नहीं होगा। अधिक जानकारी के लिए पूछें अलग पर यह जवाब देखें ।
जीडीपी 2

यदि आपके gem pristine --allपास अनुमति के मुद्दे हैं, तो आपको जांच करनी चाहिए which rubybrew link --overwrite ruby && source ~/.bash_profileऔर रन gem pristine --allमदद कर सकते हैं
क्रिस Yim

उन समाधानों में से कोई भी मेरे लिए काम नहीं कर रहा है और मेरे पास यही मुद्दा है।
एलेक्स कोहेन

19

मैं इस मुद्दे पर भाग गया और उपरोक्त सभी समान आदेशों का पालन किया, यहां तक ​​कि अपने सभी पहले से स्थापित रूबी संस्करणों को हटाने के लिए। हालाँकि, त्रुटि बनी रही।

पता चला, विभिन्न (पहले अनइंस्टॉल किए गए) संस्करणों के लिए कुछ बचे हुए जवाहरात थे ~/.gem/ruby/। मेरे द्वारा उपयोग किए जाने वाले फ़ोल्डरों को हटाने के बाद, त्रुटियां गायब हो गईं।


2
इसने मेरे लिए यह किया। rm -rf मैंने पहले अपने सभी रत्नों को बिना किसी लाभ के स्थापित करने की कोशिश की थी।
स्टीवनन्यूज

10

मुझे आज भी यह समस्या थी और यह निराश था क्योंकि मैं टाइप नहीं कर सकता था क्योंकि मेरा पूरा संपादक त्रुटि संदेशों के साथ लाल हो गया था।

मुझे पूरी तरह से यकीन नहीं है कि वास्तव में इसका क्या कारण है, लेकिन मेरा मानना ​​है कि यह इसलिए है क्योंकि हमारे पास कई रूबी संस्करण या कई रूबी संस्करण प्रबंधक स्थापित हैं और वे एक-दूसरे को अधिलेखित करते हैं और अन्यथा रत्नों की ओर अपना रास्ता बनाते हैं।

gemआदेश भी ओवरराइट हो जाता है आप rbenv और rvm है जब।

टाइप करके देखें कि आपने कौन सा इंस्टॉल किया है;

which rvm
which rbenv
which chruby

यदि उनमें से एक स्थापित है तो यह एक रास्ता लौटाएगा। फिर उन्हें हटा दें, सभी निर्देशिकाओं को पूरी तरह से साफ करना सुनिश्चित करें और एक साफ इंस्टॉल के साथ शुरू करें।


हटाना

यहाँ मैंने rvm के लिए क्या किया है ;

rvm implode
gem uninstall rvm
rm -rf ~/.rvm
rm -rf ~/.rvmrc

यहां मैंने रेंबव के लिए क्या किया

पहले https://github.com/meowsus/rbenv-clean स्थापित किया , फिर

rbenv clean
sudo apt-get remove rbenv
rm -rf ~/.rbenv

पुनर्स्थापित

फिर आपके पास काम करने के लिए एक साफ घर निर्देशिका है। मैंने Ubuntu 14.04 पर रूबी 2.1.4 को कैसे स्थापित किया जाए, इसके साथ रेंब्वेट किया । और अंत में;

rbenv rehash

सिर्फ rvm संबंधित सामान को हटाने से मेरे लिए
macOS

6

मैंने उपर्युक्त सब कुछ शामिल किया

  • xcode- चयन - स्थापना
  • माणिक पुनः स्थापित करें
  • सभी रत्नों को पुनः स्थापित करें
  • मणि प्रस्तर - लंबा

लेकिन मुद्दा मेरे लिए समान था। मैंने अपने मैक को आखिरी उम्मीद के रूप में रिबूट किया, और चेतावनी संदेश गायब हो गए।

अजीब है, लेकिन अगर स्टैकऑवरफ्लो पर सब कुछ करने के बाद भी इस मुद्दे से जूझ रहा है, तो अपनी मशीन को रिबूट करने का प्रयास करें।


4
रिबूट टिप साझा करने के लिए धन्यवाद। मुझे एक ही समस्या थी, एक मैक पर, और बस एक नया टर्मिनल सत्र शुरू करने से हल करने में सक्षम था।
Libby

3

यदि आपने आरवीएम स्थापित किया है, तो संभव है कि आप त्रुटि को पकड़ रहे हैं क्योंकि आपने विभिन्न संस्करण स्थापित किए हैं।

बेकार संस्करणों की जाँच करें और निकालें, लेकिन मुझे लगता है कि यह अच्छा तरीका नहीं है । वैसे भी त्रुटियाँ हो गईं।

rvm list
rvm use ruby-version
rvm remove ruby-useless-version

कोकोपोड्स ताज़ा करने के बाद, इसे .rvm GEM_HOME में इंजेक्ट किया जाना चाहिए

gem uninstall cocoapods
gem install cocoapods

शायद मणि के pod COMMANDबारे में त्रुटि फेंक देंगे minitest, इसलिए -gem install minitest


2

टीएल; डीआर - रूबी रत्न रूबीज़ को सहानुभूति से चलाना पसंद नहीं करते हैं या जहां वे बनाए गए थे (एम्बेडेड शेबंग के कारण) से चले गए थे

अगर रूबी डायरेक्टरी को सिमिलिंकड डायरेक्टरी में एनवायरनमेंट वर्जन पॉइंट या पॉइंट किया जाता है, या कॉपी या रीनेम किया जाता है, तो यह मैसेज संभावना है। मैं चेरुबी का उपयोग कर रहा हूं और सहानुभूति व्यक्त कर रहा था /opt/rubies/-> /usr/local/ruby/, लेकिन रूबी के गतिशील पुस्तकालय-खोज तर्क इसके साथ अच्छा नहीं खेलता है।

मेरे मामले में समाधान सिंबल को वास्तविक माणिकों के साथ बदलने /opt/rubies/और gem pristine --allप्रत्येक रूबी में चलाने का था। आरवीएम या रेंबव का उपयोग करने वाले अन्य लोगों के लिए, खरोंच से शुरू किए बिना इसके साथ शुभकामनाएं।

यह आपका सटीक मुद्दा नहीं हो सकता है, लेकिन उम्मीद है कि यह मदद करता है।


1
यह उन gem pristine --allसभी भाग पर चल निकला । इस मृत प्रश्न को पुनः जीवित करने के लिए धन्यवाद। मैं बस इसे नीचे जलाने और शुरू करने के करीब था।
फिलिप लॉन्गमैन

2

यहाँ मेरा अपना स्वाद है। मैं rbenvHomebrew के माध्यम से स्थापित का उपयोग करता हूं और इनमें से चार "अनदेखा ... एक्सटेंशन नहीं बनाया गया" संदेश प्राप्त कर रहा था। विशेष रूप से:

Ignoring bcrypt-3.1.12 because its extensions are not built.  Try: gem pristine bcrypt --version 3.1.12
Ignoring bindex-0.5.0 because its extensions are not built.  Try: gem pristine bindex --version 0.5.0
Ignoring bootsnap-1.3.2 because its extensions are not built.  Try: gem pristine bootsnap --version 1.3.2
Ignoring byebug-10.0.2 because its extensions are not built.  Try: gem pristine byebug --version 10.0.2

मैंने बिना किस्मत वाले इस धागे में कई चीजें आजमाईं। अंत में मेरे मामले में मैंने किया:

  • brew uninstall rbenv
  • rm -rf ~/.rbenv
  • brew install rbenv

इस बिंदु पर मुझे अभी भी त्रुटियां हो रही थीं, लेकिन अब मेरे पास केवल एक रूबी संस्करण था जिसके साथ संघर्ष करना था:

$ rbenv versions
* system (set by /Users/will/.rbenv/version)

इस बिंदु पर मैंने कोशिश की sudo gem pristine --allलेकिन सिस्टम रत्न निर्देशिका पर अनुमति के लिए अस्वीकार कर दिया गया था।

इसलिए मैं जैसे-तैसे प्रत्येक मणि पर से भागा

sudo gem pristine bcrypt --version 3.1.12 (आदि)

और अंत में त्रुटियां दूर हो गईं।


1

यह एक पुराना धागा है, लेकिन मैं खुद इस मुद्दे पर आया हूं।

आपको अपनी मशीन को पुनः आरंभ करने की आवश्यकता नहीं है, आपको बस अपने पर्यावरण को ताज़ा करने की आवश्यकता है, आप ऐसा रीहैश कमांड से कर सकते हैं:

rehash

आदमी पृष्ठ से: rehash command re-computes the internal hash table of the contents of directories listed in the path environmental variable to account for new commands added.


1
आप किस ओएस की बात कर रहे हैं?
राबनीफ्फ

rehashया hash -rबैश के लिए * nix पर एक शेल कमांड उपलब्ध है। जब सी शेल शुरू होता है, तो यह अपने रास्ते में सभी कमांडों की एक हैश तालिका बनाता है: प्रत्येक कमांड का नाम और उसका संपूर्ण पथनाम। इसलिए, जब आप एक csh रनिंग शुरू करते हैं, यदि पथ के साथ निर्देशिकाओं में नए प्रोग्राम जोड़े जाते हैं, तो आपको इसकी हैश तालिका के पुनर्निर्माण के लिए शेल के rehash कमांड का उपयोग करना होगा। (सीएफ: docstore.mik.ua/orelly/unix3/upt/ch27_06.htm )
याक

1

मुझे यह समस्या थी, लेकिन जब मैं tmuxसत्र का उपयोग करना शुरू कर रहा था tmuxinator

इसे बंद कर दिया है क्योंकि मैं इसका उपयोग करने के बजाय इसे स्थापित करने tmuxinatorसे उपयोग कर रहा हूं । शायद एक ही समय में उपयोग करने से समस्या में भी योगदान हुआ।brewgem installchruby

p / s: मैंने भी अप्रयुक्त रूबी को हटा दिया, ~/.gem/rubyलेकिन मुझे संदेह है कि यही कारण है कि इस मुद्दे को मेरे लिए हल किया गया था।


1

रनिंग gem pristine --allमें पहले मदद नहीं मिली, लेकिन फिर मुझे एहसास हुआ: जो स्क्रिप्ट मैं चला रहा था वह लाइन के साथ शुरू हुई थी:

#!/usr/bin/ruby

मेरे macOS सिस्टम पर (कैटालिना, लेकिन मुझे नहीं लगता कि यह मायने रखता है), रूबी के लिए यह इंगित करता है कि सिस्टम के साथ आया था, आरवीएम द्वारा स्थापित नहीं। रनिंग gem pristine --allआरवीएम इंस्टॉलेशन को ठीक कर रहा था, लेकिन मेरी स्क्रिप्ट रूबी के एक अलग संस्करण को बुला रही थी।

envरूबी को कॉल करने के लिए कमांड का उपयोग करने के लिए मेरे लिए ठीक था , वर्तमान शेल में निर्दिष्ट है PATH। स्क्रिप्ट की शीर्ष पंक्ति को इस पर बदलना इसे निर्धारित करता है:

#!/usr/bin/env ruby


बस मेरे साथ हुआ - धन्यवाद! इसका मतलब है कि bundle installआरवीएम रूबी स्विचर के माध्यम से चयनित रूबी के लिए रत्नों (और उनके मूल एक्सटेंशन) को स्थापित किया गया है, जहां सिस्टम रूबी के संदर्भ में एक स्क्रिप्ट उन्हें नहीं मिल सकती है। रूबी स्क्रिप्ट और रत्नों को उपयोगकर्ता द्वारा स्थापित माणिक ( देखें ) के साथ काम करने के लिए आपका समाधान मानक अभ्यास है ।
तानीस

इसने मुझे सही रास्ते पर ला दिया! मेरे मामले में, मैं चाहता था कि tmuxinator एक उपयोग हो (विशिष्ट परियोजना के लिए बंडल बंडल नहीं), इसलिए मैंने इसे Ubuntu पर स्थापित किया। इसलिए कर रहे हैं apt purge tmuxinatorऔर फिर gem install tmuxinatorयह काम किया है। जब भी मैं अपने गैर-प्रोजेक्ट रूबी संस्करण को अपग्रेड करता हूं, तो मुझे इसे स्थापित करना होगा। धन्यवाद!
भूलभुलैया

1

चल मैक ओएस कैटालिना, काढ़ा और rbenv ...

आज इस सटीक समस्या के सामने आने के बाद, और यहाँ सभी उत्तरों के माध्यम से मैं अंततः इस त्रुटि के लिए एक और कारण से ठोकर खाई:

Ignoring nokogiri 1.10.7 because its extensions are not built. Try: gem pristine nokogiri --version 1.10.7

और निश्चित रूप से मणि प्रधान ने कोई काम नहीं किया।

मेरी समस्या एक हार्ड कोडित GEM_HOME और GEM_PATH पर्यावरण चर थी जो रैनेवाइड को ओवरराइड कर रहे थे।

इसलिए, जांचें कि आपने GEM_PATH और GEM_HOME को ~ / .zshrc में सेट नहीं किया है


0

Vagrant की स्थापना रद्द और पुनर्स्थापित भी काम करता है। unistall.toolइंस्टॉलर .DMg छवि में शामिल एक बैश स्क्रिप्ट है जो वैग्रैंट को हटा देगी।

यहाँ यह समाधान मिला: अद्यतन वैग्रान्ट और रत्न एक्स्टेंशन इन बिल्ट इन नहीं


0

मैं एक ही मुद्दा था और मैं rbenv का उपयोग कर रहा हूँ। किसी कारण से मेरी वैश्विक रेंबो सेटिंग गायब हो गई। इस समस्या को ठीक करने के लिए मैंने अपने rbenv संस्करणों में से एक के लिए वैश्विक संस्करण सेट किया ... उदाहरण के लिए:

रेंबव ग्लोबल 2.5.1


0

यह भी एक समस्या है जब आप मैक पर विकसित कर रहे हैं और फिर एक डॉकर छवि बनाएँ: https://forums.aws.amazon.com/thread.jspa?messageID=879802&tstart=0

जब आप एक "बंडल इंस्टाल - डिडिप्लिन" करते हैं, तो बंडलर एक विक्रेता निर्देशिका w / आपके रत्नों का निर्माण करेगा। ध्यान दें कि इसके साथ ही स्थानीय फ़ोल्डर में आपके रत्न शामिल हैं, इसमें केवल आपके प्लेटफ़ॉर्म के लिए मूल एक्सटेंशन शामिल होंगे। जैसा कि आप macOS पर हैं यह डार्विन होगा। आपको 64-बिट x86 लिनक्स वातावरण पर प्रक्रिया को दोहराने की आवश्यकता होगी।


0

एक नए टर्मिनल सत्र को शुरू करने के लिब्बी के सुझाव (जो उसने सेबस्टियन किम के जवाब पर टिप्पणी की) ने मेरे लिए काम किया। दूसरों की तुलना में बहुत तेज है इसलिए मैं इसे एक उत्तर देना चाहता था इसलिए यह अधिक दिखाई दे रहा था।


0

मेरे मामले में मैं भागने की कोशिश कर pristine --allरहा था लेकिन मुझे मिल रहा था:

Ignoring ffi-1.11.1 because its extensions are not built.  Try: gem pristine ffi --version 1.11.1
Ignoring jaro_winkler-1.5.3 because its extensions are not built.  Try: gem pristine jaro_winkler --version 1.5.3
Ignoring psych-3.1.0 because its extensions are not built.  Try: gem pristine psych --version 3.1.0
/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require': incompatible library version - /.gem/gems/psych-3.1.0/lib/psych.bundle (fatal) 

फिर, मैंने उस सामग्री को हटा दिया, जिस पर Users/{{user.name}}⁩/⁨.gem⁩मुझे चलाने की आवश्यकता थी bundle install --force, इसने सब कुछ पुनः स्थापित किया, फिर कमांड pristine --allने अपेक्षा के अनुरूप काम किया


0

इस समाधान ने मेरे लिए रूबीमाइन इंटेलीज के लिए काम किया

मैं दो अलग-अलग टर्मिनलों का इस्तेमाल कर रहा था RVMऔर ruby<Version>

उपाय:

त्रुटियों को दूर करने के लिए मुझे इसे आरवीएम संस्करण में बदलना पड़ा Preferences>Languages&Frameworks>Ruby SDK

त्रुटियाँ:

Ignoring executable-hooks-1.6.0 because its extensions are not built. Try: gem pristine executable-hooks --version 1.6.0 rubymine

Ignoring gem-wrappers-1.4.0 because its extensions are not built. Try: gem pristine gem-wrappers --version 1.4.0

यहाँ छवि विवरण दर्ज करें

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