2011-07-31 4 views
14

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

bundle install --deployment 

इस तथाकथित 'तैनाती मोड', जिसके तहत विभिन्न विकल्प हैं में बंडलर डालता है सेट करें और सभी रत्न सिस्टम-व्यापी के बजाय 'विक्रेता' निर्देशिका में स्थापित हैं। हालांकि इस यह चल रहा है, जिससे यह अपने आप निर्देशिका से मार डाला जाना चाहिए, क्योंकि यह वह जगह है जहां जवाहरात अंत के साथ एक समस्या पैदा करता है:

<in the app's dir> 
$ ./runmyapp 
<it runs> 

मैं किसी दूसरे स्थान पर cd और फिर इसे का उपयोग कर इसे भरा हुआ है चलाने का प्रयास करते हैं पथ, यह विफल रहता है:

<in another directory> 
$ /path/to/runmyapp 
<it crashes as it can't locate its gems> 

मैं बंडलर प्रलेखन के बहुत पढ़ने के बाद इस पूरे परिदृश्य भी कवर नहीं किया जाता? क्या मुझे बस इसके बजाय सिस्टम में रत्न स्थापित करना चाहिए? क्या मुझे कुछ और करना चाहिए?

उत्तर

28

आप अपने ऐप के लिए बंडलर के रूप में बंडलर का उपयोग करते हैं। मुझे लगता है कि bundle exec का उपयोग कर इस मामले में निष्पादन योग्य चलाने का सबसे अच्छा तरीका है।

यदि आप Gemfile वाली निर्देशिका से अलग निर्देशिका से अपना ऐप चलाते हैं तो आपको BUNDLE_GEMFILE सेट करके Gemfile स्थान सेट करना चाहिए (bundle help exec देखें)। निम्नलिखित आपकी मदद करेंगे:

BUNDLE_GEMFILE=/path/to/Gemfile bundle exec /path/to/runmyapp 
+1

मैंने सोचा कि 'बंडल निष्पादन' रत्नों में निष्पादन योग्य निष्पादन के लिए था। यही वह रत्न है जो बंडलर ने मेरे ऐप के लिए रत्न के आधार पर स्थापित किया है, लेकिन मेरे अपने नहीं। क्या यह सच नहीं है? –

+0

'बंडल निष्पादन 'आपके रत्न पर्यावरण में रन निष्पादन योग्य के लिए है। Http://gembundler.com/man/bundle-exec.1.html से उद्धरण: 'बंडल-निष्पादन - बंडल के संदर्भ में कमांड निष्पादित करें' – petRUShka

+0

यह इस तरह से काम करता है। लेकिन हो सकता है कि कोई अन्य तरीका – petRUShka

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