Yosemite पर काम करने के लिए Ruby / Homebrew / RVM कैसे प्राप्त करें?


118

Yosemite स्थापित करने के बाद, मैं शराब बनाने या रूबी चलाने में असमर्थ था।

मुझे यह अद्यतन काढ़ा अपडेट में मिल रहा था:

/usr/local/bin/brew: /usr/local/Library/brew.rb: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby: bad interpreter: No such file or directory
/usr/local/bin/brew: line 23: /usr/local/Library/brew.rb: Undefined error: 0

irb पर यह त्रुटि हो रही है:

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:245:in mkdir': Permission denied - /Library/Ruby/Gems/2.0.0/extensions/universal-darwin-14 (Errno::EACCES) from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:245:infu_mkdir'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:219:in block (2 levels) in mkdir_p' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:217:inreverse_each'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:217:in block in mkdir_p' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:203:ineach'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:203:in mkdir_p' from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:210:inwrite_gem_make_out'
from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:132:in build_error' from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:171:inrescue in build_extension'
from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:156:in build_extension' from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:198:inblock in build_extensions'
from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:195:in each' from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:195:inbuild_extensions'
from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:1436:in block in build_extensions' from /Library/Ruby/Site/2.0.0/rubygems/user_interaction.rb:45:inuse_ui'
from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:1434:in build_extensions' from /Library/Ruby/Site/2.0.0/rubygems/stub_specification.rb:60:inbuild_extensions'
from /Library/Ruby/Site/2.0.0/rubygems/basic_specification.rb:56:in contains_requirable_file?' from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:925:inblock in find_inactive_by_path'
from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:924:in each' from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:924:infind'
from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:924:in find_inactive_by_path' from /Library/Ruby/Site/2.0.0/rubygems.rb:185:intry_activate'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/locale.rb:150:in block in search_file' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/locale.rb:158:inblock in each_localized_path'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/locale.rb:167:in each_sublocale' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/locale.rb:157:ineach_localized_path'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/locale.rb:145:in search_file' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/locale.rb:124:infind'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/locale.rb:108:in load' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/locale.rb:32:ininitialize'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/init.rb:114:in new' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/init.rb:114:ininit_config'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/init.rb:16:in setup' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb.rb:380:instart'
from /usr/bin/irb:12:in `'

जवाबों:


281

यह त्रुटि निम्न चरणों में आसानी से तय की जा सकती है:

1) ओपन टर्मिनल

2) टाइप करें nano /usr/local/Library/brew.rb

3) पहली पंक्ति में "1.8“ "वर्तमान" में बदल जाता है, इसलिए इसे इस तरह दिखना चाहिए:

#!/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby -W0

http://blog.ic3man.gr/2014/06/homebrew-ruby-bad-interpreter-no-such-file-or-directory/ के माध्यम से


14
जब मैं यह परिवर्तन करता हूं, तो मुझे त्रुटि मिलती है "होमब्रे को तेंदुए या उच्चतर की आवश्यकता होती है। टाइगर समर्थन के लिए, देखें: github.com/mistydemeo/tigerbrew " भले ही मैं योसमाइट चला रहा हूं
वैज्ञानिक

4
Please, commit your changes or stash them before you can merge.जब आप brew updateदुर्भाग्य से प्रयास करते हैं तो यह एक त्रुटि देता है ।
नौवी गोल्डन ऑक्ट

10
"C" को करंट के लिए कैपिटल किया जाना चाहिए#!/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby -W0
डियाब्लो

@ डियाब्लो मेरा मानना ​​है कि यह 10.10.1 में अपडेट किया गया था। पहले के संस्करण में "सी" को कैपिटल नहीं किया गया था। धन्यवाद।
raz0r

1
मुझे यह भी मिला Homebrew requires Leopard or higher- मैंने xcode कमांड लाइन टूल्स को स्थापित करने के लिए नीचे दिए गए उत्तर का पालन किया और यह अब काम करता है: stackoverflow.com/a/24225960/1062936
greg

39

मैंने योसेमाइट को अपडेट किया और बाद में पता चला brewकि टूट गया था।

/usr/local/bin/brew: /usr/local/Library/brew.rb: 
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby: bad interpreter: No such file or directory /usr/local/bin/brew: line 23: /usr/local/Library/brew.rb: Undefined error: 0

यदि आपने अभी तक शराब बनाने के लिए कोई बदलाव नहीं किया है, तो यहां मैं सुझाता हूं। अन्यथा नीचे पढ़ें।

  1. cd /System/Library/Frameworks/Ruby.framework/Versions/
  2. sudo ln -s Current 1.8
  3. brew update
  4. sudo unlink 1.8

पहले से ही काढ़ा फ़ाइलों में परिवर्तन किया और एक गड़बड़ गंदगी में फंस गए?

मैंने संपादित करने की कोशिश की, /usr/local/Library/brew.rbलेकिन मेरे गिट रेपो में स्थानीय परिवर्तन brew updateअपडेट को नीचे खींचने से रोक रहा था । मैंने इस पृष्ठ पर और अन्य साइटों से उल्लिखित कुछ अन्य समाधानों की कोशिश की और मैं एक गड़बड़ गड़बड़ के साथ समाप्त हो गया और मैं जो करना चाहता था वह सब कुछ था जो मैंने काढ़ा करने के लिए किया था।

मैंने अपना बदलाव किया लेकिन इससे हालात और खराब हुए। आखिरकार मुझे अपने कमिट्स को पूर्ववत करना पड़ा और git reset --hard HEAD~1जब तक मैं सही कमिट-ईश पर नहीं था। मेरे पास असंबद्ध फ़ाइलों की भी गड़बड़ी थी (मैंने फ़ाइलों की अनुमतियों को / usr / स्थानीय में बदल दिया था) इसलिए मैंने एक ऐसा किया, git clean -f -dजिसने सभी असूचीबद्ध फ़ाइलों और निर्देशिकाओं को हटा दिया और मुझे कोई भी बदलाव करने से पहले मुझे वापस वहीं मिल गया जहाँ से मैंने शुरुआत की थी।


3
इस जवाब ने काम किया (पूर्ववत गंदगी को शामिल करते हुए) जहां शीर्ष मतदान के जवाब ने मुझे समस्या के साथ छोड़ दिया।
स्टीव एम

आपके सिस्टम को अपग्रेड करने के बाद बहुत उपयोगी है! धन्यवाद
कोडिंग आदी

यह रूट कैपिटल के कारण "एलएन: ऑपरेशन की अनुमति नहीं है" के साथ एल कैपिटन में विफल रहता है। आप यहां वर्कअराउंड पा सकते हैं: apple.stackexchange.com/questions/196224/…
जॉर्ज ऑर्टिज़

37

इसे ठीक करने के लिए कदम:

  1. Xcode 6 के लिए कमांड लाइन टूल इंस्टॉल करें

  2. काढ़ा फिर से लगाएँ:

    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  3. एक बार काढ़ा स्थापित होने पर, आरवीएम काम करेगा:

    rvm install ruby

मेरे लिए काम किया, याहू!


मैं रूबी और दौड़ गया, लेकिन यह अभी भी मेरे लिए काम नहीं कर रहा है: stackoverflow.com/questions/24113251/…
eden

मैंने rvm और nginx को पूरी तरह से हटा दिया और Xcode 6 डेवलपर टूल इंस्टॉल करने के बाद उन्हें फिर से इंस्टॉल किया। अब यह एक आकर्षण की तरह काम कर रहा है।
wout

1
इसने मेरे लिए भी काम किया, बस इस कमांड को चरण 1 के लिए स्पष्ट करना चाहता था: xcode-select --install
James Toomey

33

स्क्रिप्ट का संपादन करने का मतलब है brew updateकाम नहीं करेगा; ट्रैक की गई फ़ाइलों में स्थानीय संपादन होते हैं जो git pullविफल होने का कारण बनते हैं।

मैंने ऐसा किया, जिस पर मुझे संदेह है कि मैं क्लीनर हूं:

cd /usr/local/Library
git pull -q origin refs/heads/master:refs/remotes/origin/master

से कोई शिकायत नहीं हैं brew doctor


जब मैं ऐसा करता हूं, तो मुझे अनट्रैक की गई फ़ाइलों के बारे में एक त्रुटि मिलती है जिसे मर्ज से पहले ले जाना चाहिए। ये सभी फाइलें लाइब्रेरी / फॉर्मूला / में हैं।
सेचर्र ०

यह मानते हुए कि आपने कुछ भी संपादित नहीं किया है, जब मेरे साथ ऐसा होता है तो इसका मतलब है कि मुझे brew doctorकुछ निर्देशों को चलाने और पालन करने की आवश्यकता है । मुद्दा यह है कि brew doctorशायद आपके लिए काम नहीं करता है, अगर आप यहां हैं। आप बस git stashले जाने में सक्षम हो सकते हैं ।
ओट्टो

7

यह अन्य लोगों के पोस्ट के उत्तरों के साथ-साथ Google पर थोड़ी सी खुदाई करने का एक समूह है, लेकिन मुझे लगा कि मैं इसे पूरा कर दूंगा, इसलिए इसका पूरा उत्तर एक ही स्थान पर है। विशेष रूप से यह अब काम करने के लिए चीजें प्राप्त करता है, लेकिन आपको सामान्य रूप से काढ़ा अपडेट करने की भी अनुमति देता है और फिर से सब कुछ साफ हो जाता है।

  1. ओपन /usr/local/Library/brew.rb (emacs / vi / नैनो / जो भी हो)
  2. पढ़ने के लिए पहली पंक्ति बदलें #!/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby -W0:। आप बस "1.8" को बदल रहे हैं जो उस लाइन में "करंट" में था (सुनिश्चित करें कि आप राजधानी "सी" रखें अन्यथा बाद में गड़बड़ हो जाएगी)।
  3. cd $(brew --repository)
  4. git add Library/brew.rb
  5. git commit -m "upgrading to ruby 2.0"
  6. brew update(या sudo brew updateयदि आपका काढ़ा केवल सिस्टम में परिवर्तन के लिए सेटअप है)

क्रेडिट: इसमें से बहुत कुछ यहां से आया , हालांकि मैं वास्तव git commit -amमें आपके / usr / स्थानीय फ़ोल्डर में करने के खिलाफ सलाह देता हूं ।


यह एकमात्र समाधान है जिसने मेरे लिए काम किया। यह इस तरह लगातार सुपर बदसूरत गड़बड़ की वजह से है कि मैं अपने अगले ऐप के लिए रूबी और रेल से दूर जा रहा हूं।
डेबोरा

3

जैसा कि पहले कहा गया था: 1) वर्तमान 2 में बदलें) xcode 6 स्थापित करें

यदि आपको अब काढ़ा और रूबी के साथ और भी समस्याएँ हैं, तो इससे मदद मिलनी चाहिए: किसी तरह से काढ़ा को संस्करण 1.8 पर रूबी की जरूरत है, इसलिए फ़ोल्डर बनाएँ:

sudo mkdir -p /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin

और एक सिमलिंक बनाएं:

sudo ln -s /usr/bin/ruby /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby

धन्यवाद! यह एकमात्र समाधान था जो मेरे लिए काम करता था;)
एलेजैंड्रोमप

2

इस ट्यूटोरियल को यहाँ देखें: http://ryantvenge.com/2014/09/ruby-homebrea-yosemite/

यह मेरे लिए काम किया!


इस लिंक पर सवाल का जवाब कर सकते हैं, यह जवाब के आवश्यक हिस्से शामिल करने के लिए बेहतर है यहाँ और संदर्भ के लिए लिंक प्रदान करते हैं। लिंक-केवल उत्तर अमान्य हो सकते हैं यदि लिंक किए गए पृष्ठ बदल जाते हैं।
बुममी

1

मैंने इसे इस प्रकार तय किया :

  1. sudo chown -R $(whoami):admin /usr/local
  2. cd $(brew --prefix) && git fetch origin && git reset --hard origin/master


0

नोट: नीचे केवल तभी करें यदि आप पूरी तरह से विफल स्थिति में समाप्त होते हैं, क्योंकि यह बहुत खतरनाक है

एक उदाहरण के रूप में मैं मिलता रहा

$ सुडो ln -s वर्तमान 1.8

$ काढ़ा अद्यतन

/usr/local/Library/brew.rb:18:in ': अपरिभाषित विधि सहायता?' ["अपडेट"] के लिए: ऐरे (NoMethodError)

मुझे बस यही मिल रहा है ... (कोई बात नहीं क्या कमांड सिर्फ "अद्यतन" कमांड के साथ स्विच करें) मैंने एक दोस्त /usr/localफ़ोल्डर के लिए पूछकर समस्या को हल किया । मैंने फिर अपने /usr/localफोल्डर का बैकअप बनाया ।

sudo mv / usr / स्थानीय /usr/local.orig

मैं उसके बाद मेरे पास चला /usr/localगया

sudo mv ~ / डाउनलोड / स्थानीय / usr / स्थानीय

नोट: आप संभवतः कुछ डेटा खो देंगे ताकि बैकअप करना सुनिश्चित करें।


-1

मुझे पैकेज प्रबंधकों का उपयोग करके रूबी को स्थापित करने की कोशिश करने में समस्याएं थीं। इन कार्यक्रमों में निष्पक्षता के साथ, मैं उनके साथ बहुत कम अनुभव होने की बात स्वीकार करता हूं और अधिकांश अन्य उत्तरदाताओं की तरह गहराई से खुदाई करने का प्रयास नहीं किया। मैं आलसी हूं और अधिकांश ऑप्सिस विकल्पों और कई पैकेजों के लिए उपलब्ध बाइनरी इंस्टॉलर का उपयोग करना पसंद करता हूं। दुर्भाग्य से, रूबी एक आपूर्ति करने के लिए प्रतीत नहीं होता है।

मैंने रूबी-बिल्ड को स्थापित करने के लिए आसान पाया (अकेले - प्लगइन नहीं), और इसने रूबी को बिना त्रुटि के स्रोतों से बनाया और जहां मैं चाहता था, वहां रखा।

बिंगो - आसान :) यह पैकेज प्रबंधक के उन लोगों के लिए एक अच्छा विकल्प की तरह दिखता है जो अनुनय को चुनौती देते हैं।

चार्ली

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