Osx मावेरिक्स पर "मणि इंस्टॉल थेरैबररैव -v '0.10.2'" स्थापित नहीं हो रहा है


90

"रत्न स्थापित उपचार -v '0.10.2' का उपयोग करके मावेरिक्स पर थेरैबरर स्थापित करने की कोशिश की जा रही है, लेकिन मुझे निम्नलिखित त्रुटि मिल रही है:

/Users/dennischen/.rvm/rubies/ruby-1.9.3-p194/bin/ruby extconf.rb
checking for main() in -lobjc... yes
creating Makefile

make
compiling rr.cpp
clang: warning: argument unused during compilation: '-rdynamic'
rr.cpp:48:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
1 warning generated.
compiling v8.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_array.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_callbacks.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_context.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_date.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_debug.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_exception.cpp
clang: warning: argument unused during compilation: '-rdynamic'
v8_exception.cpp:10:16: warning: unused variable 'stack' [-Wunused-variable]
  static void* stack[20];
               ^
1 warning generated.
compiling v8_external.cpp
clang: warning: argument unused during compilation: '-rdynamic'
v8_external.cpp:10:9: warning: unused variable 'references' [-Wunused-variable]
  VALUE references;
        ^
1 warning generated.
compiling v8_function.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_handle.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_locker.cpp
clang: warning: argument unused during compilation: '-rdynamic'
v8_locker.cpp:45:5: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
v8_locker.cpp:85:5: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
2 warnings generated.
compiling v8_message.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_object.cpp
clang: warning: argument unused during compilation: '-rdynamic'
v8_object.cpp:77:19: warning: unused variable 'proto' [-Wunused-variable]
    Handle<Value> proto(rr_rb2v8(prototype));
                  ^
1 warning generated.
compiling v8_script.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_string.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_template.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_try_catch.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_v8.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_value.cpp
clang: warning: argument unused during compilation: '-rdynamic'
v8_value.cpp:100:9: warning: unused function 'ToInt32' [-Wunused-function]
  VALUE ToInt32(VALUE self) {
        ^
1 warning generated.
compiling v8_weakref.cpp
clang: warning: argument unused during compilation: '-rdynamic'
linking shared-object v8.bundle
clang: error: no such file or directory: '/Users/dennischen/.rvm/gems/ruby-1.9.3-p194@panini/gems/libv8-3.3.10.4/lib/libv8/build/v8/libv8.a'
make: *** [v8.bundle] Error 1

क्या कोई मुझे यह पता लगाने में मदद कर सकता है कि इस रत्न को कैसे काम में लाया जाए? मेरे पास कमांड लाइन उपकरण स्थापित हैं।


क्या आपके पास है homebrew? brew install v8मणि स्थापित करने से पहले v8 का उपयोग करके स्थापित करने का प्रयास करें
इवान शामतोव

मेरा मानना ​​है कि काढ़ा स्थापित v8 एक अलग मुद्दा है। कृपया काढ़ा के साथ v8 पर विवरण के लिए stackoverflow.com/questions/11598655/therubyracer-install-error देखें ।
ऐश ब्लू

जवाबों:


242

यदि आप एक नए therubyracerरत्न संस्करण का उपयोग करने का निर्णय लेते हैं , तो आपको अब यह समस्या नहीं होगी

अन्यथा:

brew tap homebrew/dupes # Thanks Tom
brew install apple-gcc42

export CC=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2
export CXX=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/g++-4.2
export CPP=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/cpp-4.2

brew uninstall v8

gem uninstall libv8

gem install therubyracer -v '0.10.2' # specify version

11
यह दृष्टिकोण सिम्बलिंक को संशोधित करने से बेहतर लगता है
नीलेश

3
brew tap homebrew/dupesफिक्स "एरर: ऐप्पल-जीसीसी 42 के लिए कोई उपलब्ध फॉर्मूला नहीं"
टॉमफर्ट्स 19

1
यह अंतिम मेरे लिए मुद्दा तय - धन्यवाद! मैं नीचे एम स्कॉट फोर्ड के सिमलिंक समाधान की कोशिश की और यह दिखाई दिया काम करने के लिए, लेकिन जब मैं वास्तव में कुछ भी (रेक, रेल, आदि) करने की कोशिश की एक त्रुटि फेंक दिया।
काइल फॉक्स

2
येरबायरेसर 0.12.0 में अपडेट होने से यह समस्या मेरे लिए ठीक हो गई।
१२

6
दुर्भाग्य से, इन समाधानों में से कोई भी मेरे लिए OSX 10.9, रूबी 2.1.0 और उपचारात्मक 0.12.1 पर काम कर रहा है।
टर्बोचेन

16

इसलिए मैंने आखिरकार इसे कुछ संघर्ष के बाद काम करना शुरू कर दिया ... साइमन और अल्वारो को धन्यवाद।

मेरे पास जोड़ने के लिए एक चीज है, हालांकि, ध्वज का उपयोग करने के बावजूद - सिस्टम-वी -8 ने मेरे लिए काम नहीं किया ... इसलिए मैंने अपने वी 8 को हटा दिया

brew uninstall v8

और रन

gem install libv8

यदि आप gem install libv8सिस्टम v8 ध्वज के साथ पहले ही भाग चुके हैं, तो उस रत्न संस्करण को अनइंस्टॉल करना सुनिश्चित करें (इसे चलाकर करें gem uninstall libv8)। महत्वपूर्ण बात यह है कि आपको काढ़ा का उपयोग नहीं करना चाहिए, यह मावेरिक्स में काम नहीं करता है (यह अच्छी तरह से स्थापित हो जाता है और बंडलर रिपोर्ट करेगा कि आपका बंडल पूरा हो गया है, लेकिन जब यह v8 का उपयोग करने की कोशिश करता है तो आपका ऐप विफल हो जाएगा। )।

जवाब को संक्षेप में बताने के लिए, मेरे लिए निम्न कार्य करना:

brew install apple-gcc42
sudo ln -s /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2 /usr/bin/gcc
sudo ln -s /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/g++-4.2 /usr/bin/g++
sudo ln -s /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/cpp-4.2 /usr/bin/cpp

brew uninstall v8
gem install libv8
gem install therubyracer

2
इसने मेरे लिए काम किया। लेकिन मैंने gcc को / usr / लोकल / बिन में सीलिंक किया और टर्मिनल को फिर से शुरू किया ताकि मैं libv8 इंस्टॉल करने के बाद इसे हटा सकूं।
जामोन होल्मग्रेन

2
उस विशिष्ट संस्करण में / usr / bin के साथ होमब्रेव बायनेरिज़ को सामीलिंक करना वास्तव में बुरा विचार है। अगला brew updateजो साथ आता है और उन रास्तों को प्रकट करता है, आपको एक टूटी हुई स्थिति में छोड़ देगा।
mrm

10

मेरे पास एक ही समस्या थी, यह मेरे लिए काम करता है:

उपचारात्मक (0.10.2) और libv8 (3.3.10.4)

सबसे पहले:

  • brew install apple-gcc42
  • आप (compilers के सभी बाइनरी फ़ाइलें लिंक करना होगा gcc, cpp, g++) करने के लिए/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/<compiler>

के बाद, आप यह कोशिश कर सकते हैं:

  • brew install v8
  • gem install libv8 -v '3.3.10.4' -- --with-system-v8
  • gem install therubyracer -v 'therubyracer'या bundle installरेल परियोजना की निर्देशिका में।

apple-gcc42: This formula either does not compile or function as expected on macOS मेरा macOS 10.12.6 है
व्यालियम जुड

7

मैं तो बस एक ही समस्या थी और एक समाधान है वर्तमान में उपयोग करने के लिए सेब के gcc42 के बजाय बजना दोनों जवाहरात संकलित करने के लिए:

brew install apple-gcc42

और फिर आपके पास {जीसीसी, जी ++, सी ++} बिनो: के लिए / सिम / बिन में कुछ सिमिलिंक करने के बीच विकल्प है:

sudo ln -s /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2 /usr/bin/gcc
sudo ln -s /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/g++-4.2 /usr/bin/g++
sudo ln -s /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/cpp-4.2 /usr/bin/cpp

वास्तव में जी ++ पर्याप्त होना चाहिए।

या ... आप homebrew द्वारा बनाए गए बायनेरिज़ के अनुरूप रास्तों के साथ CC / CXX / CPP पर्यावरण चर निर्यात कर सकते हैं। यह निश्चित रूप से एक क्लीनर समाधान है।

एक तीसरा समाधान Xcode 4.6.3 डाउनलोड करना और एप्लिकेशन फ़ोल्डर में इसे स्थापित करना है । फिर, टर्मिनल में दर्ज करें:

sudo xcode-select --switch /Applications/Xcode4.6.3.app/Contents/Developer
gem install therubyracer

एक बार मणि स्थापित हो जाने के बाद आप Xcode 5.0 पर वापस जा सकते हैं:

sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer

मैं संकलक को Apple-gcc42 में कैसे बदलूं?
user2711889

@ साइमन जब मैं कंपाइलरों से सहानुभूति रखने की कोशिश करता हूं तो मुझे एक संदेश मिलता है कि फाइल मौजूद है। क्या वह क्लैंग फाइल है? अगर मैं बंडल स्थापित करता हूं तो यह gcc का उपयोग करता हुआ नहीं दिखता है क्योंकि त्रुटि क्लैंग संदर्भों से भरी होती है।
आईएसए

यदि आप MacPorts का उपयोग कर रहे हैं, तो आपको एक अलग GCC संस्करण की ओर संकेत करने के लिए सहानुभूति रखने की आवश्यकता नहीं है, इसके लिए एक अंतर्निहित कमांड है (अपना उत्तर देखें)।
जशकोल

6

मुझे एक वर्कअराउंड मिला जो कि Apple-gcc42 को स्थापित किए बिना काम किया।

यदि यह त्रुटि संदेश आपको मिल रहा है तो यह काम करेगा:

clang: error: no such file or directory: '/Users/mscottford/.rbenv/versions/1.9.3-p327/lib/ruby/gems/1.9.1/gems/libv8-3.3.10.4/lib/libv8/build/v8/libv8.a'

तब आपको निम्नलिखित कार्य करने में सक्षम होना चाहिए:

brew install v8
bundle install 
# after failing create link from brew installed v8 to error location
ln -s /usr/local/Cellar/v8/3.21.17/lib/libv8_base.x64.a /Users/mscottford/.rbenv/versions/1.9.3-p327/lib/ruby/gems/1.9.1/gems/libv8-3.3.10.4/lib/libv8/build/v8/libv8.a
bundle install

स्रोत: https://github.com/cowboyd/therubyracer/issues/277#issuecomment-23434348


इस एक के लिए विशाल +1। मणि CLI पर स्थापित होगा लेकिन RubyMine v6 इसे स्थापित करने से इनकार कर रहा था ... इस सिम्लिंक को सेट करने से समस्या का अंत हो गया। धन्यवाद!
ओडे

1
यह 1000%, चीयर्स @ M.ScottFord है। मैं rvm का उपयोग करता हूं और इसलिए मेरा ln स्टेटमेंट यह था:ln -s /usr/local/Cellar/v8/3.21.17/lib/libv8_base.x64.a ~/.rvm/gems/ruby-1.9.3-p327/gems/libv8-3.3.10.4/lib/libv8/build/v8/libv8.a
डेव फोस्टर

3

जैसा कि कई उत्तरों में सुझाव दिया गया है, रूबी रेसर देशी एक्सटेंशन को Apple GCC 4.2 (Xcode के साथ स्थापित संस्करण के बजाय) के साथ संकलित करना सबसे आसान काम है।

यदि आप MacPorts का उपयोग कर रहे हैं, तो आपको मैन्युअल रूप से GCC बायनेरिज़ के लिए प्रतीकात्मक लिंक स्थापित करने से निपटना नहीं चाहिए। port selectआदेश आप के लिए यह करता है। यदि आपने Mavericks स्थापित करने के बाद MacPorts को अपडेट नहीं किया है, तो a sudo port selfupdate। MacPorts अप-टू-डेट के साथ, निम्नलिखित प्रयास करें:

# If you don't have it, install the port for Apple's GCC 4.2
sudo port install apple-gcc42 

    # OR

# If you had apple-gcc42 already (before Mavericks), update it
sudo port upgrade apple-gcc42


# Same result as manual symlinking of GCC in other answers
sudo port select gcc apple-gcc42 && hash -r

# Install therubyracer, will install libv8 gem dependency
#  *note* if you have any existing versions of these gems, remove them
gem install therubyracer

# Restore GCC to system default (optional)
sudo port select gcc none && hash -r

सामान्य तौर पर यह प्रक्रिया ( sudo port select gcc [version]) किसी भी समय काम करेगी जब आप Xcode (10.9 Mavericks / Xcode 5 के लिए Apple LLVM v5) द्वारा स्थापित एक के बजाय एक विशिष्ट GCC संस्करण का उपयोग करना चाहते हैं।


1
मावेरिक्स पर मेरे लिए काम किया।
Evo_x

3

मैं रूबी 2.0.0p353 और ओएस एक्स 10.9 पर चिकित्सीय 0.12 और libv8 3.16.14.3 स्थापित करने का प्रबंधन करता हूं

libv8 को gcc42 की आवश्यकता होती है

brew install v8
brew install apple-gcc42
sudo ln -sf /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2 /usr/bin/gcc
sudo ln -sf /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/g++-4.2 /usr/bin/g++
sudo ln -sf /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/cpp-4.2 /usr/bin/cpp
gem install libv8

बाद में gub की आवश्यकता होती है

brew install gcc49
sudo ln -sf /usr/local/Cellar/gcc49/4.9-20131110/bin/gcc-4.9 /usr/bin/gcc
sudo ln -sf /usr/local/Cellar/gcc49/4.9-20131110/bin/g++-4.9 /usr/bin/g++
sudo ln -sf /usr/local/Cellar/gcc49/4.9-20131110/bin/cpp-4.9 /usr/bin/cpp

Gemfile

gem 'therubyracer', :require => 'v8', :platforms => :ruby

के bundleबजाय का उपयोग करेंgem install therubyracer


धन्यवाद! यह अंततः मुझे bundle installपरीक्षण और त्रुटि के दिनों के बाद मिला । केवल एक चीज जो मैंने अलग-अलग की थी, वह थी कि डेवलपर के सभी टूल को अनइंस्टॉल कर दिया जाए, brewजब तक gcc --versionयह रिपोर्ट न हो जाए कि यह Apple LLVM संस्करण है और Xcode के साथ कॉन्फ़िगर किया गया था, तो मैंने /usr/bin/gccApple-gcc42 को सिमिलिंक करने से पहले मौजूदा (et। Al।) को स्थानांतरित कर दिया । libs, तब gcc49 स्थापित करने के बजाय (पिछली बार मैंने इसे कॉन्फ़िगर करने के लिए हमारे द्वारा लिया गया प्रयास किया था) मैंने अभी मूल gcc, g ++ और cpp libs की प्रतिलिपि बनाई है। यह देखते हुए कि मेरे लिए काम करने वाले व्यक्ति को खोजने के लिए मैंने 3 दर्जन अलग-अलग तरीकों की कोशिश की, YMMV
क्रिस ब्लूम

3

किसी को भी परेशानी होने पर उपचार स्थापित करने के लिए यह एक विफल और साफ तरीका (कोई सहानुभूति नहीं) होना चाहिए।

से लिया गया: मणि स्थापित थेरेपी -v 0.11.4 OS X 10.10 पर विफल रहता है

Xcode स्थापित करें (यदि आपके पास पहले से इन संस्करणों में से एक नहीं है) 6.1.1, 6.2-बीटा या 6.3-बीटा और (यह आवश्यक नहीं है) X.3

gem uninstall libv8 यदि आपने पहले से ऐसा नहीं किया है

Xcode 4.6.3 पर स्विच करें

sudo xcode-select --switch /Applications/Xcode4.6.3.app/Contents/Developer

gem install libv8 -v '3.11.8.17' या जो भी वर्जन आपके थैरेपी के वर्जन से बंधा है

Xcode 6.1.1, 6.2-बीटा या 6.3-बीटा पर स्विच करें (या यदि आप Xcode के अपने वर्तमान इंस्टॉलेशन को आज़माना चाहते हैं, तो इस लाइन को समायोजित करें, मैंने इन सभी 3 कार्यों की पुष्टि की है)

sudo xcode-select --switch /Applications/Xcode6.1.1.app/Contents/Developer

gem install therubyracer -v '0.11.4' या वह संस्करण जिसे आप स्थापित करने का प्रयास कर रहे हैं।


1
धन्यवाद @ th01 यह मेरे लिए काम किया ... मैंने 3 घंटे तक सब कुछ ढूंढने की कोशिश की ... मेरे मामले में, यह libv8 रत्न था। Xcode4.6.3 डाउनलोड किया और इसे उस संस्करण के साथ चलाया और इसे सफलतापूर्वक स्थापित किया गया। यहां तरीका देखें: कई Xcode संस्करणों को स्थापित करने पर एक त्वरित ट्यूटोरियल के साथ एक लिंक है blogs.oracle.com/mobile/entry/how_to_install_multiple_xcodes
miligraf

जब मैं Xcode 4.6.3 डाउनलोड करता हूं sudo xcode-select --switch /Applications/Xcode4.6.3.app/Contents/Developerऔर फिर रन करता gem install libv8 -v '3.3.10.4'हूं और फिर रन करता हूं तो मुझे मिलता है: unable to locate xcodebuild, please make sure the path to the Xcode folder is set correctly! मैं गलत तरीके से क्या कर रहा हूं?
व्यालियम जुड

1

जब मैं libv8 के साथ काम करने के लिए इसे पाने के लिए 0.12.0 थेरैबरर स्थापित करने की कोशिश कर रहा था, तो मुझे लगभग एक जैसी त्रुटि हुई। यह मेरे लिए काम किया:

$ brew upgrade gcc

$ gem uninstall therubyracer

$ gem uninstall libv8

$ gem install therubyracer -v '0.12.0'
Fetching: therubyracer-0.12.0.gem (100%)
Building native extensions.  This could take a while...
Successfully installed therubyracer-0.12.0
1 gem installed

$ gem install libv8 -v '3.16.14.3' -- --with-system-v8
Fetching: libv8-3.16.14.3.gem (100%)
Building native extensions with: '--with-system-v8'
This could take a while...
Successfully installed libv8-3.16.14.3
1 gem installed

0

जब मैं OSX माउंटेन लायन से OSX Mavericks में उन्नत हुआ तो मुझे भी यही समस्या थी।

रूबी-1.8.7-p354 से रूबी-1.8.7-375 तक उन्नयन ने मेरे लिए चाल चली।

शायद माणिक 1.9.3-p194 से rc1 में अपग्रेड किया गया प्रयास करें (1.9.3 अब p484 से ऊपर है)

यह मानते हुए कि आप रेंबव का उपयोग करते हैं:

rbenv install 1.9.3-rc1
rbenv rehash
rbenv global 1.9.3-rc1
bundle install

0

मुझे Mavericks से Yosemite में अपग्रेड करने के बाद यह समस्या थी। मुद्दा यह था कि मैंने अपने रूबी संस्करण को OSX के पुराने संस्करण के साथ संकलित किया था।

अगर मैं भागा

ruby -rubygems -e 'puts Gem::Platform.new(RUBY_PLATFORM)'

मुझे योसेमाइट के x86_64-darwin-13बदले मिलेगा x86_64-darwin-14

रूबी I को फिर से स्थापित करने के लिए

  1. पूरी तरह से हटा दिया गया पुराना संस्करण: rvm remove ruby-2.1.1
  2. स्रोत से पुन: स्थापित (-सुधार-बाइनरी पूर्व संकलित बायनेरिज़ का उपयोग करता है और एक निर्माण को बाध्य करता है): rvm reinstall --disable-binary 2.1

तब मैं bundle installउपरोक्त सभी समाधानों को आज़माने के बाद बिना किसी त्रुटि के साथ चलने में सक्षम था ।


-2

मैंने जो कुछ किया था वह ओएक्सएक्स मावेरिक्स पर था:

git clone git@github.com:cowboyd/therubyracer.git

फिर:

gem build therubyracer.gemspec
gem install therubyracer-0.12.1.gem

इस प्रक्रिया ने libv8 का एक बाइनरी संस्करण डाउनलोड किया और इसे स्थापित किया।

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