2011-06-06 9 views
6

मैं एक पर्ल स्क्रिप्ट चलाने के लिए कोशिश कर रहा हूँ, लेकिन यह लौटा रहा है:आप कैसे निर्धारित कर सकते हैं कि पर्ल मॉड्यूल क्या है "अनिर्धारित प्रतीक: Perl_Tstack_sp_ptr?"

/usr/bin/perl: symbol lookup error: /usr/local/groundwork/perl/lib/5.8.8/x86_64-linux-thread-multi/auto/IO/IO.so: undefined symbol: Perl_Tstack_sp_ptr

वहाँ यह है कि क्या पर्ल मॉड्यूल खड़ी कर रहा है निर्धारित करने के लिए कोई तरीका है?

उत्तर

13

IO.soIO का बाइनरी घटक है। इस वितरण के मॉड्यूल भी perl वितरण का हिस्सा हैं (यानी वे दोहरी रह चुके हैं)।

इस प्रकार की त्रुटि आमतौर पर होती है जब पर्ल के एक संस्करण का उपयोग करके संकलित बाइनरी का उपयोग करते समय पर्ल के एक अलग संस्करण द्वारा उपयोग किया जाता है।

+0

धन्यवाद install.sh भाग गया। 'वास्तव में समस्या है। लिपि के शीर्ष पर शेबांग गलत पर्ल पर इंगित किया गया था। – Connor

+0

यह भी चारों ओर एक और तरीका हो सकता है: पुराने संस्करण से एक बाइनरी का उपयोग पर्ल के हाल के संस्करण द्वारा किया जा रहा है। उदाहरण के लिए, सेंटोस 6 से सेंटोस 7 तक कुछ बाइनरी मैन्युअल रूप से कॉपी करना (जो पर्ल के उच्च संस्करण का उपयोग करता है)। – Nagev

+0

फिक्स्ड। । । । । – ikegami

0

मुझे कई बार समान समस्या है जब मैं नए CentOS पर पुराने पेर्ल मॉड्यूल का उपयोग करता हूं (उदाहरण के लिए CentOS 6.4)।

/usr/bin/perl: symbol lookup error: /home/sonnn/perl5/lib/perl5/x86_64-linux-thread-multi/auto/Cwd/Cwd.so: undefined symbol: Perl_Tstack_sp_ptr 

/usr/bin/perl: symbol lookup error: /home/sonnn/perl5/lib/perl5/x86_64-linux-thread-multi/auto/version/vxs/vxs.so: undefined symbol: Perl_Tstack_sp_ptr 

मैं ने इन समस्याओं का समाधान कर लिया: http://search.cpan.org/ और से CWD की

  • डाउनलोड स्रोतों कोड, संस्करण उन्हें अन्य मॉड्यूल

  • के लिए

    # tar -xzf version-0.9906.tar.gz 
        # cd version-0.9906 
        # perl Makefile.PL INSTALL_BASE=/home/sonnn/perl5/ 
        # make 
        # make install 
    
        (If you use default module path, you can omit "INSTALL_BASE=/home/sonnn/perl5/") 
    
  • फिर से स्थापित करें इसी तरह

आपके मामले में, मुझे लगता है कि आप http://search.cpan.org/ से आईओ मॉड्यूल डाउनलोड कर सकते हैं और इसे पुनः इंस्टॉल कर सकते हैं।

+1

मेरे पास पोस्ट की गई वही "vxs" त्रुटि थी।एक विकल्प का उपयोग करना है: "सीपीएनएम संस्करण" और "सीपीएनएम डीबीआई" (डीबीआई मॉड्यूल था जिसमें परेशानी हो रही थी)। मुझे लगता है कि मैन्युअल रूप से मॉड्यूल स्थापित करने से आसान है। –

2

मैं हाल ही में इस समस्या में भाग गया जब मेरे पास PERL5LIB पर्यावरण लॉगिन चर मेरी लॉगिन फाइलों में परिभाषित किया गया था, लेकिन वे एक निर्देशिका को इंगित कर रहे थे जो सिस्टम-स्थापित perl के साथ असंगत था। ऐसा इसलिए हुआ क्योंकि HOME फाइल सिस्टम कई अलग-अलग मशीनों पर क्रॉस-माउंट किया गया है जहां पर्ल इंस्टॉलेशन हेटरोजेनस हैं। पर्यावरण परिवर्तक को हटाने से समस्या हल हो जाती है, और मुझे स्थानीय पुस्तकालयों का प्रबंधन करने का एक बेहतर तरीका मिल जाएगा।

-1

संपादित करें:

अंत में, भले ही मैं जानता हूँ कि यह सवाल का जवाब नहीं है, मैं अपने आप को अनुमति देने के रूप में यह की तरह पाने के लिए वास्तव में कड़ी मेहनत जानकारी लग रहा है, क्योंकि मैं इन त्रुटियों उल्लेख साइटों की एक गुच्छा मिला, लेकिन साथ बहुत कुछ इसमें लगातार समाधान। हां इसी तरह।

मैं प्लेटफार्म पथ बदलने से पहले ज़िम्बरा माइग्रेशन को संसाधित नहीं कर सका। हमने इसे उबंटू 8.04 से ज़िंबरा 6.0.16 के साथ ज़िंबरा 7.2.7, उबंटू 10.04 में माइग्रेट कर दिया है, फिर ज़िम्बा 8.0.9 को अपग्रेड कर दिया है, फिर केंद्र 7 में माइग्रेट कर दिया है, फिर 8.6.0

केंद्रों पर जहां मैं के बाद मैंने किया ./install.sh -s zimbramon फ़ाइलों की एक चाल करना था ...

mv /opt/zimbra/zimbramon/lib/x86_64-linux-gnu-thread-multi/ /opt/zimbra/zimbramon/lib/x86_64-linux-gnu-thread-multi.bak

तब मैं फिर से बिना -s

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

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