在Linux上安装oci8

1 背景

之前公司里有一个使用Go的Prometheus Exporter项目,由于项目中使用了rana/ora.v4依赖来连接Oracle数据库,而这个依赖本身又依赖于Oracle的oci8。

由于多个产品线依赖于这个项目,而维护项目的老哥已经离职,导致没有人知道这玩意怎么编译,因此需要重新找到编译此项目的方法。

2 环境

Linux CentOS
go1.13.5 linux/amd64

3 安装oci-8

3.1 下载rpm包

要安装oci-8,首先需要Oracle的Instant Client Package里12版本的basic和dev模块,下载地址。

basic

dev

下载需要oracle帐户,自行注册即可;下载链接选择rpm包。

3.2 安装rpm包

将oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm和oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm下载到随便哪个目录下后,
执行

rpm -i oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm
rpm -i oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm

进行安装。
执行

rpm -ql oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64
rpm -ql oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64

查询安装地址。

3.3 配置pkg-config

mkdir -p /usr/lib/pkgconfig/
touch oci8.pc

oci8.pc的内容如下所示:

libdir=/usr/lib/oracle/12.2/client64/lib
includedir=/usr/include/oracle/12.2/client64/

glib_genmarshal=glib-genmarshal
gobject_query=gobject-query
glib_mkenums=glib-mkenums

Name: oci8
Description: oci8 library
Libs: -L${libdir} -lclntsh -locci
Cflags: -I${includedir}
Version: 12.2

在.bash_profile或.bash_rc里添加下列语句,执行source使其生效:

export PKG_CONFIG_PATH=/usr/lib/pkgconfig/

3.4 配置动态链接库

在/etc/ld.so.conf.d/目录下创建文件oracle.conf,内容如下:

/usr/lib/oracle/12.2/client64/lib

然后执行ldconfig

4 执行项目编译

至此项目需要的oci8依赖就搞定了。我们项目中直接存放了prometheus的编译工具——promu,为项目配置好目录结构后,执行./promu build即可完成编译。

你可能感兴趣的:(在Linux上安装oci8)