2012-07-10 15 views
17

क्या कोई मुझे पर्ल DBD::Oracle मॉड्यूल स्थापित करने का मार्गदर्शन कर सकता है?पर्ल डीबीडी :: ओरेकल मॉड्यूल इंस्टॉलेशन

  • प्लेटफार्म:

    यहाँ मैं अब तक क्या किया है है RHEL 5.8 64 बिट

  • स्थापित पर्ल DBI पैकेज
  • स्थापित Oracle त्वरित ग्राहक लिनक्स 64 बिट (बसी + एसडीके + sqlplus घटक के लिए तत्काल ग्राहक के लिए
  • सही $ORACLE_HOME और $LD_LIBRARY_PATH
  • निर्धारित किया है फिर जब मैं perl Makefile.pl कर यह वें के साथ विफल ई निम्न त्रुटि:

    I'm having trouble finding your Oracle version number... trying harder 
    
    WARNING: I could not determine Oracle client version so I'll just 
    default to version 8.0.0.0. Some features of DBD::Oracle may not work. 
    Oracle version based logic in Makefile.PL may produce erroneous results. 
    You can use "perl Makefile.PL -V X.Y.Z" to specify a your client version. 
    
    Oracle version 8.0.0.0 (8.0) 
    DBD::Oracle no longer supports Oracle client versions before 9.2 
    Try a version before 1.25 for 9 and 1.18 for 8! at Makefile.PL line 271. 
    
  • तत्काल क्लाइंट संस्करण: 11.1.0

  • DBD::Oracle संस्करण 1,44

आप ओरेकल तत्काल ग्राहक के साथ सफलतापूर्वक स्थापित किया है, तो कर सकता है आप कृपया मुझे बताओ मुझे क्या याद आ रही है?

क्या ओरेकल तत्काल ग्राहक का उपयोग किये बिना DBD::Oracle इंस्टॉल करना संभव है?

उत्तर

37
  • स्थापित पर्ल DBI मॉड्यूल ($ yum install perl-DBI)
  • मैन्युअल ओरेकल तत्काल ग्राहक के लिए तीन RPMs नीचे स्थापित (Instant Client Downloads for Linux x86-64 से)

    oracle-instantclient11.2-basic-11.2.0.3.0-1 
    oracle-instantclient11.2-devel-11.2.0.3.0-1 
    oracle-instantclient11.2-sqlplus-11.2.0.3.0-1 
    

मैं 64 बिट लिनक्स बॉक्स का उपयोग कर रहा है, तो चयन तदनुसार आपके आरपीएम फ़ाइल नाम।

  • चर नीचे सेट:

    LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib 
    ORACLE_HOME=/usr/lib/oracle/11.2/client64 
    

    MacOS उपयोगकर्ताओं की आवश्यकता होगी:

    DYLD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/ 
    

    इसके अलावा अपने PATH चर को ORACLE_HOME जोड़ें।

  • डाउनलोड DBD :: ओरेकलCPAN

  • मॉड्यूल अनटार से और दिए गए क्रम में आदेश नीचे चलाएँ:

    perl Makefile.PL 
    make 
    make install 
    

किया !!!

जिन मुद्दों का सामना मैंने किया था, वे गलत LD_LIBRARY_PATH के कारण थे। मैंने इसे /usr/lib/oracle/11.2/client64 पर सेट किया था जबकि सही मान /usr/lib/oracle/11.2/client64/lib है।

निश्चित रूप से, यह मेरे जैसे नौसिखिया के लिए एक महान सीखना था।

5

आप मेरा आलेख How to install DBD::Oracle भी पढ़ सकते हैं जिसमें डीबीडी :: ओरेकल सीपीएएन मॉड्यूल स्थापित करने के लिए आवश्यक सभी चरणों को शामिल किया गया है, जो एक सीधा स्थापना नहीं है। इसका उद्देश्य सिरदर्द को कम करना और इसे दोहराने योग्य प्रक्रिया में बदलना है।

+0

@gerardw स्थापित करें: रिपोर्ट के लिए धन्यवाद यह, मैं सिर्फ पिछले स्लैश हटा दिया, शायद यह के बाद से हुआ गिटहब पेजेस जेकील 3 और लिंक प्रारूप में बदलाव के लिए अपग्रेड किया गया। असल में मैं उस लिंक को प्रचारित करने का नाटक करता हूं और मुझे अपनी वेबसाइट के साथ पैसा नहीं मिलता है, मैं समुदाय को वापस देने के लिए अपना ज्ञान साझा करना चाहता हूं, और मुझे सच में आश्वस्त है कि लेख अन्य लोगों की मदद कर सकता है जो संघर्ष कर रहे हैं (मेरे जैसे :) डीबीडी :: ओरेकल स्थापित करने की कोशिश कर रहा है। –

+0

कोई भी मौका आप 12.x के लिए उस दस्तावेज़ को अपडेट कर सकते हैं? 12।2 कम से कम एक .mk फ़ाइल शामिल न करें, और "डेमो" एक ऐसा कुछ है जिसके बारे में बिल्ड शिकायत करता है। सीपीएएन मॉड्यूल 2014 से कहीं ज्यादा हाल के लिए क्यों काम नहीं कर सकता? – Otheus

+0

हाय @ ओथस मुझे खेद है, लेकिन मैं हाल ही में ओरेकल का उपयोग नहीं कर रहा हूं इसलिए मेरे पास परीक्षण करने के लिए ओरेकल 12 नहीं है। लेख ओरेकल 11 जी के लिए लिखा गया था, लेकिन, मैं उस एमएम फ़ाइल को नहीं समझता जिसे आप संदर्भित कर रहे हैं क्योंकि आलेख निर्देशों में कोई उल्लेख नहीं है। आप किस आलेख के निर्देश चरण पर पहुंचे? आपको कौन सी त्रुटि मिली? शायद मैं भी मदद कर सकता हूं। –

0

slayedbylucifer उत्तर के लिए थोड़ा सा जोड़ा। मुझे प्रश्न में उल्लिखित एक ही समस्या थी। मैंने slayedbylucifer द्वारा वर्णित सभी चरणों को किया है। लेकिन फिर भी मैंने कहा here तरह समस्या हो गया है: त्रुटि है कि चरण के बाद

ln -s /opt/oracle/app/oracle/product/<YOUR_ORACLE_VERSION>/client_1/lib/libclntsh.so $ORACLE_HOME/libclntsh.so* 

ऊपर से (-lclntsh नहीं मिल सकता है) तय किया गया था:

/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: skipping incompatible /opt/oracle/app/oracle/product/11.2.0/client_1/lib//libclntsh.so when searching for -lclntsh 
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: cannot find -lclntsh 

तो मैं निम्नलिखित प्रतीकात्मक कड़ी बनाया। मेक कमांड का निष्पादन बिना किसी त्रुटि के था।

मेरे पास अभी भी एकमात्र समस्या यह है कि मुझे समझ में नहीं आता कि यह प्रतीकात्मक लिंक क्यों आवश्यक है।

2

यम पैकेज और सीपीएएन का उपयोग करके मैंने सेंटोस 7.2 पर क्या किया है। यह मानता है कि आप ओरेकल संस्करण 12.1 का उपयोग कर रहे हैं, लेकिन मुझे लगता है कि अधिकांश संस्करण इस तरह से काम करेंगे।

ओरेकल त्वरित ग्राहक स्थापित करें

yum install oracle-instantclient12.1-basic-12.1.0.2.0-1 oracle-instantclient12.1-devel-12.1.0.2.0-1 oracle-instantclient12.1-sqlplus-12.1.0.2.0-1 

कॉपी डेमो फ़ाइलें

स्थापित की उम्मीद * .mk फ़ाइल /usr/share/oracle/12.1/client64 लेकिन में होना बनाना yum पैकेज इंस्टॉल उन्हें /usr/share/oracle/12.1/client64/demo में रखता है।

sudo cp /usr/share/oracle/12.1/client64/demo/* /usr/share/oracle/12.1/client64 

संशोधित .bashrc

में निम्नलिखित पंक्तियां जोड़ें अपने ~/.bashrc

export ORACLE_HOME=/usr/lib/oracle/12.1/client64 
export LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/lib 
export PATH=$ORACLE_HOME:$PATH 

अब फ़ाइल

source ~/.bashrc 

अद्यतन CPAN और DBI स्रोत

अद्यतन CPAN और DBI नवीनतम

को
cpan> install CPAN 
cpan> reload cpan 
cpan> install DBI 

DBD :: ओरेकल

cpan> install DBD::Oracle 
+0

12.2 64 बिट के लिए काम करता है लेकिन चेतावनियां/त्रुटियां हैं। (आकार_टी मुख्य रूप से% d प्रारूप के साथ संघर्ष करता है।) बहुत धन्यवाद – Otheus

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