सीपीएएन वास्तव में फ़ाइलों को स्थापित नहीं करता है। यह प्रत्येक वितरण में एम्बेडेड इंस्टॉल स्क्रिप्ट चलाता है, जो तब वास्तविक इंस्टॉल करता है।
ExtUtils::MakeMaker का उपयोग कर वितरणों के लिए, चूक यहाँ प्रलेखित रहे हैं: https://metacpan.org/pod/ExtUtils::MakeMaker#make-install (और INSTALLDIRS
का डिफ़ॉल्ट मान site
है)। Module::Build के लिए, https://metacpan.org/pod/Module::Build#INSTALL-PATHS देखें।
जब प्रलेखन $Config{foo}
या %Config
के बारे में बात करता है, तो इसका मतलब वैरिएबल the Config module द्वारा प्रदान किया गया है। का मान perl -V:foo
चलाकर भी निरीक्षण किया जा सकता है।
(यदि आपको लगता है यह अनावश्यक रूप से जटिल लगता है, तुम सही हो।)
लघु संस्करण है कि पर्ल एकाधिक "प्रणाली निर्देशिका", जिनमें से एक "विशिष्ट साइट" के लिए है मॉड्यूल है और इस तरह के रूप में इस्तेमाल डिफ़ॉल्ट स्थापना लक्ष्य। आप सही हैं कि यह एक एकल निर्देशिका है (प्रति perl इंस्टॉल), जो बहु-उपयोगकर्ता प्रणाली के साथ अच्छी तरह से जाल नहीं करती है: यह सभी उपयोगकर्ताओं में साझा की जाती है, और आपको मॉड्यूल स्थापित करने के लिए रूट अनुमतियों की आवश्यकता होती है (और ऐसा करने से अपग्रेड हो सकता है/सिस्टम पैकेज से मॉड्यूल ओवरराइड करें, जो एक बुरा विचार है)।
उपयोगकर्ता के होम निर्देशिका में स्थापित करने के लिए ExtUtils :: MakeMaker, मॉड्यूल :: बिल्ड इत्यादि को कॉन्फ़िगर करने के लिए लोग क्या करते हैं। यह पर्यावरण चर के साथ किया जा सकता है। फिर वे इस निर्देशिका को @INC
पर जोड़ने के लिए पर्ल को बताते हैं, इसलिए मॉड्यूल वास्तव में पाए जा सकते हैं और लोड हो सकते हैं। यह एक और पर्यावरण परिवर्तनीय, PERL5LIB
के साथ किया जाता है। (PERL5LIB
स्थापना को प्रभावित नहीं करता है, यह पूरी तरह से लोड होने के लिए उपयोग किया जाता है।)
उपर्युक्त सभी local::lib में स्वचालित और encapsulated है। (। स्थानीय :: lib भी जैसे एक प्रति परियोजना मॉड्यूल उपनिर्देशिका बनाने के लिए इस्तेमाल किया जा सकता है)
CPAN प्रलेखन भी कहते हैं:
CPAN 1.9463 के रूप में, यदि आप लिखने के लिए अनुमति नहीं है डिफ़ॉल्ट perl लाइब्रेरी निर्देशिका, सीपीएएन की कॉन्फ़िगरेशन प्रक्रिया आपको पूछेगी कि क्या आप local::lib
बूटस्ट्रैप करना चाहते हैं, जो व्यक्तिगत पर्ल लाइब्रेरी निर्देशिका को आसान बनाता है।
आप (अपने घर निर्देशिका में एक निजी पर्ल स्थापित करने और इस मामले में "प्रणाली" निर्देशिका किसी के साथ साझा नहीं है सिर्फ अपने $HOME
के तहत एक और उपनिर्देशिका है और इस प्रकार और कर सकते हैं द्वारा पूरे मुद्दे से बचने कर सकते हैं आपके द्वारा लिखा जाना चाहिए)। यह उदाहरण के साथ बहुत आसान है perlbrew।
एक और ध्यान दें: तुम बस PERL5LIB
के लिए दस्तावेज़ में एक बग पाया है। "और वर्तमान निर्देशिका" पुराना है: .
सुरक्षा कारणों से मॉड्यूल स्थानों की डिफ़ॉल्ट सूची से हटा दिया गया है।
सीपीएएन-द-रिपोजिटरी के अलावा, सीपीएएन-द-पर्ल-मॉड्यूल भी है (जो 'cpan' कमांड का उपयोग करता है)। – melpomene
क्या तालिका कहीं से सोर्स की गई है या क्या आपने इसे स्वयं लिखा है? – simbabque