在 Centos 上安装 Oracle cilent 和 Perl
Oracle cilent and Perl installation on Centos
我无法安装 DBD-Oracle。
我已经按照以下步骤安装了 oracle 客户端:
我已经下载了即时客户端 ZIP 文件。
将包解压缩到目录 "/opt/oracle/product/instantclient_12_1".
创建了适当的 libclntsh.so
和 libocci.so
链接:
cd /opt/oracle/product/instantclient_12_1
ln -s libclntsh.so.12.1 libclntsh.so
ln -s libocci.so.12.1 libocci.so
设置环境变量LD_LIBRARY_PATH
为第2步创建的目录:
export LD_LIBRARY_PATH=/opt/oracle/product/instantclient_12_1:$LD_LIBRARY_PATH
echo $LD_LIBRARY_PATH
returns:
/opt/oracle/product/instantclient_12_1:/opt/oracle/instantclient_12_1:/usr/lib/oracle/11.2/client64/lib
也将此路径添加到 ldconfig 配置 /etc/ld.so.conf
。
ldconf -v returned
/opt/oracle/product/instantclient_12_1:
libclntsh.so.12.1 -> libclntsh.so.12.1
libociei.so -> libociei.so
liboramysql12.so -> liboramysql12.so
libocijdbc12.so -> libocijdbc12.so
libmql1.so -> libmql1.so
libnnz12.so -> libnnz12.so
libclntshcore.so.12.1 -> libclntshcore.so.12.1
libipc1.so -> libipc1.so
libons.so -> libons.so
libocci.so.12.1 -> libocci.so.12.1
已更新 PATH
环境变量:
export PATH=/opt/oracle/instantclient_12_1:$PATH
现在我正在尝试安装 DBD-Oracle,按照这些步骤
tar xfvz DBD-Oracle.tar.gz
cd DBD-Oracle
perl Makefile.PL
make
make install
无论如何得到这个错误:
Trying to find an ORACLE_HOME
Your LD_LIBRARY_PATH env var is set to ''
The ORACLE_HOME environment variable is not set and I couldn't guess it.
It must be set to hold the path to an Oracle installation directory
on this machine (or a machine with a compatible architecture).
See the appropriate README file for your OS for more information.
ABORTED!
但是这些变量不为空:
echo $LD_LIBRARY_PATH
/opt/oracle/product/instantclient_12_1:/opt/oracle/instantclient_12_1:/usr/lib/oracle/11.2/client64/lib
echo $ORACLE_HOME
/opt/oracle/product/instantclient_12_1/
我一直在 AIX
、CentOS
、RedHat
和 Solaris
上编译 DBD::Oracle
。我建议你制作一个脚本(特别是如果你使用 sudo
来编译这些东西)。这是我用来设置环境变量的脚本(有些是额外的,有些是用于测试的)并制作模块:
# These are usually pre-set in my environment:
export ORACLE_PATH=/usr/lib/oracle/11.2/client64/bin
export ORACLE_BASE=/usr/lib/oracle
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export ORACLE_DOC=/usr/lib/oracle/11.2/client64/doc
export ORACLE_SID=Mydbsid
# My PATH include my /perl/bin directory
# My script starts here:
ulimit
/perl/bin/perl -MCPAN -e 'install(qw(LWP HTTP::Date))'
/perl/bin/perl -MCPAN -e 'install(qw(Bundle::CPAN))'
/perl/bin/perl -MCPAN -e 'install(qw(Bundle::libnet Bundle::LWP Bundle::DBD::CSV Bundle::Net::LDAP))'
export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
export TNS_ADMIN=my_tnsnames.ora_directory
export ORACLE_USERID=Username/Password@Mydbsid
/perl/bin/perl -MCPAN -e 'install(qw(DBD::Oracle))'
export DBICTEST_ORA_DSN mydbsid
export DBICTEST_ORA_USER Username
export DBICTEST_ORA_PASS Password
export DBI_DRIVER Oracle
export DBI_DATABASE Mydbsid
export DBI_USERNAME Username
export DBI_PASSWORD Password
/perl/bin/perl -MCPAN -e 'install(qw(Time::Piece Date::Simple DateTime::Format::Oracle Math::Base36 Class::DBI::Plugin::DeepAbstractSearch Class::Trigger DBIx::ContextualFetch DBIx::Class))'
/perl/bin/perl -MCPAN -e 'install(qw(Task::Kensho))'
# It continues, but nothing more database-orientated appears later.
后面的环境变量用于测试其他模块(例如DBIx::Class
),这些模块稍后会出现在我的构建中。
我已经为 Oracle 10 和 11 完成了此操作,但还没有为 Oracle 12 完成此操作。
我无法安装 DBD-Oracle。
我已经按照以下步骤安装了 oracle 客户端:
我已经下载了即时客户端 ZIP 文件。
将包解压缩到目录
"/opt/oracle/product/instantclient_12_1".
创建了适当的
libclntsh.so
和libocci.so
链接:cd /opt/oracle/product/instantclient_12_1 ln -s libclntsh.so.12.1 libclntsh.so ln -s libocci.so.12.1 libocci.so
设置环境变量
LD_LIBRARY_PATH
为第2步创建的目录:export LD_LIBRARY_PATH=/opt/oracle/product/instantclient_12_1:$LD_LIBRARY_PATH
echo $LD_LIBRARY_PATH
returns:
/opt/oracle/product/instantclient_12_1:/opt/oracle/instantclient_12_1:/usr/lib/oracle/11.2/client64/lib
也将此路径添加到 ldconfig 配置 /etc/ld.so.conf
。
ldconf -v returned
/opt/oracle/product/instantclient_12_1:
libclntsh.so.12.1 -> libclntsh.so.12.1
libociei.so -> libociei.so
liboramysql12.so -> liboramysql12.so
libocijdbc12.so -> libocijdbc12.so
libmql1.so -> libmql1.so
libnnz12.so -> libnnz12.so
libclntshcore.so.12.1 -> libclntshcore.so.12.1
libipc1.so -> libipc1.so
libons.so -> libons.so
libocci.so.12.1 -> libocci.so.12.1
已更新
PATH
环境变量:export PATH=/opt/oracle/instantclient_12_1:$PATH
现在我正在尝试安装 DBD-Oracle,按照这些步骤
tar xfvz DBD-Oracle.tar.gz
cd DBD-Oracle
perl Makefile.PL
make
make install
无论如何得到这个错误:
Trying to find an ORACLE_HOME
Your LD_LIBRARY_PATH env var is set to ''
The ORACLE_HOME environment variable is not set and I couldn't guess it.
It must be set to hold the path to an Oracle installation directory
on this machine (or a machine with a compatible architecture).
See the appropriate README file for your OS for more information.
ABORTED!
但是这些变量不为空:
echo $LD_LIBRARY_PATH
/opt/oracle/product/instantclient_12_1:/opt/oracle/instantclient_12_1:/usr/lib/oracle/11.2/client64/lib
echo $ORACLE_HOME
/opt/oracle/product/instantclient_12_1/
我一直在 AIX
、CentOS
、RedHat
和 Solaris
上编译 DBD::Oracle
。我建议你制作一个脚本(特别是如果你使用 sudo
来编译这些东西)。这是我用来设置环境变量的脚本(有些是额外的,有些是用于测试的)并制作模块:
# These are usually pre-set in my environment:
export ORACLE_PATH=/usr/lib/oracle/11.2/client64/bin
export ORACLE_BASE=/usr/lib/oracle
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export ORACLE_DOC=/usr/lib/oracle/11.2/client64/doc
export ORACLE_SID=Mydbsid
# My PATH include my /perl/bin directory
# My script starts here:
ulimit
/perl/bin/perl -MCPAN -e 'install(qw(LWP HTTP::Date))'
/perl/bin/perl -MCPAN -e 'install(qw(Bundle::CPAN))'
/perl/bin/perl -MCPAN -e 'install(qw(Bundle::libnet Bundle::LWP Bundle::DBD::CSV Bundle::Net::LDAP))'
export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
export TNS_ADMIN=my_tnsnames.ora_directory
export ORACLE_USERID=Username/Password@Mydbsid
/perl/bin/perl -MCPAN -e 'install(qw(DBD::Oracle))'
export DBICTEST_ORA_DSN mydbsid
export DBICTEST_ORA_USER Username
export DBICTEST_ORA_PASS Password
export DBI_DRIVER Oracle
export DBI_DATABASE Mydbsid
export DBI_USERNAME Username
export DBI_PASSWORD Password
/perl/bin/perl -MCPAN -e 'install(qw(Time::Piece Date::Simple DateTime::Format::Oracle Math::Base36 Class::DBI::Plugin::DeepAbstractSearch Class::Trigger DBIx::ContextualFetch DBIx::Class))'
/perl/bin/perl -MCPAN -e 'install(qw(Task::Kensho))'
# It continues, but nothing more database-orientated appears later.
后面的环境变量用于测试其他模块(例如DBIx::Class
),这些模块稍后会出现在我的构建中。
我已经为 Oracle 10 和 11 完成了此操作,但还没有为 Oracle 12 完成此操作。