Portál AbcLinuxu, 10. května 2025 11:49

Dotaz: Instalace DBD::Oracle na AMD64 (Oracle XE)

16.11.2008 02:24 Jan Grmela | skóre: 45 | blog: Kilo šťávy z lachtana | Brno
Instalace DBD::Oracle na AMD64 (Oracle XE)
Přečteno: 786×
Odpovědět | Admin
Příloha:

Dobrý den, mám následující problém:

V klidu jsem na svůj čerstvý Centos 5.2 x86_64 nainstaloval RPM Oracle XE z webu. Všechno funguje normálně, webová správa běží. Jenže bych moc rád používal DBI rozhraní z Perlu, k čemuž je samozřejmě potřeba DB driver. Když jsem se ale pokusil nainstalovat CPANem DBD::Oracle, nezdařilo se to. GCC mám nainstalované, řídil jsem se radami z různých mailing listů ohledně nastavení PATH, ORACLE_HOME a podobně. Také jsem změnil hodnotu v /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/ctx/lib/env_ctx.mk z LIBDIR=lib na LIBDIR=lib32, jak se doporučuje tady, nic z toho ale nepomohlo a kompilace stále selhává na stejné chybě (celý výpis v příloze):

/usr/bin/ld: skipping incompatible /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib//libclntsh.so when searching for -lclntsh
/usr/bin/ld: cannot find -lclntsh
collect2: ld returned 1 exit status
make: *** [blib/arch/auto/DBD/Oracle/Oracle.so] Error 1

Nenapadá mě žádné rozumné řešení vzniklé situace (kromě přeinstalace systému na 32-bit) -- Oracle XE je nabízen jen ve 32-bit verzi. A pořizovat si licenci na Standard Edition One za 15k kvůli projektu do školy se mi opravdu nechce :-)

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

16.11.2008 09:22 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Instalace DBD::Oracle na AMD64 (Oracle XE)
Odpovědět | | Sbalit | Link | Blokovat | Admin
tahle chyba znamena ze nemate prislusnou knihovnu v prislusne bitove verzi. odhadoval bych to tak, ze mate 64bit perl a 32bit oracle vcetne client knihoven, coz samozrejme dohromady slinkovat nelze. potrebujete 64bit oracle nebo 32bit perl. (nebo zkusit nejakej perl-only driver, coz ale nevim jestli existuje)
In Ada the typical infinite loop would normally be terminated by detonation.
16.11.2008 12:01 Jan Grmela | skóre: 45 | blog: Kilo šťávy z lachtana | Brno
Rozbalit Rozbalit vše Re: Instalace DBD::Oracle na AMD64 (Oracle XE)
To samozřejmě vím. 32-bit Perl nepřichází v úvahu kvůli tomu, že na Perlu závisí půlka systému a 64-bit Oracle neexistuje (v této verzi).

Zatím to vypadá tak, že budu muset přeinstalovat systém. Naštěstí to není zas taková tragedie, jelikož jsem ho nainstaloval teprv včera a ještě nic moc nenastavoval.
16.11.2008 12:24 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
Rozbalit Rozbalit vše Re: Instalace DBD::Oracle na AMD64 (Oracle XE)
Odpovědět | | Sbalit | Link | Blokovat | Admin
pořizovat si licenci na Standard Edition One za 15k kvůli projektu do školy se mi opravdu nechce :-)
Noo, for the purpose of developing a single prototype of your application si můžeš "velký" Oracle stáhnout zdarma, stačí registrace :-)
Ještě na tom nejsem tak špatně, abych četl Viewegha.
16.11.2008 14:53 Jan Grmela | skóre: 45 | blog: Kilo šťávy z lachtana | Brno
Rozbalit Rozbalit vše Re: Instalace DBD::Oracle na AMD64 (Oracle XE)
Super, to jsem nevěděl. Tím pádem je problém vyřešen. Díky!
18.11.2008 18:01 Ivan
Rozbalit Rozbalit vše Re: Instalace DBD::Oracle na AMD64 (Oracle XE)
Na tohle je oracle instantclient. Ma to cca 50MB. Jsou v tom klientsky klihovny, sdk(headery) a sqlplus. tnsping bohuzel chybi. InstantClient je ve verzi 32/64bit 10g/11g. Dokonce to ma .rpm a .deb balicky.

Ivan
18.11.2008 23:16 Ruda
Rozbalit Rozbalit vše Re: Instalace DBD::Oracle na AMD64 (Oracle XE)
Na serveru to nepujde bez souhlasne stejnebitove verze jako je hostitelsky system pro databazi. A co se tyce klienta, pozor na 10g a starsi libstdc++ nez je v systemu (binarky klientskych knihoven jsou u 10g se starsi libstdc++ kompilovany). Pri vyvoji s OCI/OCCI a kombinaci ruznych verzi libstdc++ beha mraz po zadech na nepochopitelnych padech. 11g klient s aktualni libstdc++.so.6 to resi..
19.11.2008 15:33 Ivan
Rozbalit Rozbalit vše Re: Instalace DBD::Oracle na AMD64 (Oracle XE)
Posledni problem s OCCI byl v tom, ze g++ zmenilo ABI pro vyjimky. Pokud OCCI vyvolalo vyjimku, nebylo mozne ji odchytit v kodu kompilovanem novejsim g++ a vse skoncilo segfaultem. Cele se to chovalo velice divne v gdb z tech padu bylo dost zmateny. Oracle je bohuzel dost konzervativni v nevydava novejsi verze OCCI pokazde kdyz g++ zmeni ABI.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.