Libv8 को स्थापित करने में त्रुटि: त्रुटि: रत्न देशी एक्सटेंशन बनाने में विफल


183

मैंने एक रेल परियोजना बनाई,

rails new test_bootstrap.

सफल हुए।

परियोजना dir में चले गए और रत्नों को जोड़ दिया

gem "therubyracer"
gem "less-rails" #Sprockets (what Rails 3.1 uses for its asset pipeline) supports LESS
gem "twitter-bootstrap-rails"

और भाग खड़ा हुआ

bundle install

उसके बाद, मैं इस त्रुटि है।

Installing libv8 (3.16.14.3)
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

c:/RailsInstaller/Ruby1.9.3/bin/ruby.exe extconf.rb
creating Makefile
지정된 경로를 찾을  없습니다.                                                          지정된 경로를 찾을 
없습니다.                                                          지정된 경로를 찾을  없습니다.

c:/RailsInstaller/Ruby1.9.3/lib/ruby/ge
ms/1.9.1/gems/libv8-3.16.14.3/ext/libv8/builder.rb:58:in `setup_python!': libv8 requires
python 2 to be installed in order to build, but it is currently not available (RuntimeErr
or) from c:/RailsInstaller/Ruby1.9.
3/lib/ruby/gems/1.9.1/gems/libv8-3.16.14.3/ext/libv8/builder.rb:42:in `block in build_lib
v8/builder.rb:42:in `block in build_libv8!'
        from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/libv8-3.16.14.3/ext/lib
v8/builder.rb:40:in `chdir'
        from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/libv8-3.16.14.3/ext/lib
v8/builder.rb:40:in `build_libv8!'
        from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/libv8-3.16.14.3/ext/lib
v8/location.rb:24:in `install!'
        from extconf.rb:7:in `<main>'                                                    


Gem files will remain installed in c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/l
ibv8-3.16.14.3 for inspection.
Results logged to c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/libv8-3.16.14.3/ex
t/libv8/gem_make.out
An error occurred while installing libv8 (3.16.14.3), and Bundler cannot
continue.
Make sure that `gem install libv8 -v '3.16.14.3'` succeeds before bundling.

कुछ कोरियाई लोगों के लिए खेद है। यह कहता है, यह चुना हुआ रास्ता या ऐसा कुछ नहीं पा सकता है।

और मैंने इस कमांड को चलाने की कोशिश की

gem install libv8 -v '3.16.14.3' 

उसी त्रुटि को फेंकना।



मैंने यह पाया, मुझे अजगर को स्थापित करना होगा और पथ को निर्धारित करना होगा। और अब यह काम करता है। उम्मीद है कि लोग इस धागे से हल करेंगे। stackoverflow.com/questions/10812696/…
Canna

मुंह में एक उपहार घोड़ा मत देखो :) libv8 और Node.js के आसपास पारिस्थितिकी तंत्र के लिए सुरक्षा सहायता की डेबियन की कमी से : "Node.js मंच libv8-3.14 के शीर्ष पर बनाया गया है, जो सुरक्षा की उच्च मात्रा का अनुभव करता है मुद्दों, लेकिन वर्तमान में परियोजना या सुरक्षा टीम के भीतर कोई स्वयंसेवक नहीं है जो पर्याप्त रुचि रखते हैं और आने वाले मुद्दों को स्टेम करने के लिए आवश्यक बड़ी मात्रा में खर्च करने को तैयार हैं ... "
jww

जवाबों:


612

इसको आजमाओ:

gem install libv8 -v '3.16.14.3' -- --with-system-v8

नोट: क्योंकि libv8, V8 इंजन के लिए है जिसका उपयोग थेरैब्रायसर द्वारा किया जाता है, आपको libv8 का उपयोग करने की आवश्यकता हो सकती है, भले ही आपके पास V8 पहले से ही स्थापित हो। यदि आप अपने स्वयं के V8 इंस्टॉलेशन का उपयोग करना चाहते हैं, तो इसके बजाय यह आपके लिए बनाया गया है, --with-system-v8विकल्प का उपयोग करें ।

अधिक के लिए आप github पर libv8 के प्रलेखन से गुजर सकते हैं


6
मैं उसका उपयोग करता हूं। यह ठीक संकलित करता है, लेकिन 'बंडल' चलाते समय मुझे अभी भी त्रुटियाँ हैं
सुक्रेनियर

10
इस भाग ने काम किया, लेकिन मुझे अभी भी एक त्रुटि मिल रही है जब थेरैबीरेसर स्थापित किया गया था। यह मुझे एक त्रुटि देता है जो मुझे libv8 के साथ मिल रहा था "बंडलिंग से पहले इस तरह के और इस तरह के सफल होने के बारे में सुनिश्चित करें", लेकिन जब मैं 'मणि स्थापित थेरेपी "चलाने की कोशिश करता हूं, तो मुझे" मणि देशी एक्सटेंशन बनाने में विफल "हो जाता है। त्रुटि
साठ4

1
मैं aboveas रूट दिए गए तर्क के साथ इसे अनइंस्टॉल और पुनर्स्थापित करता हूं। काम नहीं करता। मेरी त्रुटि है An error occurred while installing libv8 (3.16.14.3), and Bundler cannot continue.और Bundler::GemspecError: Could not read gem at /home/gitlab/gitlab/vendor/bundle/ruby/2.1.0/cache/libv8-3.16.14.3-x86_64-linux.gem. It may be corrupted. मैं पूरे कैश फ़ोल्डर को हटा देता हूं और फिर से चलाता हूं bundle install --full-index --deployment --without development test postgres aws। काम करता है।
निक डोंग

1
उत्तम! gem install libv8 -v '3.16.14.3' -- --with-system-v8मेरे लिए OS X 10.11 पर काम किया।
जगदीप सिंह

मैंने पाया कि यह सिस्टम v8 नहीं खोज सका, इसलिए brew install v8मदद कर रहा है । इस उत्तर में दिए गए निर्देशों का पालन करें: stackoverflow.com/questions/24081473/…
redfox05

154

Libv8 / therubyracer समस्या को कैसे हल करें

मुझे इसी तरह की समस्या का सामना करना पड़ा जिसमें libv8 स्थापित करने के बाद, थेरैब्रायसर स्थापित करने में त्रुटि होती है। यहाँ मेरा समाधान है:

$ gem install libv8 -v '3.16.14.3' -- --with-system-v8
   
$ bundle install

- थेरैबरर को स्थापित करने में त्रुटि देखें -

$ gem uninstall libv8

$ brew install v8

$ gem install therubyracer

$ bundle install

- libv8 स्थापित करने में त्रुटि देखें -

$ gem install libv8 -v '3.16.14.3' -- --with-system-v8

4
इस उत्तर में वर्णित कदम सबसे अच्छा काम करता है, हमें सबसे पहले मणि को libv8 स्थापित करने की आवश्यकता होती है, थैबराइसर (मणि स्थापित libv8 - thewith-system-v8 ध्वज) के साथ मणि स्थापित करने से पहले सिस्टम वाइड v8 को अनइंस्टॉल करने की आवश्यकता होती है :)
पार्टिशन जूल

1
मुझे नहीं लगता कि आपको पहला कदम चाहिए। बंडल इंस्टॉल चलाने से पहले, सिस्टम v8 को स्थापित करने के लिए काढ़ा का उपयोग करें। फिर थेरैब्रायजर मणि और लिबव 8 मणि दोनों को हाथ से स्थापित करें। और बंडल इंस्टॉल चलाएं। लेकिन मैंने अभी तक इसकी कोशिश नहीं की है।
gitb

इसने मेरे लिए OSX 10.10.5 पर रूबी 2.1.2p95 के साथ libv8 3.16.14.11 के लिए काम किया
माइकल ओकले

3
'3.16.14.3' को बदलने के लिए याद रखें जो भी बंडल चलाने के लिए जो भी संस्करण बंडल करने की कोशिश कर रहा है या जब आप बंडल स्थापित करते हैं तो यह काम नहीं करेगा
जोनाथन ब्लोक

इसके अलावा libv '3.16.14.11' के लिए माणिक 1.9.3 के साथ (सिएरा) 10.12 के लिए काम किया
परदेशी

47

होमब्रे के साथ यह इस त्रुटि को हल करने में मेरी मदद करता है।

brew tap homebrew/versions
brew install v8-315

gem install libv8 -v '3.16.14.13' -- --with-system-v8
gem install therubyracer -- --with-v8-dir=/usr/local/opt/v8-315

bundle install

रूबाइटर गितुब मुद्दों पर देखा गया।


यह मेरे लिए काम किया, हालांकि यह v8 के पुराने संस्करण को काढ़ा के माध्यम से स्थापित करता है।
संजय

1
यह त्रुटि मुझे पागल बना रही है हर बार जब मैं माणिक संस्करण स्विच करता हूं। मुझे लगता है कि आप इसे प्राप्त करने के लिए v8 संस्करण विकल्प और पथ को समायोजित करने का प्रयास कर सकते हैं।
कोडिंग आदी

केवल यह समाधान मेरे लिए काम करता है, समाधान के लिए धन्यवाद
AMIC MING

@codingaddenced आप कभी भी इस त्रुटि को महसूस करते रहते हैं? मैंने एक नए प्रोजेक्ट के लिए रूबी और रेल को अपडेट किया और अपने पुराने प्रोजेक्ट के लिए एक नया शेल खोलने पर मुझे हमेशा यह त्रुटि मिलती है। आरवीएम को इन संस्करण मुद्दों को संभालने के लिए माना जाता है, लेकिन जब भी मैं अपने पुराने प्रोजेक्ट के लिए एक नया शेल खोलता हूं, तो मुझे आपके आदेशों को ऊपर रखने की आवश्यकता होती है।
Iamse7en

@ iamse7en जहां तक ​​मुझे याद है मुझे रूबी के प्रत्येक संस्करण के लिए दौड़ना होगा। मैं इस त्रुटि को देख रहा था जब मैंने माणिक को अपडेट किया (लेकिन मैंने पिछले महीनों में इतना माणिक्य नहीं किया है और मैं विभिन्न संस्करणों के साथ नहीं खेला था)।
कोडिंग

43

मैंने कमांड के ऊपर सूचीबद्ध समाधान की कोशिश की, जो व्यक्तिगत मणि को स्थापित करने के लिए बहुत अच्छा लग रहा है, लेकिन बंडल उपयोगकर्ता के लिए - आपको बंडल कॉन्फ़िगरेशन का उपयोग करना चाहिए

उपयोग

bundle config build.libv8 --with-system-v8 

तथा

bundle config build.therubyracer --with-system-v8

विशिष्ट रत्न स्थापित करते समय उपयोग किए जाने वाले मापदंडों को लेने के लिए बंडल को कॉन्फ़िगर करने के लिए


6
जो भी कारण के लिए मेरे बंडल कॉन्फिग को सही बिल्ड ढूंढने के लिए निम्नलिखित की आवश्यकता थी (जो नीचे दिए गए आदी के उत्तर को कोडिंग से काढ़ा स्थापित करने का उपयोग करता है) bundle config build.therubyracer --with-v8-dir=/usr/local/opt/v8-315
iturgeon

7

मुझे नहीं लगता कि आपको therubyracerखिड़कियों पर मणि की आवश्यकता है । यह V8 इंजन का उपयोग करके एक जावास्क्रिप्ट रनटाइम है। इसलिए यह स्थापित करने का प्रयास कर रहा है libv8

आप अपने रत्न से सुरक्षित रूप से मणि निकाल सकते हैं।

रेल का उपयोग करने के लिए खुश है जो कभी भी रनटाइम पा सकता है। execjs, nodejsआदि सभी संभावित विकल्प हैं।

Microsoft पहले से ही खिड़कियों पर जावास्क्रिप्ट के लिए JScript रनटाइम एम्बेड करता है, और रेल इसका उपयोग करता है। इसे और देखें


6

समस्या को ठीक करने के लिए अन्य समाधान उन्हें Gemfile में अलग करना है

group :production do
 gem 'libv8', '~> 3.11.8.3'
 gem 'therubyracer', :platform => :ruby
end

और फिर बंडल कमांड चलाएं: बंडल इनस्टॉल - उत्पादन


यह @Litmus के उत्तर के साथ संयोजन में अच्छी तरह से काम करता है क्योंकि यह दिखाता है कि आप कॉन्फ़िगरेशन को मणि को बनाए रख सकते हैं (जो संभवतः तैनाती के लिए प्रासंगिक होगा) विंडोज पर विकास सेटअप को तोड़ने के बिना।
ग्लेनट्रॉन

3

मैं इस मणि को उपयोग करने के बजाय स्थापित करने में भी असमर्थ था

--with-system-v8

एक बार बंडल अपडेट करने का प्रयास करें जो मेरे लिए ठीक काम करता है


3

यह github पर पाया गया

यह मानते हुए कि आपने उपरोक्त चरणों की कोशिश की है, v8-315 और v8 को काढ़ा के माध्यम से स्थापित किया है।

brew unlink v8
brew link --force v8-315
gem install therubyracer -v '0.12.2' -- --with-system-v8

2

ये मेरे लिए सही है। उसको अपने जेमफाइल में रखो

मणि 'libv8', '~> 3.16.14.7'


इस समाधान ने मुझे आगे बढ़ाया bundle install --no-deploymentऔर फिर मेरे लिए bundle installकाम किया
सिमो

2

मेरा मुद्दा therubyracerकेवल libv8मणि से संबंधित नहीं था और @ rishav-bhardwaj ने बताया --with-system-v8कि चाल नहीं चली , इसके बजाय मुझे निष्पादित करना पड़ा

bundle update

फिर

bundle install

और अंत में

Bundle complete!

त्रुटि हो गई है!

Gem::Ext::BuildError: ERROR: Failed to build gem native extension. An error occurred while installing libv8 (3.16.14.7), and Bundler cannot continue. Make sure that `gem install libv8 -v '3.16.14.7'` succeeds before bundling.


1

मेरे मामले में मैंने 'mini_racer', '~> 0.2.6' अपने जेमफाइल में इस स्थिति को हल किया

फिर बंडल इंस्टाल कमांड ने काम किया।


0

के साथ प्रयास करें

मणि "उपचारात्मक", "~> 0.10.2" जेमफाइल को

और यह निर्भर मणि libv8 (3.3.10.4) स्थापित करेगा और मणि देशी विस्तार विफलता के निर्माण का मुद्दा हल हो गया।


0

3.16.14.7नीचे दिए गए आदेश का उपयोग कर हल libv8 मुद्दा:

gem install libv8 -v '3.16.14.7' -- --with-system-v8

और फिर bundle installसफलतापूर्वक पूरा हुआ।


0

मुझे लगता है कि यह libv8 के साथ कम और थेरैबराइज़र के साथ करने के लिए अधिक है।

मैं एक ही त्रुटि प्राप्त किया, जबकि एक रेल app पर एक बंडल स्थापित करें। यदि आप भी इसी तरह का सामना कर चुके हैं, तो बंडल के बाहर मणि स्थापित करने का प्रयास करें जैसे:

gem install therubyracer

फिर बंडल इंस्टॉल चलाएं। मुझे आशा है कि यह आपके लिए भी काम करेगा।


0

मुझे भी इस्तेमाल करने में समस्याएँ हुईं libv8और mini_racer। के साथ समस्या का समाधान किया

brew install v8

bundle update libv8 mini_racer

नवीनतम संस्करणों का उपयोग करना mini_racer 0.2.10और libv8 7.3.492.27एक आकर्षण की तरह काम किया।


0

मैंने अपने स्थानीय पर नीचे के आदेशों की कोशिश की, यह ठीक काम किया:

brew install v8@3.15
gem install libv8 -v 'YOUR_VERSION' -- --with-system-v8
gem install therubyracer -v 'YOUR_VERSION' -- --with-v8-dir=/usr/local/opt/v8@3.15
bundle install
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.