2012-10-22 17 views
6

मैं उनके निर्देशों के बाद, हेरोकू में एस्पेन से सीडर स्टैक से एक हेरोकू ऐप पोर्ट कर रहा हूं।heroku: bash: bundle: आदेश नहीं मिला

मैं अंतिम तैनाती चरण में हूं।

2012-10-22T11:23:53+00:00 heroku[web.1]: Starting process with command `bundle exec thin start -p 40310 -e production` 
2012-10-22T11:23:54+00:00 app[web.1]: bash: bundle: command not found 

मैं नहीं देख सकते हैं कि मैं, Heroku ढेर बता जहां बंडल है, या उपलब्ध कराने इसके लिए जिम्मेदार हो सकता है के बाद से बंडलर वास्तव में इस काम के लिए यह प्रयोग किया जाता है: मैं इस त्रुटि मिलती है। यह आदेश अनुप्रयोग के लिए Procfile में निर्दिष्ट किया जाता:

web: bundle exec thin start -p $PORT -e $RACK_ENV 

stackoverflow पर एक और इसी तरह के सवाल पता चलता है कि यह इतना Heroku एप्लिकेशन किस तरह के बारे में गलत विचार हो जाता है होता है अगर एप्लिकेशन शुरू में एक Procfile बिना Heroku को धक्का दे, यह है। उस पोस्टर ने अपना ऐप हटा दिया और एक नया बनाया और सफलता की सूचना दी। हालांकि, मेरे पोर्ट किए गए ऐप को हटाने और पुनर्निर्माण में शामिल प्रयास उच्च है। क्या शुरू करने के बजाए मैं इसे ठीक कर सकता हूं?

+0

मेरे मामले में, मेरे जेबफाइल में मेरे ऐप के साथ काम करने वाली नवीनतम रूबी निर्दिष्ट करें, इस मुद्दे को हल करें। –

उत्तर

5

रूबी 1.8.7 ऐप्स के संबंध में हेरोकू की स्लग बिल्ड प्रक्रिया बदलनी चाहिए। मुझे लगता है कि उन्होंने 1.8.1 के बजाय 1.8.1 के बजाय 1.8 पथों पर बंडल करना शुरू कर दिया है। एक नया संशोधन धक्का देने के बाद मेरे पहले काम करने वाले ऐप ने काम करना बंद कर दिया।

heroku config:add PATH=bin:vendor/bundle/1.8/bin:/usr/local/bin:/usr/bin:/bin GEM_PATH=vendor/bundle/1.8 

मैं एक ही Git भंडार का उपयोग कर के रूप में मैं पहले इस्तेमाल एक नव निर्मित app से इन रास्तों ले लिया:

यहाँ यह फिर से काम मिल गया है।

संपादित करें: यह पता चला है कि उसकेोकू ने एक devcenter आलेख Changing Ruby Version Breaks Path प्रकाशित किया है जो विभिन्न रूबी संस्करणों के लिए पथ निर्दिष्ट करता है।

+0

आगे की अंतर्दृष्टि - पथ अब (शायद मेरे हेरोोक टिकट के जवाब में) सही है अगर आप पहली बार एक जेमफाइल के साथ बंडल को दबाते हैं, तो जेमफाइल में सही रूबी संस्करण है। यदि आप निर्दिष्ट नहीं करते हैं तो यह (समझदारी से) 1.9.1 मान लेगा। इसे गलत समझने के बाद, यह सही रास्ता है (मैंने पहली बार 1.9.7 का अनुमान लगाया था, जो मैंने देखा था 1.9.1 के आधार पर!) – GreenAsJade

2

मैं एक ही मुद्दा था और मैं सही Heroku config चर

$ heroku config 
=== xxxx Config Vars 
DATABASE_URL:     postgres://(...) 
GEM_PATH:      vendor/bundle/ruby/1.9.1 
HEROKU_POSTGRESQL_CRIMSON_URL: postgres://(...) 
LANG:       en_US.UTF-8 
PATH:       bin:vendor/bundle/ruby/1.9.1/bin:/usr/local/bin:/usr/bin:/bin 
PGBACKUPS_URL:     https://(...) 
RACK_ENV:      production 
RAILS_ENV:      production 

आप, एक खाली रेल ऐप बनाने Heroku को धक्का और चर यह स्वचालित रूप से निर्धारित करते हैं, तो उन्हें कॉपी जाँच कर सकते हैं की स्थापना करके इसे हल (और अनुकूलित करें) उन्हें आपके आवेदन

+0

धन्यवाद! मेरी कॉन्फ़िगरेशन आपके जैसा ही दिखती है। यह थोड़ा अजीब है, असल में, क्योंकि मेरा एक 1.8.7 ऐप है, लेकिन मैं नहीं देख सकता कि इससे कोई फर्क नहीं पड़ता कि बंडल पथ पर है या नहीं। – GreenAsJade

+0

अरे - क्या आप इसका उल्लेख कर सकते हैं कि आपको क्या बदलना था, विशेष रूप से, जिसने इसे काम किया? – GreenAsJade

+1

आपको रूबी को 1.8.7 पर कॉन्फ़िगर करना चाहिए, मुझे लगता है कि यह क्या काम करता है PATH और GEM_PATH बदल रहा है 1.9.1 1.8.7 से बदलना या नए बनाए गए एप्लिकेशन के कॉन्फ़िगरेशन मानों को जांचना (रूबी 1.8.7 के साथ) –

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