2010-02-14 16 views
6

मैंने अपना पहला मणि बनाया है लेकिन मुझे लगता है कि यह सही ढंग से स्थापित करने में सक्षम नहीं है। मैं आदेशमणि जो इसे स्थापित किए जाने के बावजूद मणि नहीं ढूंढ सकता

sudo gem install ceilingfish-toto 

कौन सा उत्पादन

Successfully installed ceilingfish-toto-0.3.6 
1 gem installed 

का उत्पादन जारी कर सकते हैं लेकिन जब मैं तो टाइप gem which ceilingfish-toto। मैं उत्पादन

Can't find ruby library file or shared library ceilingfish-toto 

कौन सा बहुत ही अजीब है क्योंकि अगर मैं जाकर मेरी जवाहरात में देखने के लिए मैं सभी फाइलों को देख सकते हैं फ़ोल्डर है स्थापित वहाँ पाने

# ls -l /opt/local/lib/ruby/gems/1.8/gems/ceilingfish-toto-0.3.6/ 
total 48 
-rw-r--r-- 1 root admin 1053 14 Feb 17:16 LICENSE 
-rw-r--r-- 1 root admin 6166 14 Feb 17:16 README.md 
-rw-r--r-- 1 root admin 879 14 Feb 17:16 Rakefile 
-rw-r--r-- 1 root admin  6 14 Feb 17:16 VERSION 
-rw-r--r-- 1 root admin 2477 14 Feb 17:16 ceilingfish-toto.gemspec 
drwxr-xr-x 7 root admin 238 14 Feb 17:16 test 

किसी को भी पता है इस कारण बन सकता है क्या? मुझे लगता है कि यह शिकायत कर रहा है क्योंकि मणि नाम में एक हाइफ़न है। आप gemspec यहां देख सकते हैं http://github.com/ceilingfish/toto

+0

ठीक है, वास्तव में कोई 'ceilingfish-toto' फ़ाइल या साझा लाइब्रेरी नहीं है। – badp

उत्तर

6

gem which ceilingfish-toto मणि के माध्यम से छत के माध्यम से छत की आवश्यकता वाली फ़ाइल के लिए पथ की आवश्यकता होती है। चूंकि कोई नहीं है, यह कुछ भी नहीं देता है। आपके लिए क्या काम करेगा gem which toto, लेकिन lib/ आपके मणि स्पेक में शामिल नहीं है, इसलिए lib फ़ाइलें इंस्टॉल नहीं हैं, इसलिए यह अस्तित्व में नहीं है।

घुमावदार rake gemspec समस्या को ठीक कर सकता है।

एक तरफ के रूप में, आप यह जांच सकते हैं कि gem list ceilingfish-toto का उपयोग कर एक मणि इंस्टॉल किया गया है, जो आपको दिखाएगा कि यह इंस्टॉल की गई है, चाहे वह फाइलें हों (यह संस्करण स्थापित भी सूचीबद्ध करेगी)।

+0

'मणि सूची' के लिए, "विवरण" के लिए _-d_ का उपयोग करें: 'मणि सूची -d छतफिश-टूटो' यह देखने के लिए कि यह कहां स्थापित है। –

-1

ठीक है, तो यहां समस्या यह है कि मेरी gemspec फ़ाइल में कोई समस्या थी। मैं जो कह सकता हूं उससे बिल्कुल lib/gem-name.rb नाम वाली फ़ाइल होना आवश्यक है, इसलिए इस मामले में मुझे lib/ceilingfish-toto.rb की आवश्यकता थी।

यह कुछ अन्य रत्नों के लिए सही ढंग से काम करने के लिए सच नहीं लगता है। उदाहरण के लिए mime-types या rest-client, भले ही वे gem which के साथ प्रदर्शित न हों, वे वास्तव में काम करते हैं।

मुझे यकीन नहीं है कि यह अभी तक पूरी तरह से सही है, मुझे यकीन है कि नाम में एक हाइफ़न के साथ सही तरीके से व्यवहार करने के लिए एक मणि प्राप्त करने का एक तरीका होना चाहिए। अगर मुझे पता चलता है कि मैं वापस पोस्ट करूंगा और आपको पता चलेगा।

7

यह हाइफ़न नहीं है।

gem whichरत्नों में पुस्तकालय फ़ाइलों की खोज, रत्न नहीं। तुलना करें:

$ gem which haml 
/home/dave/.gem/ruby/1.8/gems/haml-3.0.12/lib/haml.rb 
$ ls haml-3.0.12/lib/h* 
haml haml.rb haml.rbc 

पीची। lib/haml.rb के अस्तित्व पर ध्यान दें।

$ gem which rails 
ERROR: Can't find ruby library file or shared library rails 
$ ls rails-2.3.8/lib/r* 
rails_generator.rb railties_path.rb rubyprof_ext.rb ruby_version_check.rb 

कोई lib/rails.rb नहीं है। लेकिन कोशिश:

$ gem which railties_path # not a gem 
/home/dave/.gem/ruby/1.8/gems/rails-2.3.8/lib/railties_path.rb 

तो gem which ceilingfish-toto एक त्रुटि फेंकता नहीं lib/ceilingfish-toto.rb फ़ाइल (वहाँ भी एक lib फ़ोल्डर नहीं है) है, क्योंकि तब भी जब ceilingfish-toto स्थापित किया गया है।

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