मेरे पास एक रेल ऐप है जिसे मैं विंडोज़ पर विकसित कर रहा हूं और लिनक्स पर तैनात कर रहा हूं। मुझे संदेह है कि मैं पूरी तरह से भविष्य में लिनक्स पर स्विच कर दूंगा। वैसे भी, लिनक्स पर मुझे 'execjs' और 'therubyracer' की आवश्यकता है लेकिन मुझे Win7 में उन लोगों की आवश्यकता नहीं है। तो मैं अपने gemfile में इन पंक्तियों के रख:आपके gemfile काम में "प्लेटफ़ॉर्म =>" का उपयोग कर रहा है?
gem 'therubyracer', :platforms => :ruby
gem 'execjs', :platforms => :ruby
लिनक्स वी एम पर एक bundle install
Ran और एप्लिकेशन ठीक ऊपर शुरू कर दिया। लेकिन विंडोज पर मैं:
Uncaught exception: Could not find execjs-1.2.11 in any of the sources
अब, से मैं क्या पढ़ा (प्लेटफार्म के तहत here) यह मुझसे कहता है कि "एक रत्न केवल एक विशेष मंच में इस्तेमाल किया जाना चाहिए, तो या प्लेटफार्मों की निर्धारित करते हैं, आप निर्दिष्ट कर सकते ruby C Ruby (MRI) or Rubinius, but NOT Windows
": उन्हें"
gem "weakling", :platforms => :jruby
और यह कहते हैं और नमूना यह है। " तो मेरे लिए यह कहता है कि बंडलर को विंडोज़ पर execjs
लाइन को अनदेखा करना चाहिए।
Installing execjs (1.2.11)
तो है कि मेरे पास कहता है कि मैं डॉक्स के बारे में कुछ याद कर रहा हूँ या बंडलर प्लेटफार्मों आदेश की अनदेखी कर रहा है: विंडोज पर लेकिन जब मैं bundle install
भाग गया मैं इस देखा। क्या मुझसे कुछ गलत हो रही है? मंच स्विच के रूप में मैं इसे इस्तेमाल कभी नहीं किया है:
PS>bundle -v
Bundler version 1.0.21
जानकारी की आवश्यकता के बिट कि Gemfile में प्लेटफार्मों रूबी के कार्यान्वयन, नहीं ओएस के लिए संदर्भित करता है। : गहरे लाल रंग का ==: सभी ओएस प्लेटफार्म पर एमआरआई ताकि आप उस उपयोग नहीं कर सकते एक ओएस या अन्य पर इंस्टॉल होने से एक रत्न को रोकने के लिए। – ffoeg
डॉक्स से लाइन @ffoeg (रूबी: सी रूबी ... नहीं विंडोज़) आप – jcollum
से सहमत नहीं मैं ठीक किया मानी। आपके प्रश्न का उत्तर वही रहता है। बंडलर में प्लेटफॉर्म काम करता है लेकिन यह वह तंत्र नहीं है जिसे आप इस मामले में उपयोग करना चाहते हैं। नीचे मेरा जवाब देखें। – ffoeg