tcurdt पद एक छोटे से भ्रामक है। मेरे सिस्टम पर मैंने रूट पर सिस्टम पर आरवीएम (री, 1.8.7, & 1.9.2 rubies) सेट अप किया है। मेरे/usr/स्थानीय/बिन इस तरह देखा:
lrwxrwxrwx 1 root rvm 46 Mar 13 06:50 ree-1.8.7-2011.03 -> /usr/local/rvm/wrappers/ree-1.8.7-2011.03/ruby
lrwxrwxrwx 1 root rvm 44 Mar 13 06:42 ruby-1.8.7-p334 -> /usr/local/rvm/wrappers/ruby-1.8.7-p334/ruby
lrwxrwxrwx 1 root rvm 44 Mar 11 22:42 ruby-1.9.2-p180 -> /usr/local/rvm/wrappers/ruby-1.9.2-p180/ruby
मैं tcurdt के उदाहरण के रूप में एक gemset सिस्टम कहा जाता नहीं था। तो मैं उचित तरीके से मानना है कि प्राप्त करने के लिए क्या आप के बाद तो जैसा होगा कर रहे हैं:
#!/usr/bin/env /usr/local/bin/ruby-1.9.2-p180
क्या rvm में से कुछ स्पष्टीकरण यहाँ क्या कर रहा है: rvm रैपर स्क्रिप्ट बनाता है (/ usr/स्थानीय/rvm/रैपर/*) जो GEM_PATH
& GEM_HOME
जैसी चीजें सेट करता है। इनकी आवश्यकता है ताकि रूबी के एक विशिष्ट संस्करण के हिस्से के रूप में रत्नों को सही ढंग से लोड किया जा सके। जब आप आरवीएम की सिस्टम स्थापना करते हैं, तो इन रैपर स्क्रिप्ट के लिए लिंक /usr/local/bin
के अंतर्गत बनाए जाते हैं। यदि आपने स्वयं के रूप में आरवीएम स्थापित किया है तो वे यहां स्थित हैं: $HOME/.rvm/bin
।
/usr/bin/env
के साथ शेबांग लाइन (#!/....) को उपसर्ग करना महत्वपूर्ण है। यदि आप इसे सीधे रूबी पर आज़माएं और इंगित करें (उदाहरण के लिए #!/Usr/local/bin/ruby-1.9.2-p180) पर्याप्त नहीं होगा। इसका कारण यह है इन रैपर वास्तव में गहरे लाल रंग का दुभाषिया नहीं हैं, वे शेल स्क्रिप्ट एक वातावरण सेटअप सोर्सिंग कि कर रहे हैं पूर्व रूबी दुभाषिया के लिए एक तर्क के रूप अपनी स्क्रिप्ट बुला है, इसलिए की तरह हैं:
source "/usr/local/rvm/environments/ruby-1.9.2-p180"
exec ruby "[email protected]"
[email protected]
अपने खोल है स्क्रिप्ट नाम रूबी को पास किया जा रहा है।
#!/usr/bin/env /usr/local/bin/ruby-1.9.2-p180
puts "Content-Type: text/html"
puts
puts "<html>"
puts "<body>"
puts "<h1>Hello Ruby!</h1>"
puts "<p>shebang: #!/usr/bin/env /usr/local/bin/ruby-1.9.2-p180</p>"
puts "<p>RUBY_VERSION: " + RUBY_VERSION + "</p>"
puts "<p>RUBY_PLATFORM: " + RUBY_PLATFORM + "</p>"
puts "<p>RUBY_RELEASE_DATE: " + RUBY_RELEASE_DATE + "</p>"
puts "</body>"
puts "</html>"
हम्म, मेरे सिस्टम में से कोई भी/usr/local/bin – Kevin
में कोई सिम्लिंकेड रूबी नहीं है, हो सकता है कि वे आपके सिस्टम पर कहीं और हों? – tcurdt