2011-06-06 10 views
7

मेरा आरवीएम रूट के रूप में स्थापित है। जब मैं गेंडा सॉकेट शुरू करने के लिए कोशिश कर रहा हूँ, यहआरवीएम और यूनिकॉर्न तैनाती

[email protected]:~$ /etc/init.d/unicorn start 
Starting myapp app: /usr/bin/env: ruby: No such file or directory 
unicorn. 

प्रिंट लेकिन अगर मैं टाइप

[email protected]:~$ ruby -v 
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux] 

/usr/local/rvm/gems/ruby-1.9.2-p180/bin/unicorn पथ मौजूद है।

मेरे गेंडा config: https://gist.github.com/1010519

उत्तर

10

/etc/init.d/unicorn (अपने सिस्टम के लिए सही पहुंच का निर्माण) जहां खोजने के लिए पता नहीं है रूबी क्योंकि यह आरवीएम के माध्यम से प्रबंधित किया जाता है। आम तौर पर, आपके .bashrc या इसी तरह की फ़ाइल निष्पादित की जाती है और पर्यावरण को स्थापित करती है; यह init स्क्रिप्ट में नहीं होता है (या रूट द्वारा निष्पादित कुछ और संभवतः)।

समाधान रैपर का उपयोग करना है। उदाहरण के लिए, एक द्विआधारी system_ruby कहा जाता है कि RVM के 1.9.2p180 पर्यावरण और अप लोड करता है तो कार्यान्वित ruby बनाने के लिए, पर अमल करें:

rvm wrapper ruby-1.9.2-p180 system ruby 

अधिक जानकारी और अधिक जानकारी के लिए this answer of mine की जाँच, जो एक समान के पते मुसीबत।

+0

के लिए एक ही समस्या है और इस था। '/etc/init.d/unicorn प्रारंभ DPP.cz.cc ऐप शुरू करना:/usr/bin/env: ruby: ऐसी कोई फ़ाइल या निर्देशिका unicorn.' – Kir

+0

यदि आप 'system_ruby' नामक निष्पादन योग्य बनाते हैं तो आपको इसकी आवश्यकता होगी 'ruby' के बजाय इसका उपयोग करने के लिए अपनी'/etc/init.d/unicorn' स्क्रिप्ट को अपडेट करने के लिए। –

+0

यूनिकॉर्न.आरबी और यूनिकॉर्न बाइनरी के लिए केवल पथ हैं। मेरे '/ etc/init.d/unicorn' को कैसे बदलें? यह यहां https://gist.github.com/1010519 – Kir

0

प्रकार: which ruby (माणिक बिन पथ दिखाने) तो यह टाइप करें: ln -s (change_to_ruby_path) /usr/bin/env/ruby

1

सिमलिंक भी काम करता है,

which ruby<your version> 
ln-s /ruby/path/ruby<your version> /ruby/path/ruby 
0

मुझे लगता है मैं मार डाला इस comand और कुछ भी नहीं बदला गया था मुझे

rvm --default use <version> 
संबंधित मुद्दे