मैं RVM का उपयोग करके लायन पर रेल स्थापित क्यों नहीं कर सकता?


83

मैं आरवीएम का उपयोग करके ओएस एक्स लॉयन पर रेल स्थापित करने की कोशिश कर रहा हूं।

अब तक, मैंने निम्नलिखित कार्य किए हैं:

  1. स्थापित मैक ओएस एक्स लायन संस्करण 10.7 (बिल्ड 11 ए 459 ई)।
  2. स्थापित XCode 4.1 डेवलपर पूर्वावलोकन 5।
  3. आरवीएम स्थापित किया।
  4. आदेश का उपयोग करके आरवीएम के माध्यम से रूबी का 1.8.7 संस्करण स्थापित किया rvm install 1.8.7। नोट: मुझे 1.8.7 का उपयोग करने की आवश्यकता है और 1.9.2 की नहीं।
  5. कमांड का उपयोग करके रूबी के 1.8.7 संस्करण पर स्विच किया गया rvm 1.8.7
  6. कमांड का उपयोग करके एक नया रत्न बनाया गया rvm gemset create rails3
  7. कमांड का उपयोग करके नए रत्नसेट पर स्विच किया गया rvm use 1.8.7@rails3
  8. रेल स्थापित करने के लिए मैंने कमांड चलाया gem install railsलेकिन मुझे निम्नलिखित त्रुटि मिली:

    /User/m/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/timeout.rb:60: [BUG] सेगमेंटेशन दोष

जब कोई रत्न आदेश चलाने की कोशिश करता है तो वही त्रुटि होती है इसलिए मुझे नहीं लगता कि यह वास्तव में रेल के साथ कोई समस्या है।

नीचे दिए गए लिंक को देखते हुए, मुझे यह समस्या होने वाली एकमात्र व्यक्ति नहीं लगती है:

http://twitter.com/#//lingles/status/66261101351927809 और https://github.com/carlhuda/bundler/issues/1058


2
आप एक बहुत खून बह रहा बढ़त चल रहे हैं, और 1.8.7 का जोड़ शायद मामलों को जटिल करता है। मैं 1.9.2 स्थापित करने की कोशिश कर रहा हूँ, फिर पटरियों और देखो कि कैसे जाता है। जब मैं 1.8.7 और रेल को पीछे हटाने की कोशिश करता। जैसा कि, आप सॉफ्टवेयर के दो टुकड़ों का उपयोग कर रहे हैं जो अभी तक जारी नहीं हुए हैं, इसलिए आप पाएंगे कि समर्थन अभी तक पकड़ा नहीं जा सकता है। "विभाजन दोष" अक्सर 64-बिट सिस्टम के खिलाफ 32-बिट बिल्ड का परिणाम होता है, जो अप्रत्याशित सिस्टम संस्करणों के साथ हो सकता है। के आउटपुट का अध्ययन करें rvm infoऔर देखें कि यह क्या कहता है। यह कुछ सुराग पकड़ सकता है।
टीन मैन

2
उचित चेतावनी के रूप में, लायन एनडीए के अधीन है, इसलिए आपको संभवतः नामित Apple चैनलों के बाहर इस बारे में बात करने की अनुमति नहीं है। यदि वे बहुत इच्छुक थे तो Apple आपके डेवलपर खाते पर चर्चा कर सकता है।
चक

धन्यवाद @ वह टिन मैन: मैं देखूंगा कि अगर आरवीएम जानकारी में कुछ भी है। दुख की बात है, मैं है इस परियोजना के लिए 1.8.7 उपयोग करने के लिए; उपरोक्त चरणों का पालन करना लेकिन रूबी के साथ 1.9.2 ने रेल्स को केवल ठीक स्थापित करने की अनुमति दी।
माइकल जेरोम

चेतावनी @Chuck के लिए धन्यवाद - मैं सावधान रहूंगा कि मैं जो भी सहमत हूं, उसका खुलासा न करूं।
माइकल जेरोम

RVM 1.9.2 इन सुझावों में से किसी के साथ काम नहीं करता है। rvm llvm का पता लगाता है और नहीं चलेगा
Dale

जवाबों:


77

ठीक कर दिया!

जवाब वास्तव में मैं ऊपर पोस्ट किए गए लिंक में से एक पर था। माणिक का एक संस्करण स्थापित करने से पहले (आरवीएम 1.8.7 स्थापित करें) मुझे " export CC=/usr/bin/gcc-4.2" चलाने की आवश्यकता है । उस जगह के साथ, सब कुछ सुचारू रूप से चला।

यदि आप CCस्थायी रूप से निर्यात नहीं करना चाहते हैं , तो आप कर सकते हैंCC=/usr/bin/gcc-4.2 rvm install 1.8.7

यदि आप पहले ही रूबी 1.8.7 स्थापित कर चुके हैं। बस करोCC=/usr/bin/gcc-4.2 rvm reinstall 1.8.7


मुझे याद है कि कहीं न कहीं यह पढ़कर कि शेर पर डिफ़ॉल्ट कंपाइलर होगा, मुझे लगता है कि आपको ऐसा कुछ करने की आवश्यकता है।
Schmurfy

3
उस निर्यात कमांड का उपयोग करने से आपके सत्र के सभी बाद के आदेशों के लिए CC बदल जाता है ... जो अन्य संकलन को गड़बड़ कर सकता है। CC=/usr/bin/gcc-4.2 rvm install 1.8.7Rvm इंस्टाल के लिए CC को ओवरराइड करने के लिए सभी एक लाइन का उपयोग करें ।
जूल

जो इसके लायक है, उसके लिए @ skue का नोट मेरे काम नहीं आया। मुझे इसे अपनी .zshrcफ़ाइल में जोड़ना था ।
बजे बेन क्रीगर

1
@Benjamin आप Z Shell का उपयोग कर रहे हैं, सही है? वर्थ नोटिंग, क्योंकि स्पष्ट रूप से अधिकांश मैक उपयोगकर्ता केवल टर्मिनल + बैश का उपयोग करते हैं।
एलन एच।

1
@ एलन एच। - हाँ, निश्चित रूप से zsh। एफडब्ल्यूआईडब्ल्यू, लॉयन में, मुझे ज़िश फायरिंग .rvmrcस्क्रिप्ट्स से परेशानी थी , इसलिए मैंने bashथोड़ी देर के लिए वापस स्विच किया । इस प्रकार, मैंने उस लाइन को अपने साथ जोड़ लिया है .bash_profile
बेन क्रीगर

24

यदि आपने Xcode 4.2 स्थापित किया है, तो यह वास्तव में अब गैर-LLVM gcc स्थापित नहीं करता है, इसलिए आपको इसे जोड़ना होगा। ४.१ स्थापित करने के बाद ४.१ को डाउनग्रेड करने के लिए किसी कारण से यह सही ढंग से काम नहीं करता है (कम से कम यह मेरे और अन्य लोगों के लिए समान मुद्दे नहीं थे)।

काफी जोर-जबरदस्ती के बाद आखिरकार मेरे लिए यही काम आया:

  1. App Store से Xcode 4.2 स्थापित करें
  2. OSX gcc इंस्टॉलर का उपयोग करके डार्विन जीसीसी स्थापित करें
  3. आरईई स्थापित करें सुनिश्चित करें कि आप पिछले प्रयासों के किसी भी वेस्ट को हटा दें:

किसी भी खुली टर्मिनल विंडो को बंद करें, एक नया खोलें और

rvm remove ree
export CC=/usr/bin/gcc-4.2
rvm install ree

इसने मेरे लिए rvm 1.8.6, OS X 10.7.2 और gcc-4.2 संस्करण 4.2.1 (Apple build 5666) के साथ काम किया।

यदि आपने पहले से ही Xcode 4.1 स्थापित किया है, तो 4.2 में अपग्रेड करने के आग्रह का विरोध करें और आपको ठीक होना चाहिए।


पिछली बार जब मैं चारों ओर आया था, यह नहीं देखा, लेकिन इस पैकेज को एक अन्य ट्यूटोरियल में पाया .. लेकिन एक महान जवाब अगर उपरोक्त सिफारिशों काम नहीं करती हैं !!
टिम बास

हाँ, मुझे बस एक नया MBP मिला और पिछले उत्तरों में से किसी ने भी मेरे लिए काम नहीं किया। एफडब्ल्यूआईडब्ल्यू, जब मैंने एक्सकोड स्थापित किया, तो, मुझे, नवीनतम संस्करण मिला, जो अभी 4.2.1 है। मैंने OSC gcc इंस्टॉलर को स्थापित किया, निर्यात लाइन को मेरे .bash_profile में जोड़ा, फिर rvm को कमांड को लागू किया --force का उपयोग करके, और जाने के लिए अच्छा था। धन्यवाद!
टर्बोलेडेन

यह मदद की खुशी है! मैं उसी स्थिति में था और किसी भी अन्य उत्तर ने मेरे लिए काम नहीं किया, इसलिए मैं इसका दस्तावेज बनाना चाहता था।
मैट सैंडर्स

पिछले सभी सुझावों के विफल होने के बाद इसने मेरे लिए भी काम किया।
कोरी शायर

एक अद्यतन के रूप में, मैंने हाल ही में शेर को फिर से स्थापित किया और Xcode को स्थापित किए बिना सब कुछ काम करने में सक्षम था। इसलिए, यदि आपने इसे अभी तक स्थापित नहीं किया है, तो आप बस OSX gcc इंस्टॉलर को आज़माना चाहते हैं और देख सकते हैं कि आपके पास क्या है।
मैट सैंडर्स

22

अगर वह अभी भी ऐड -फोर्स नहीं करता है। तो यह बन जाता है:

CC=/usr/bin/gcc-4.2 rvm install ruby-1.8.7 --force


हां, यदि आपने बिना gcc-4.2 के इंस्टॉल शुरू किया है, तो यह दूसरी जगह छोड़ दिया जाएगा। तो आप की जरूरत है - आप पहले से ही llvm के साथ संकलित सामान को खत्म करने और शुरू करने के लिए लागू करें।
लारेंस

मैंने अपने ~ / .rvm को उड़ा दिया और अभी भी इस्तेमाल करना था --फोर्स टाय हंस
स्कॉट स्मिथ

धन्यवाद हंस, --फोर्स मैं वह भी ढूंढ रहा था
स्टु

1
अक्सर make cleanइंस्टॉलेशन डायरेक्टरी में कमांड-लाइन का उपयोग करना इसके बजाय उपयोग करने के लिए अधिक उपयुक्त कमांड है --force। बल त्रुटियों को अनदेखा करता है, और त्रुटियों पर ध्यान देने के लिए कुछ है। तो सावधान रहें।
टीन मैन

7

यदि आप पहले से ही उपयोग करने से पहले इसे स्थापित "सुनिश्चित करें कि आप 1.8.7 हटाने export CC=/usr/bin/gcc-4.2" करके " rvm remove 1.8.7"


6

मेरे सिस्टम पर भी यही मुद्दा था। मैंने Apple से Xcode कमांड लाइन टूल स्थापित किया है जो LLVM संकलक के साथ और LLVM के बिना मुफ्त में जहाज करता है।

रूबी 1.8.7 एलएलवीएम कंपाइलर के साथ भी काम नहीं करेगा CC=clang, इसलिए एलएलवीएम फ्री जीसीसी स्थापित करने से समस्या हल हो जाती है।

यहाँ सूचीबद्ध कई विकल्प हैं:

https://github.com/mxcl/homebrew/wiki/Custom-GCC-and-cross-compilers

छोटी कहानी, होमब्रे के साथ GCC v4.2 स्थापित करें :

brew install https://raw.github.com/Homebrew/homebrew-dupes/master/apple-gcc42.rb

और फिर माणिक 1.8.7 स्थापित करें:

CC=gcc-4.2 rvm install 1.8.7

4
GitHub URL बदल गया है। इसके brew install https://raw.github.com/Homebrew/homebrew-dupes/master/apple-gcc42.rbबजाय अब कमांड है ।
मैथ्यू रत्ज़ोल्फ

4

इसके बजाय " export CC=/usr/bin/gcc-4.2" डू " export CC=gcc" (xCode 4.2.x स्थापित किया जाना चाहिए)।


2

जाँचें कि आपके पास इस तरह का कौन सा संस्करण है:

ls -Al `which gcc-4.2`

मैंने यहाँ निर्देशों का पालन किया: http://robots.thoughtbot.com/post/27985816073/the-hitchhikers-guide-to-riding-a-mountain-lion

brew update
brew tap homebrew/dupes
brew install apple-gcc42

फिर पुनर्स्थापित करें:

फिर से जाँच करें कि आपके gcc का मार्ग क्या है (CC = के लिए उपयोग करने के लिए):

ls -Al `which gcc-4.2`

(वैकल्पिक) आप इसे अपने .bashrc में उदाहरण के लिए सेट कर सकते हैं:

export CC=/usr/bin/gcc-4.2

(वैकल्पिक) रूबी के किसी भी पुराने संस्करण को हटा दें

rvm remove 1.8.7

फिर:

CC=/usr/local/bin/gcc-4.2 rvm --verify-downloads 1 reinstall 1.8.7-p357 --without-tcl --without-tk 

या यदि आपने अपनी प्रोफ़ाइल में CC सेट किया है

rvm --verify-downloads 1 reinstall 1.8.7-p357 --without-tcl --without-tk 

Rvm इंस्टॉल पर झंडे नोट करें। मुझे ftp सर्वर पर चेकसम को सत्यापित करने और कुछ समस्याओं के साथ tck और क्या नहीं की पुष्टि करने में परेशानी हुई। आप उन झंडों को छोड़ सकते हैं।

इसके अलावा: आपको अपने रत्न के पुराने संस्करण को निकालने की आवश्यकता हो सकती है:

rvm gemset delete <gemset>

फिर

gem install bundler
bundle install

उम्मीद है की यह मदद करेगा।


1

Macport और ruby-1.9.x संस्करण का उपयोग करना। मैंने रूबी मणि के साथ रेल को सफलतापूर्वक स्थापित किया।


1

मेरे पास केवल आर्क x86_64 के लिए एक ही समस्या है , जब मैं अपने ~ / .rvmrc में लाइन टिप्पणी करता हूं

rvm_archflags="-arch x86_64"

एक नया टर्मिनल खोलें और फिर से रूबी-1.8.7 स्थापित करने का प्रयास करें

rvm install 1.8.7

यह सफल रहा।


0

यदि आप एक विकास वर्कफ़्लो में आरवीएम का उपयोग कर रहे हैं, तो मैंने ओएस एक्स लायन के लिए एक .rvmrc फ़ाइल में एक फिक्स जोड़ा।

https://gist.github.com/1112962

(अद्यतन फ़ाइल नाम)


0

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



0

यहां तक ​​कि इस पृष्ठ पर अन्य सभी सुझावों के साथ मैं अभी भी segfaults और निराश हो रहा था, इसलिए मैंने कहा "इसे पेंच!" और सिस्टम प्रदान रूबी 1.8.7 का उपयोग करें:

rvm use system

आपको रत्नों को स्थापित करने के लिए सुडो का उपयोग करने की आवश्यकता है, लेकिन फिर भी कम सिरदर्द को कम करना होगा।


याद रखें कि Apple के उपयोग के लिए रूबी 1.8.7 सिस्टम स्थापित है। हम उस पर गुल्लक-पीठ कर सकते हैं लेकिन रत्नों को अपडेट करने में सावधानी बरतें।
द टीन मैन

0

मेरा समाधान टर्मिनल में / usr / bin / gcc सिमिलिंक को ओवरराइड करना था। यहाँ है कि मैंने यह कैसे किया:

https://plus.google.com/101970693023462019144/posts/eYVLvMCqTmc

इसने न केवल मेरा आरवीएम इंस्टॉलेशन तय किया, बल्कि यह भी सुनिश्चित किया कि रत्नों को देशी एक्सटेंशन (जैसे rmagick) के साथ स्थापित किया जाए।

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