美文网首页
在Linux上安装oci8

在Linux上安装oci8

作者: 猫和芝士蛋糕 | 来源:发表于2019-12-30 12:49 被阅读0次

    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

          本文链接:https://www.haomeiwen.com/subject/vgnpoctx.html