Fehler beim installieren von DBD::Oracle
Ich versuche zu installieren Perl Modul DBD::Oracle auf meinem RHEL6.1 server. Dabei habe ich folgende Schritte:
-
Installation des folgenden RPMs:
- oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.U /min
- oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.U /min
- oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.U /min
-
Exportieren von Umgebungsvariablen
export ORACLE_HOME=/usr/lib/oracle/12.1/client64
export LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/lib
-
Installieren von DBD::Oracle
cpan -i DBD::Oracle
Dabei, es gibt folgende Fehlermeldung:
Installing on a linux, Ver#2.6
Using Oracle in /usr/lib/oracle/12.1/client64
DEFINE _SQLPLUS_RELEASE = "1201000200" (CHAR)
Oracle version 12.1.0.2 (12.1)
Unable to locate an oracle.mk or other suitable *.mk
file in your Oracle installation. (I looked in
/usr/lib/oracle/12.1/client64/rdbms/demo/demo_xe.mk /usr/lib/oracle/12.1/client64/rdbms/lib/oracle.mk /usr/lib/oracle/12.1/client64/rdbms/demo/oracle.mk /usr/lib/oracle/12.1/client64/rdbms/demo/demo_rdbms.mk /usr/lib/oracle/12.1/client64/rdbms/demo/demo_rdbms64.mk /usr/lib/oracle/12.1/client64/rdbms/lib/ins_rdbms.mk /usr/share/oracle/12.1/client64/demo.mk under /usr/lib/oracle/12.1/client64)
The oracle.mk (or demo_rdbms.mk) file is part of the Oracle
RDBMS product. You need to build DBD::Oracle on a
system which has one of these Oracle components installed.
(Other *.mk files such as the env_*.mk files will not work.)
Alternatively you can use Oracle Instant Client.
In the unlikely event that a suitable *.mk file is installed
somewhere non-standard you can specify where it is using the -m option:
perl Makefile.PL -m /path/to/your.mk
See the appropriate README file for your OS for more information and some alternatives.
at Makefile.PL line 1187.
Warning: No success on command[/usr/bin/perl Makefile.PL INSTALLDIRS=site]
PYTHIAN/DBD-Oracle-1.74.tar.gz
/usr/bin/perl Makefile.PL INSTALLDIRS=site -- NOT OK
Running make test
Make had some problems, won't test
Running make install
Make had some problems, won't install
Was falsch bei der installation? Ich folgte diese guide.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nach der installation und Einrichtung des Oracle Instant Client verwenden, verwenden Sie die normalen build-Schritte ohne das cpan-tool, und übergeben Sie die
-l
option, um die Makefile.PLLaden Sie die
tar.gz
- Paket und entpacken Sie esBauen
Installieren
Eigentlich, wenn Sie möchten, verwenden Sie die RPM-Pakete und cpan zu installieren, müssen Sie die Einstellung ORACLE_HOME auf den lib-Ordner, nicht nur client64 und fügen Sie sqlplus auf den Weg :
mit, dass
cpan -i DBD::Oracle
gibt keine Fehler.Das einzige, was der CPAN installer nicht finden können, eine geeignete *.mk-Datei. Oracle muss ein Spiel von Katz und Maus mit der CPAN installer, weil das Installationsprogramm die Suche in mehreren Orten für mehrere Dateinamen.
Ich habe den Befehl
finden, die demo.mk befindet sich jetzt in
/usr/lib/oracle/12.1/client64/demo/
statt/usr/lib/oracle/12.1/client64/
Also erstellte ich einen symbolischen link
- und CPAN-installer gelungen.
War ich in der Lage zu verwenden, CPAN installieren von DBD::Oracle 11.2.0.4 durch die Installation die folgenden 3 instant client RPM-Pakete:
Sobald ich diese installiert, cpan aufbauen konnte. Dies ist mit CentOS 7.3.1611.
Bevor Sie beginnen, müssen Sie:
Download Oracle 12c-instant-client und SDK:
Installieren mit dem Befehl:
sudo apt-get install libaio1
Herunterladen, Auspacken und DBD::Oracle-Paket mit dem Befehl:
cpan get DBD::Oracle
Hast du DBD::Oracle 1.74 + Oracle 12c (12.2.0.1) und Ubuntu-18-Anwendung unter Windows 10, dann müssen Sie mehr verpasst.
Kommentar-Zeile 1613 in Makefile.PL
#local $ENV{PATH} = join $Config{path_sep}, "$OH_path/bin", $OH_path, $ENV{PATH} if $OH;
Ersetzen Zeile 1630
my $sqlplus_release = `sqlplus -S /nolog \@definieren.sql`;
mit den Zeilen
Ausführen Perl-Skript wie:
perl Makefile.PL -l
Ersetzen Zeilen 569-581 (weil Ubuntu unter Windows nicht unterstützt Pfade mit Doppelpunkt) mit den Zeilen unter:
lib/DBD/Oracle.pm $(INST_MAN3DIR)/DBD_Oracle.$(MAN3EXT) \
lib/DBD/Oracle/GetInfo.pm $(INST_MAN3DIR)/DBD_Oracle_GetInfo.$(MAN3EXT) \
lib/DBD/Oracle/Object.pm $(INST_MAN3DIR)/DBD_Oracle_Object.$(MAN3EXT) \
lib/DBD/Oracle/Troubleshooting.pod $(INST_MAN3DIR)/DBD_Oracle_Troubleshooting.$(MAN3EXT) \
lib/DBD/Oracle/Troubleshooting/Aix.pod $(INST_MAN3DIR)/DBD_Oracle_Troubleshooting_Aix.$(MAN3EXT) \
lib/DBD/Oracle/Troubleshooting/Cygwin.pod $(INST_MAN3DIR)/DBD_Oracle_Troubleshooting_Cygwin.$(MAN3EXT) \
lib/DBD/Oracle/Troubleshooting/Hpux.pod $(INST_MAN3DIR)/DBD_Oracle_Troubleshooting_Hpux.$(MAN3EXT) \
lib/DBD/Oracle/Troubleshooting/Linux.pod $(INST_MAN3DIR)/DBD_Oracle_Troubleshooting_Linux.$(MAN3EXT) \
lib/DBD/Oracle/Troubleshooting/Macos.pod $(INST_MAN3DIR)/DBD_Oracle_Troubleshooting_Macos.$(MAN3EXT) \
lib/DBD/Oracle/Troubleshooting/Sun.pod $(INST_MAN3DIR)/DBD_Oracle_Troubleshooting_Sun.$(MAN3EXT) \
lib/DBD/Oracle/Troubleshooting/Vms.pod $(INST_MAN3DIR)/DBD_Oracle_Troubleshooting_Vms.$(MAN3EXT) \
lib/DBD/Oracle/Troubleshooting/Win32.pod $(INST_MAN3DIR)/DBD_Oracle_Troubleshooting_Win32.$(MAN3EXT) \
lib/DBD/Oracle/Troubleshooting/Win64.pod $(INST_MAN3DIR)/DBD_Oracle_Troubleshooting_Win64.$(MAN3EXT)
make && make test
sudo make install
Und hoffe, dass hast du alle Voraussetzungen installiert sind, bevor Sie beginnen.