2012-01-27 14 views
5

मुझे रूबी 1.9.3p0 (2011-10-30 संशोधन 33570) [x86_64-darwin10.8.0] के साथ libv8 मणि के साथ समस्याएं आ रही हैं। मणि स्थापित libv8 ठीक काम करता है और मैंबंडल libv8 और रेल के साथ समस्या स्थापित करें

gem 'therubyracer' 
मेरी Gemfile में

है और इस libv8 जो स्थापित किया गया है पर एक निर्भरता है जब मैं एक bundle install कार्य करें:

 
$ bundle exec gem list 

*** LOCAL GEMS *** 

actionmailer (3.1.3) 
actionpack (3.1.3) 
... 
libv8 (3.3.10.4 x86_64-darwin-10) 
... 

लेकिन जब मैं चलाएँ:

 
$ rails s 
Could not find libv8-3.3.10.4 in any of the sources 
Run `bundle install` to install missing gems. 

यह libv8 नहीं मिल रहा है - क्या यह 32/64 बिट मुद्दा है? यदि हां, तो मैं इसे कैसे हल करूं?

उत्तर

1

मुझे संदेह है क्योंकि यह 32/64 बिट मेल नहीं था।

मैं निम्नलिखित के साथ इस हल:

 
$ irb 
ruby-1.9.3-p0 :001 > `gem list`.each_line {|line| `sudo env ARCHFLAGS="-arch x86_64" gem install #{line.split.first}` 
+2

यदि आप अपने रत्न विक्रेता/कैश में पैक करते हैं, तो जब आप तैनात करते हैं तो आपके विकास पर्यावरण के आर्किटेक्चर के लिए पैक किए गए रत्न होंगे - उदा। 32 बिट या ओएसएक्स। यदि आप पैक किए गए रत्नों का उपयोग करके उत्पादन वातावरण पर तैनात करते हैं, तो आपको अतिरिक्त संस्करणों की आवश्यकता हो सकती है। –

0

क्या आपने bundle exec rails s को आजमाया है? यह संभव है कि आपके सिस्टम पर स्थापित रत्नों और आपके प्रोजेक्ट को चलाने के लिए जरूरी रत्नों के बीच एक संघर्ष हो।

1

एक अन्य समाधान therubyracer की NodeJS बजाय का उपयोग करें। आप इसे apt-get/yum का उपयोग कर सर्वर पर स्थापित करते हैं, इसलिए आपके जेमफाइल को execjs या therubyracer शामिल करने की आवश्यकता नहीं है।

1

मैं एक ऐसी ही समस्या एक x86 देव बॉक्स से एक x86_64 सर्वर से (Capistrano का उपयोग करके) की तैनाती

जब मैं तैनाती किया था, मैं गया ही नहीं libv8-3.3.10.4 में से किसी में खोजा जा सका था स्रोत 'संदेश। ऐसा इसलिए है क्योंकि x86 मशीन पर 'बंडल पैक' चलाना केवल x86 मणि को/विक्रेता/कैश निर्देशिका में कॉपी करता है!

मैंने इसे linux x86_64 मणि फ़ाइल को/विक्रेता/कैश निर्देशिका में स्पष्ट रूप से जोड़कर तय किया है, ताकि यह तैनाती सर्वर आर्किटेक्चर से सहमत हो। उसके बाद तैनाती ठीक हो गई।

1

तुम वास्तव में पर मावेरिक्स कि संस्करण को स्थापित कर सकते हैं:

मणि libv8 -v 3.11.8.17 स्थापित - --with-प्रणाली-v8

आप आप स्थापित करना चाहते जो कुछ भी libv8 मणि संस्करण प्रदान कर सकते हैं। ।

इस आप तो

Gemfile की

अपडेट संस्करण को तो जैसे पिछले संस्करण को इंगित करने के therubyracer स्थापित करने के साथ इस मुद्दे का सामना करना पड़ सकता है के बाद:

मणि "थूब्यराइसर", "~> 0.10.2"

और मैं सफलतापूर्वक मणि स्थापित करने में सक्षम था।

आप मैन्युअल रूप से मणि को स्थापित करना चाहते हैं, तो आप उपयोग कर सकते हैं:

मणि therubyracer --version स्थापित "~> 0.10.2"

0

मैं NodeJS (नवीनतम संस्करण) स्थापित करके इस समस्या का समाधान। यह क्या करता है कि यह libv8 -dev लाइब्रेरी को इसके साथ स्थापित करता है।इस प्रकार मणि स्थापित करने के बजाय आपको मूल पुस्तकालय की आवश्यकता है।

आप इसे सीधे इंस्टॉल कर सकते हैं या अपने सिस्टम में नोडजेज़ भी इंस्टॉल कर सकते हैं और उपरोक्त त्रुटि को हल किया जाना चाहिए।

संबंधित मुद्दे