में स्थापित करें, मैं अपने मणि के बिन डीआईआर में एक शेल स्क्रिप्ट रखना चाहता हूं, साथ ही पैकेज के अन्य रूबी कार्यक्रमों के साथ। मैं इस शेल स्क्रिप्ट को बिन निर्देशिका में स्थापित करना चाहता हूं (यानी, कोई रैपर नहीं है)। क्या रूबी रत्नों के साथ यह संभव है? अन्यथा संभव नहीं होने पर मैं पोस्ट-इंस्टॉल हुक से खुश रहूंगा। किसी के पास इसका कोई अनुभव है?रूबी मणि के साथ एक शेल स्क्रिप्ट को तैनात करें और बिन निर्देशिका
उत्तर
यह समस्या यहाँ वर्णित है: https://github.com/rubygems/rubygems/issues/88
मणि आप विकसित कर रहे हैं अपने स्वयं के उपयोग के लिए ही इरादा है, तो आप बस इसे
gem install --no-wrapper my_gem
साथ स्थापित कर सकते हैं मुझे लगता है कि आप सबसे अच्छा था एक रूबी स्क्रिप्ट लिखें जो आपकी बैश स्क्रिप्ट चलाती है। यहाँ कैसे ऐसा करने के लिए पर एक उदाहरण है:
bin/test_gem
#!/usr/bin/env ruby
bin_dir = File.expand_path(File.dirname(__FILE__))
shell_script_path = File.join(bin_dir, 'test_gem.sh')
`#{shell_script_path}`
bin/test_gem.sh
#!/bin/sh
echo "Hello World!"
test_gem.gemspec
spec.files = [
# ...
'bin/test_gem', 'bin/test_gem.sh'
]
# ...
spec.executables = ['test_gem']
नोट: एक्ज़िक्यूटेबल में bin
फ़ोल्डर में दोनों फ़ाइलों को स्थापित करने के लिए मत भूलना!
ध्यान दें कि जब test_gem.sh
files
RubyGems कमांड के साथ पंजीकृत है, यह executables
के रूप में पंजीकृत नहीं है: यह सिर्फ स्थापित मणि की निर्देशिका में रखा जाएगा लेकिन लिपटे/shimmed नहीं।
यदि आप अपना मणि इंस्टॉल करते हैं (और यदि आवश्यक हो तो rbenv rehash चलाएं), test_gem
पर कॉल करने से आपकी शेल स्क्रिप्ट निष्पादित रूबी स्क्रिप्ट होगी।
- 1. बिन निर्देशिका और पैथ
- 2. शेल स्क्रिप्ट के साथ संगीत
- 3. नोड बिन स्क्रिप्ट
- 4. शेल स्क्रिप्ट
- 5. .gitignore और विजुअल स्टूडियो प्रोजेक्ट: बिन/डीबग निर्देशिका को अनदेखा करें, लेकिन बिन/रिलीज निर्देशिका
- 6. शेल स्क्रिप्ट में उपयोगकर्ता के होमडियर में स्क्रिप्ट निर्देशिका बदलें
- 7. एक शेल स्क्रिप्ट
- 8. मणि स्थापना निर्देशिका निर्दिष्ट करें
- 9. अपनी निर्देशिका के बाहर एक बंडलर-तैनात रूबी ऐप चलाएं?
- 10. वेबमैट्रिक्स.डाटा.dll और WebMatrix.WebData.dll को मेरे बिन निर्देशिका
- 11. एक अजगर स्क्रिप्ट में के साथ एक शेल कमांड लॉन्च, समाप्ति के लिए प्रतीक्षा करें और स्क्रिप्ट
- 12. शेल स्क्रिप्ट के साथ अंकगणितीय समस्या
- 13. शेल स्क्रिप्ट के साथ फ़ोल्डर की सामग्री को हटाने
- 14. शेल स्क्रिप्ट
- 15. शेल स्क्रिप्ट
- 16. एक वैकल्पिक तर्क के साथ एक मछली शेल स्क्रिप्ट लिखना
- 17. शेल स्क्रिप्ट
- 18. शेल स्क्रिप्ट
- 19. एक रूबी स्क्रिप्ट से स्थानीय मणि का संदर्भ कैसे लें?
- 20. शेल स्क्रिप्ट
- 21. के शेल स्क्रिप्ट
- 22. रूबी मणि के एक विशिष्ट संस्करण को कैसे स्थापित करें?
- 23. रूबी मणि सूचीबद्ध है, लेकिन अभ्यस्त लोड (उपयोगकर्ता निर्देशिका में मणि, नहीं dir रूबी)
- 24. रूबी मणि
- 25. एक शेल स्क्रिप्ट से जावा
- 26. रूबी 1.9.3 के साथ कैरेक्टर एन्कोडिंग और मेल मणि
- 27. एक शेल स्क्रिप्ट के अंदर टेलनेट
- 28. शेल स्क्रिप्ट एकाधिक विंडोज़
- 29. बिन निर्देशिका में AndroidManifest.xml डुप्लिकेट करें?
- 30. रूबी मणि
आपने क्या प्रयास किया है? जहां तक मुझे पता है कि काम करना चाहिए। एक रैपर लागू किया जा सकता है, लेकिन यह एक बड़ा मुद्दा नहीं होना चाहिए। यह ज्यादातर 'बंडल निष्पादन' जैसी चीजें सही ढंग से काम करेगी। – tadman
दुर्भाग्यवश, यह एक मुद्दा है। रैपर एक रूबी स्क्रिप्ट है जो मेरी शेल स्क्रिप्ट लोड करने और इसे रूबी प्रोग्राम के रूप में निष्पादित करने का प्रयास करता है। बैश सिंटैक्स का सामना करते समय यह स्पष्ट रूप से बारफ है। – scientistician
यदि आप रूबी मणि लिख रहे हैं, तो आपको इसे सम्मेलनों के साथ चिपकने की ज़रूरत है। उनमें से एक उम्मीद है कि आपकी स्क्रिप्ट रूबी के संस्करण के साथ संगत होगी जिसे उपयोगकर्ता ने चुना है। यदि आपको शेल स्क्रिप्ट चलाने की आवश्यकता है, तो आप अपनी रूबी प्रक्रिया को उसी तर्क के साथ एक बैश स्क्रिप्ट में बदलने के लिए हमेशा 'exec' का उपयोग कर सकते हैं। – tadman