2009-03-05 19 views
16

क्या यह संभव है?मैं CPAN.pm का उपयोग किये बिना पर्ल मॉड्यूल कैसे स्थापित कर सकता हूं?

+0

क्यों आप ऐसा करना चाहेगा? – andrewrk

+0

यदि आपके पास मुख्य पर्ल लाइब्रेरी में स्थापित करने की अनुमति नहीं है, तो कहीं भी स्थानीय स्थापित करने के लिए CPAN.pm प्राप्त करना संभव है, लेकिन मैं कैसे भूल जाता हूं। –

+0

हां यह है, लियो का जवाब देखें। – tunnuz

उत्तर

7

यदि आप स्रोत कोड डाउनलोड करते हैं, तो आमतौर पर मेकफ़ाइल.पीएल होगा। आप "perl Makefile.PL; रन; परीक्षण करें; इंस्टॉल करें" चलाएं और यह आपके लिए बिल्ड और इंस्टॉल करेगा।

जाहिर है यदि आप CPAN.pm का उपयोग नहीं कर रहे हैं, तो आपको निर्भरताओं से निपटने की आवश्यकता होगी।

इसके अलावा, यदि आप CPAN.pm का उपयोग नहीं कर सकते हैं, तो यह है कि आपको/usr/lib/perl में स्थापित करने की अनुमति नहीं है, आप स्थानीय रूप से स्थापित करने के लिए CPAN.pm को मजबूर कर सकते हैं, लेकिन मैं भूल जाता हूं।

+1

या मॉड्यूल के लिए :: बिल्ड आधारित वितरण: perl Build.PL; पर्ल बिल्ड; perl बिल्ड टेस्ट; perl बिल्ड स्थापित करें – ysth

+2

सीपीएएन खोल में "ओ conf confit" चलाना पूरी चीज को फिर से कॉन्फ़िगर करने का सबसे आसान तरीका है। – Schwern

+0

आप बिल्ड समय पर इच्छित किसी भी मान को सेट करने के लिए makepl_arg और buildpl_arg दोनों के लिए मान सेट कर सकते हैं। CPAN.pm दस्तावेज देखें। –

0

यदि .pm फ़ाइल शुद्ध पर्ल है और संकलित करने की आवश्यकता नहीं है तो आप इसे अपने एप्लिकेशन के lib फ़ोल्डर में डाल सकते हैं और इसे सामान्य के रूप में उपयोग कर सकते हैं।

+0

स्पष्टीकरण के लिए, यह आपके एप्लिकेशन का lib फ़ोल्डर होना चाहिए, न कि आपके सिस्टम perl lib फ़ोल्डर। मैन्युअल रूप से आपके सिस्टम perl lib में फाइलें जोड़ना सिर्फ बाद में निर्भरता नरक के लिए भीख मांग रहा है। – denkfaul

+0

अच्छा बिंदु, मेरा जवाब संपादित किया। मैंने perl libs फ़ोल्डर में .pms रखा है, लेकिन मैंने उन्हें विकसित किया था और उनकी कोई निर्भरता नहीं थी: D –

+0

मेरे पास UserAgent.pm है। मैं इसे प्रोग्राम के फ़ोल्डर में डाल सकता हूं? क्या होगा यदि इसकी निर्भरताएं हों? – lamcro

32

यदि आप स्रोत कोड डाउनलोड करते हैं, और README फ़ाइल पढ़ें। यह शायद आपको बता देंगे आप

perl Makefile.PL 
make 
make test 
make install 

या

perl Build.PL 
./Build 
./Build test 
./Build install 
1

करना चाहिए समस्या नहीं रूट पहुँच है, तो मैं local::lib देखने की सलाह देते हैं और यह भी CPAN.pm और गैर-रूट स्थापना के लिए this webpage

लेकिन पूछे गए प्रश्न का उत्तर देने के लिए, सीपीएएन या सीपीएएनप्लस सहायक हैं, लेकिन इनकी आवश्यकता नहीं है। लियोन कहता है कि आप इसे हमेशा पुराने तरीके से कर सकते हैं - हालांकि आमतौर पर यह आसान नहीं होता है।

+0

आप पूर्ण सीपीएएन कॉन्फ़िगरेशन को फिर से करने के लिए "ओ conf confit" भी चला सकते हैं। – Schwern

+0

जब तक आपके पास एक कंपाइलर और बनाने के लिए सभ्य है, तो आप अपनी होम निर्देशिका में स्थानीय :: lib को बूटस्ट्रैप कर सकते हैं और रूट रूट की आवश्यकता नहीं है। दूसरी ओर, मैंने सौर भारी बक्से को बहुत भारी लॉक डाउन कंपाइलर्स के साथ देखा है जो इस दृष्टिकोण की उपयोगिता को सीमित करते हैं। – singingfish

3

यदि आप लिनक्स बॉक्स पर हैं, तो पैकेज में एक बहुत बड़ा हिस्सा आमतौर पर निर्मित पैकेज प्रबंधक का उपयोग करके प्राप्त किया जा सकता है। मैं मुझे लगता है http://packages.ubuntu.com/hardy/perl/

:

sudo apt-get install libpg-perl 

आप उबंटू यहाँ के लिए मॉड्यूल की एक सूची देख सकते हैं: उदाहरण के लिए, एक Ubuntu पर, आप PostgreSQL पर्ल मॉड्यूल स्थापित करना चाहते हैं आप सरल करते चाहते अक्सर नामों पर अनुमान लगा सकते हैं। निश्चित नहीं है कि यह बिल्कुल मदद करता है, लेकिन मेरे लिए मुझे अक्सर सीपीएएन की तुलना में उपयोग करना आसान लगता है क्योंकि यह निर्भरताओं को हल करने में बहुत बेहतर है।

+1

समस्या यह है कि यह आपके सिस्टम पर्ल पर स्थापित करता है। अक्सर आप यह नहीं चाहते हैं, भले ही आपको लगता है कि आप करते हैं। –

0

यदि आप Red Hat (Fedora, CentOS) का उपयोग कर रहे हैं, तो आपको जहां भी संभव हो, पर्ल निर्भरताओं के लिए RPM का उपयोग करना चाहिए। पर्ल पैकेज लगभग हमेशा नामित perl-मॉड्यूल-नाम, उदा। perl-dBI, perl-spreadsheet-WriteExcel, आदि

उबंटू पर नामकरण योजना libmodule-name-perl है।

+0

समस्या यह है कि यह आपके सिस्टम पर्ल पर स्थापित करता है। अक्सर आप यह नहीं चाहते हैं, भले ही आपको लगता है कि आप करते हैं। –

-1

मैं, जैसा कि दूसरों ने CPAN.pm का उपयोग करने का अत्यधिक सुझाव दिया होगा। यह आपके लिए आवश्यक मॉड्यूल से जुड़े किसी भी निर्भरता का उपयोग करने और हल करने के लिए एक हवा है।

दूसरी ओर, मैं सुझाव दूंगा कि आप perlmodinstall दस्तावेज़ को perldoc पर पढ़ लें क्योंकि यह अन्य ओएस पर भी विवरण देता है।

सादर,

जेफ

+0

यह उपयोग करने के लिए एक हवा नहीं है। कभी MinGW पर cpan.pm का उपयोग करने की कोशिश की? यह बेहद मुश्किल है। यह स्मृति से बाहर हो जाता है और बस विफल रहता है, उन निर्देशिकाओं में स्थापित करने का प्रयास करता है जिनके पास आपके पास अनुमति नहीं है, या केवल आपको बहुत से कठिन प्रश्न पूछते हैं जिन्हें आप जवाब नहीं जानते हैं। – Dmitry

+0

मैं विंडोज का उपयोग नहीं करता, और परिणामस्वरूप मिनीजीडब्ल्यू की कोशिश नहीं की है, लेकिन ऐसा लगता है कि इसमें अपने स्वयं के मुद्दे हैं। आप वर्चुअलबॉक्स जैसे कुछ के साथ वीएम में लिनक्स चलाने की कोशिश कर सकते हैं और देख सकते हैं कि यह आपके लिए कैसे काम करता है। – numberwhun

2

यहाँ देखें: How to install perl modules using CPAN without root

मैं बस रूट पहुँच के बिना एक सर्वर पर सेट अप किया है और CPAN सब कुछ स्वचालित रूप से करता है।

लेकिन अगर आप वास्तव में CPAN के बिना एक मॉड्यूल स्थापित चाहते हैं और आप रूट (यह मानते हुए कि जब से तुम CPAN का उपयोग नहीं करते करना चाहते हैं) की जरूरत नहीं है, आप यह कर सकते के रूप में

perl Makefile.PL PREFIX=$HOME 
make 
make install 

इस प्रकार आप 'खुद को निर्भरताओं का शिकार करना होगा ताकि सीपीएएन का उपयोग करना बेहतर हो।

0

हम उबंटू में आपके टर्मिनल से और यहां तक ​​कि सभी पेर्ल मॉड्यूल स्थापित कर सकते हैं। यदि आप एक यूबंटू सर्वर का उपयोग कर रहे हैं तो निम्न आदेश निष्पादित करें, 'sudo apt-get install "perl_module"' मॉड्यूल जिन्हें आप चाहते हैं केवल "perl_module" में नाम दें, यदि आप Apache2 :: कुकी स्थापित करना चाहते हैं "libapreq2" में होना चाहिए, इसलिए आपको "sudo apt-get libapreq2 इंस्टॉल करें"

-1

यदि आप यह पूछ रहे हैं क्योंकि आपको सीपीएएन के साथ समस्याएं आ रही हैं ... आप शायद राम से बाहर हो रहे हैं यही कारण है कि आप सीपीएएन का उपयोग नहीं कर सकते हैं।

हो सकता है कि आपके पास स्वैप फ़ाइल न हो। इसे आज़माएं:

$ sudo su 
# dd if=/dev/zero of=/swap bs=1M count=1k # create a 1GB file 
# mkswap /swap 
# swapon /swap 

अन्यथा ... कुछ सेवाओं को रोकें।

$ sudo service mysql stop 
$ sudo service nginx stop 

... और फिर से कोशिश

$ cpan install CPAN 
$ cpan install MIME::Lite::TT::HTML 
+0

डाउनवॉटर के लिए: शाब्दिक प्रश्न के बारे में इतनी गुदा होने से रोकें, प्रत्येक प्रश्न के पीछे एक सवाल है और इस मामले में एक वैध व्यक्ति है: सीपीएएन क्यों काम नहीं कर रहा है, क्योंकि आपको नहीं बताता है, यह बस विफल रहता है और मैं ' मैंने केवल कम रैम में असफल देखा है और यदि आप स्वैप नहीं करते हैं तो यह अक्सर होता है। – dagelf

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

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