2008-10-30 16 views
27

मेरी स्थिति यहां है: मुझे पर्ल के बारे में लगभग कुछ नहीं पता है, लेकिन यह एक पोर्टलिंग मशीन पर उपलब्ध एकमात्र भाषा है। मुझे केवल अपने स्थानीय कार्य क्षेत्र में लिखने की अनुमति है, न कि पर्ल इंस्टॉल स्थान। मुझे सीपीएएनमैं अनुमति अनुमतियों के बिना एक नया पर्ल मॉड्यूल का उपयोग कैसे कर सकता हूं?

से Parallel::ForkManager पर्ल मॉड्यूल का उपयोग करने की आवश्यकता है, मैं इस समांतर :: फोर्कमेनगर को केंद्रीय इंस्टॉल किए बिना कैसे उपयोग करूं? क्या कोई पर्यावरण परिवर्तनीय है जिसे मैं सेट कर सकता हूं ताकि यह स्थित हो?

धन्यवाद

जद

+0

संभावित डुप्लिकेट [मैं रूट पहुंच के बिना स्थानीय रूप से सीपीएएन मॉड्यूल कैसे स्थापित कर सकता हूं (DynaLoader।अपराह्न लाइन 22 9 त्रुटि)?] (http://stackoverflow.com/questions/102850/how-can-i-install-cpan-modules-locally-without-root-access-dynaloader-pm-line-2) –

उत्तर

34

perlfaq8: How do I keep my own module/library directory? से:

जब आप मॉड्यूल का निर्माण, पर्ल बता जहां मॉड्यूल स्थापित करने के लिए। जब Makefiles पैदा

सी आधारित वितरणों के लिए, INSTALL_BASE विकल्प का उपयोग करें:

perl Makefile.PL INSTALL_BASE=/mydir/perl 

आप अपने CPAN.pm विन्यास में इस सेट कर सकते हैं ताकि मॉड्यूल स्वचालित रूप से अपने निजी पुस्तकालय निर्देशिका में स्थापित है जब आप का उपयोग करें CPAN.pm खोल:

0:

% cpan 
cpan> o conf makepl_arg INSTALL_BASE=/mydir/perl 
cpan> o conf commit 

सी आधारित वितरणों के लिए, --install_base विकल्प का उपयोग

आप स्वचालित रूप से भी इस विकल्प का उपयोग करने के लिए CPAN.pm कॉन्फ़िगर कर सकते हैं:

% cpan 
cpan> o conf mbuild_arg --install_base /mydir/perl 
cpan> o conf commit 

INSTALL_BASE इन उपकरणों बताता है कि कैसे अपने नए स्थापित moudles चलाने के बारे में जानकारी के लिए एफ एल देखें में अपने मॉड्यूल डाल करने के लिए।

वहाँ के बाद से यह उपसर्ग और उदारीकरण सेटिंग्स कि ExtUtils :: MakeMaker के पुराने संस्करणों की वकालत की तुलना में अलग तरह कार्य करता है,, INSTALL_BASE के साथ एक चेतावनी है, हालांकि। INSTALL_BASE को समान निर्देशिका के तहत पर्ल या विभिन्न आर्किटेक्चर के एकाधिक संस्करणों के लिए मॉड्यूल स्थापित करने का समर्थन नहीं करता है। आपको यह विचार करना चाहिए कि क्या आप वास्तव में चाहते हैं, और यदि आप करते हैं, तो पुराने PREFIX और LIB सेटिंग्स का उपयोग करें। अधिक जानकारी के लिए ExtUtils :: Makemaker दस्तावेज़ देखें।

6

बाहर this post मार्क डोमिनस से चेक

अंश:

  • सेट PREFIX = एक्स जब Makefile
  • सेट INSTALLDIRS = विक्रेता और VENDORPREFIX = एक्स Makefile निर्माण जब
      निर्माण
    • या शायद VENDORPREFIX के बजाय आपको INSTALLVENDORLIB या कुछ
    • 0 सेट करने की आवश्यकता है
    • या हो सकता है बजाय Makefile निर्माण करते हुए उन्हें स्थापित करने की आप जबकि जब Makefile
    • उपयोग बराबर
    • उपयोग स्थानीय निर्माण कर
  • सेट उदारीकरण = एक्स/lib स्थापित लक्ष्य चल उन्हें निर्धारित करने की आवश्यकता: : lib

मार्क भी अपने ब्लॉग में एक और समाधान जो desribe लिए थोड़ा और अधिक स्थान लेता है लेकिन बनाने के लिए और परीक्षण करना नहीं बल्कि बनाने स्थापित चल रहा है और उसके बाद blib/में सामान का उपयोग कर करने पर निर्भर करता है देता है।

+0

वहाँ है विक्रेता सामान के साथ गड़बड़ करने का कोई कारण नहीं है। आपको इंस्टालडिर्स को छोड़ना चाहिए क्योंकि यह है, "साइट" स्थानीय रूप से स्थापित मॉड्यूल के लिए सही है। और INSTALL_BASE का उपयोग करें, न कि PREFIX/LIB। – Schwern

2

आप -I (पूंजी i) कमांड लाइन स्विच का उपयोग कर उस निर्देशिका के बाद जहां आप मॉड्यूल रखेंगे; या निर्देशिका के बाद "lib का उपयोग करें" निर्देश का प्रयास करें।

4

वहाँ PERL5LIB वातावरण चर, और -I कमांड लाइन पर जब यह मॉड्यूल का उपयोग कर के लिए आता है। सीपीएएन और सीपीएएनप्लस को बताने के लिए तंत्र हैं।

सीपीएएन मैनुअल के प्रश्न 5 में जानकारी है (perldoc CPAN, या CPAN स्वयं देखें)।

+1

मेरे भटक अंडरस्कोर, ब्रायन को हटाने के लिए धन्यवाद। –

0

cpanminus उपयोग करने पर विचार, एक एक फ़ोल्डर में this other thread

2
perl Makefile.PL LIB=/my/perl_modules/lib/ 
make 
make install 
PERL5LIB=$PERL5LIB:/my/perl_modules/lib/ 
perl myperlcode.pl 
4

डाउनलोड पैकेज रूप CPAN पर सुझाव:

wget http://search.cpan.org/CPAN/authors/id/S/SZ/SZABGAB/Parallel-ForkManager-1.06.tar.gz 
gunzip Parallel-ForkManager-1.06.tar.gz 
tar -xvf Parallel-ForkManager-1.06.tar 

इस से पहले अपने स्थानीय स्टोर करने के लिए घर में एक फ़ोल्डर बनाने मॉड्यूल, अब डाउनलोड फ़ोल्डर में जाएं और फॉलोइंग cmmands चलाएं:

perl Makefile.PL PREFIX=/home/username/myModules 
make 
make test 
make install 

स्थापित फ़ोल्डर,/home/username/myModules से फोर्कमेनगर का मार्ग प्राप्त करें और समांतर फ़ोल्डर का पता लगाएं और इसका पूरा पथ प्राप्त करें।

अब आप अपने पर्ल फ़ाइल में शुरुआत

use lib '/home/username/myModules/bin.../Parallel'; 
use parallel::ForkManager; 

--That यह क्या करना चाहिए पर इन डाल दिया।

2

cpanm -l $DIR_NAME विकल्प का उपयोग करें।

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

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