2010-10-22 10 views
5

मैं कुछ अलग-अलग वर्गों में Crypt::SSLeay के Makefile.PL में कुछ सामानों को कारक बनाना चाहता हूं। इन वर्गों का उपयोग केवल Makefile.PL द्वारा किया जाएगा। जैसे, मैं उन्हेंएक सीपीएएन वितरण में उपयोगिता मॉड्यूल जोड़ने का सही तरीका क्या है?

  1. रोकें इंडेक्सर
  2. मॉड्यूल के हिस्से के रूप में स्थापित किया जा करने के लिए नहीं द्वारा अनुक्रमित किया जाना नहीं चाहते।

क्या मुझे उन्हें में Module::Install तरीके से रखना चाहिए? मुझे और क्या ध्यान देना चाहिए?

+0

यह डिस्ट :: ज़िला में कनवर्ट करने के लिए एक आदर्श समय की तरह लगता है और फिर अपनी नई कार्यक्षमता को एक dzil प्लगइन में डाल दें। – Ether

+1

@ ईथर * श्वास * आप सही हैं। अफसोस की बात है, मुझे लगता है कि मैं कभी नहीं समझ सकता * 'जिस्ट :: ज़िला 'इसे ठीक से उपयोग नहीं करता है। –

+0

ठीक है, इसलिए इससे एक और सवाल उठ गया: http://stackoverflow.com/questions/4000837/where-can-i-find-a-concise-guide-to-converting-an-existing-cpan- मॉड्यूल-to -use-dis –

उत्तर

4

PAUSE META.yml फ़ाइल में no_index पैरामीटर की तलाश करता है (विनिर्देश: v1.4, v2)। डिफ़ॉल्ट META.yml ExtUtils::MakeMaker करता है कि

no_index: 
    directory: 
     - t 
     - inc 

है, परंतु आप इसे करने के लिए और अधिक डेटा जोड़ने यदि आप चाहें तो

package: 
     - Some::Package::Used::For::Building::But::Not::To::Be::Installed 
    file: 
     - a-file/with/a/package/statement/that-should-be/ignored.pm 
2

वास्तव में यहाँ दो मुद्दों कर रहे हैं कर सकते हैं। एक है PAUSE को आपके वितरण में अतिरिक्त मॉड्यूल को अनुक्रमणित करने से रोकने के लिए है ताकि वे 02packages में दिखाई न दें, और उपयोगकर्ता को इंस्टॉल करने में बेवकूफ कैसे न बनाएं।

रोकें जवाब उचित ठीक का एक संयोजन, no_index सामान, और mldistwatch बाहर faking के पुरानी लोककथाओं है। PAUSE यह जानना चाहता है कि आपके वितरण में कौन से पैकेज हैं। यह नामस्थान के समान लाइन पर package की तलाश करता है। यदि यह एक ही पंक्ति पर नहीं है, तो PAUSE इसे पारित करता है। तो, आप लाइनों की तरह कुछ पुराने "छिपा" मॉड्यूल में देखेंगे:

package # separate lines get past PAUSE 
     Some::Helper::Module; 

आप पर्दे के पीछे लग रही पसंद है, प्रासंगिक कोड में (PAUSE github repo) PAUSE::mldistwatch::filter_pms() में है।

अन्य समस्या यह है कि डिस्ट्रो में अतिरिक्त चीजें इंस्टॉल न करें। इंडेक्सिंग के साथ इसका कोई लेना-देना नहीं है। फ़ाइलों को इंस्टॉलेशन के लिए तैयार करने के लिए ब्लिब (बिल्ड लाइब्रेरी) में बहुत सारी चीज़ें ले जाएं। वहां समाप्त होने वाली कुछ भी इंस्टॉल हो जाती है। यह चाल है कि बिल्डर को अपने सहायक मॉड्यूल डालने दें। आमतौर पर यह तब तक कोई समस्या नहीं है जब तक आप उन्हें अपने distro के शीर्ष स्तर पर या lib निर्देशिका में नहीं डालते।

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