New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Required Oracle Instant Client packages on Linux #598

Open
mloskot opened this Issue Sep 24, 2017 · 2 comments

Comments

Projects
None yet
2 participants
@mloskot
Member

mloskot commented Sep 24, 2017

Question

Ubuntu Help gives a very good guide for an average Joe on Linux https://help.ubuntu.com/community/Oracle%20Instant%20Client

What Oracle Instant Client packages who wants to build SOCI with Oracle support needs to install, *-basic|devel|odbc-*?

Answer

sudo alien -i oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm

  • Installing *-devel-* only deploys the following libraries which are not enough for SOCI to enable Oracle support:
tree /usr/lib/oracle/12.2/
/usr/lib/oracle/12.2/
└── client64
    └── lib
        ├── libclntshcore.so -> libclntshcore.so.12.1
        ├── libclntsh.so -> libclntsh.so.12.1
        ├── libocci.so -> libocci.so.12.1
        ├── libsqora.so.12.1
        └── ottclasses.zip
  • Installing *-basic-* adds a few more, namely, libnnz which is required:
sudo alien -i oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm

tree /usr/lib/oracle/12.2/
/usr/lib/oracle/12.2/
└── client64
    ├── bin
    │   ├── adrci
    │   └── genezi
    └── lib
        ├── libclntshcore.so -> libclntshcore.so.12.1
        ├── libclntshcore.so.12.1
        ├── libclntsh.so -> libclntsh.so.12.1
        ├── libclntsh.so.12.1
        ├── libipc1.so
        ├── libmql1.so
        ├── libnnz12.so
        ├── libocci.so -> libocci.so.12.1
        ├── libocci.so.12.1
        ├── libociei.so
        ├── libocijdbc12.so
        ├── libons.so
        ├── liboramysql12.so
        ├── libsqora.so.12.1
        ├── ojdbc8.jar
        ├── ottclasses.zip
        └── xstreams.jar

Once both, *-devel-* and *-basic-* packages are installed, SOCI detects Oracle client libraries:

-- Oracle:
-- ORACLE_HOME=
-- ORACLE_INCLUDE_DIR                       = /usr/include/oracle/12.2/client64
-- ORACLE_LIBRARIES                         = /usr/lib/oracle/12.2/client64/lib/libclntsh.so /usr/lib/oracle/12.2/client64/lib/libocci.so /usr/lib/oracle/12.2/client64/lib/libnnz12.so

Task

  • Are the conclusions above correct?
  • Should we include such detailed instructions in documentation?

mloskot added a commit that referenced this issue Sep 24, 2017

[CMake] Add /usr/lib/oracle/*/client${LIB_SUFFIX} to searched paths
These are locations where Oracle Instant Client installed from RPM
deploys files. See #598
@SisayFe

This comment has been minimized.

SisayFe commented Oct 16, 2018

How will this work out on Centos, Could you help giving us a guide?

@mloskot

This comment has been minimized.

Member

mloskot commented Oct 16, 2018

@SisayFe No idea. I have never used any RPM-based Linux. I'd suggest to follow Oracle's official installation instructions first.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment