2011-05-23 15 views
11

मेरे पास स्थापित सीपीएएन मॉड्यूल के बड़े संग्रह के साथ पर्ल 5.13.4 है।पर्ल के नए संस्करण को अपडेट करने के लिए एक CPANPLUS ऑटोबंडल का उपयोग कैसे करें?

मैंने अभी पर्ल 5.14.0 संकलित किया है। मैं 5.13.4 में 5.14.0 में सभी मॉड्यूल स्थापित (पुन: संकलित) करना चाहता हूं।

मैं 'cpanp' और 'b' विकल्प के साथ स्थापित मॉड्यूल का एक बंडल उत्पन्न/उत्पन्न कर सकता हूं; अब मेरे पास एक फ़ाइल ~/.cpanplus/5.13.4/dist/autobundle/Snapshot_2011_05_18_00.pm है।

  • आदेश 'cpanp' कि कि स्नैपशॉट बंडल के माध्यम से जाने के लिए और होगा के 5.14.0 संस्करण में उपयोग करने के लिए 5.14.0 सुनिश्चित उन सभी मॉड्यूल स्थापित किया है क्या है?

  • या, यदि सीएनपीपी और बंडल का संयोजन जाने का उचित तरीका नहीं है, तो पर्ल के पुराने संस्करण में पर्ल के पुराने संस्करण में स्थापित मॉड्यूल को दोहराने (पुनः संकलित) करने का सबसे आसान तरीका क्या है? (CPAN बंडल फ़ाइल के साथ सौदा कर सकते हैं, मैं इसे इस्तेमाल करेंगे -। यह परिणाम के बारे में मैं, नहीं इसे प्राप्त करने के लिए प्रयोग किया जाता तंत्र परवाह है)

(मैं पर एक त्वरित नज़र रखना किया मैं यहां पर जानकारी प्राप्त किए बिना 'perl cpanplus bundle' के लिए प्रश्नों की सूची हूं। मैंने कई अवसरों पर 'perldoc cpanp' को भी देखा है और मैं जो जानकारी प्राप्त कर रहा हूं उसे ढूंढने में विफल रहा है। यह कहकर "जानकारी नहीं है"; इसका मतलब यह हो सकता है कि मैंने इसे नहीं देखा है।)

उत्तर

8

एक बंडल फ़ाइल एक सीपीएएन विशेष-आधारित चीज है जो - मेरे आश्चर्य के लिए - काम करने के लिए भी नहीं होती CPANPLUS में। यही कारण है कि कोई भी CPANPLUS बंडलों की बात नहीं करता है और आपको कुछ भी नहीं मिला। तो सीपीएएन नियोजित करें। सबसे पहले पता लगाएं कि आपका सीपीएएन रूट कहां है, डिफ़ॉल्ट रूप से यह ~/.cpan या ~/.local/share/.cpan एक नि: शुल्क डेस्कटॉप एक्सडीजी-अनुरूप प्रणाली पर है। तदनुसार निर्देशों को बदलें।

mkdir -p ~/.cpan/Bundle 
mv ~/.cpanplus/5.13.4/dist/autobundle/Snapshot_2011_05_18_00.pm ~/.cpan/Bundle 
cpan Bundle::Snapshot_2011_05_18_00 # DTRT 

आप के बारे में बात कर रहे recompile, CPAN has that command के रूप में किया गया है और आप इसे या तो CPAN खोल से या कमांड लाइन से API कॉल के रूप में जारी कर सकते हैं, लेकिन यह उपयोगी है केवल यदि आप पर्ल के संस्करणों में एक निश्चित स्थान पर मॉड्यूल की है।

+0

यह अच्छी तरह से काम किया, धन्यवाद। अगर वह एक विकल्प था तो मैं आपको अतिरिक्त वोट दूंगा। मैंने यह इंगित करने के लिए निर्दिष्ट/निर्दिष्ट 'recompile' का संकेत दिया है कि मुझे स्रोत से मॉड्यूल का पुनर्निर्माण करने की उम्मीद है - एक समाधान जो पुराने पर्ल से पुराने, पहले से संकलित संस्करणों तक पहुंच प्रदान करता है, मेरी आवश्यकताओं को पूरा नहीं करेगा। –

2

CPANPLUS ऑटोबंडल अभी तक ठीक काम करते हैं। बस बंडल के पूर्ण पथ पर 'file://' के साथ बंडल का संदर्भ लें।

निश्चित रूप से कुछ डडलिन होंगे कि आपको कुछ मॉड्यूल के साथ करना होगा, लेकिन अधिकांश भाग के लिए इसे पूरी तरह से करने योग्य होना चाहिए।

+0

धन्यवाद: मैंने (अंत में) 5.14.2 इंस्टॉल करने के लिए चारों ओर मिल गया है, और 5.14.1 में अपना स्नैपशॉट बनाने के बाद, मैं 5.14.2 'cpanp' चलाने में सक्षम था और' i फ़ाइल: /// उपयोगकर्ता चलाता था/jleffler/.cpanplus/5.14.1/dist/autobundle/स्नैपशॉट_2012_05_04_00.pm' और यह निश्चित रूप से फ़ाइल पढ़ने और संकलन शुरू करने के अर्थ में काम करता है। मैंने मैन्युअल रूप से 'CPANPLUS' और 'मॉड्यूल :: हस्ताक्षर' को स्थापित करने के बाद समाप्त किया क्योंकि इन समस्याओं की अनुपस्थिति में कुछ समस्याएं आईं, लेकिन 'फ़ाइल: //' उपसर्ग महत्वपूर्ण जानकारी थी जिसे मैंने पहले नहीं देखा था। एक बार फिर धन्यवाद। –

0

कुछ अतिरिक्त जानकारी जो अन्य लोगों को कुछ बाल-फाड़ने से बचा सकती हैं।

  1. आप एक स्नैपशॉट फ़ाइल $HOME/Snapshot_2013_12_23_00.pm है, तो आप चला सकते हैं:

    cpanp -i file://$HOME/Snapshot_2013_12_23_00.pm 
    

    और स्थापित शुरू कर देंगे।

  2. जब आप ऐसा करते, पर्ल जैसे एक फ़ाइल बनाने जाएगा:

    $HOME/cpan/authors/id/UNKNOWN-ORIGIN/Snapshot_2013_12_23_00.pm 
    

    (सटीक स्थान जहाँ आप अपने CPANPLUS भंडार कॉन्फ़िगर कर दिया है पर निर्भर करेगा, मेरा $HOME/cpan में चला जाता है।)

    यदि आपको स्नैपशॉट फ़ाइल हैक करने की आवश्यकता है (क्योंकि कुछ मॉड्यूल संकलित नहीं होंगे), तो आप कमांड लाइन पर फ़ाइल नाम संपादित और निर्दिष्ट कर सकते हैं जब तक कि आप चेहरे में नीले रंग के न हों और पूरी तरह से अशक्त हो जाएं, और यह ' टी थोड़ा सा अंतर बनाते हैं क्योंकि आप इसे $HOME में देखने के बावजूद, CPANPLUS उस फ़ाइल को देख रहा है जिसने इसे UNKNOWN_ORIGIN निर्देशिका में कॉपी किया है। फ़ाइल को हटाने निश्चित रूप से काम करता है; आप शायद इसे भी संपादित कर सकते हैं।

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

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