laurenz / oracle_fdw

PostgreSQL Foreign Data Wrapper for Oracle
http://laurenz.github.io/oracle_fdw/
Other
469 stars 153 forks source link

QUESTION: Extension runtime dependencies #654

Closed AmebaBrain closed 3 months ago

AmebaBrain commented 3 months ago

In "Installation Requirements" section it's clearly stated that oracle instant client is a dependency. What is unclear is it compile or runtime dependency.

Oracle instant client with sdk takes about 250 Mb in size. Majority of its size are taken by two libraries: libociei.so and libclntsh.so.

Could you please clarify, does whole oracle client installation is required as a runtime dependency? If not, what is the minimal list of oracle client libraries are required?

-rwxr-xr-x 1 root root 137M Jan  4 16:33 libociei.so
-rwxr-xr-x 1 root root  81M Jan  4 16:33 libclntsh.so.21.1

root@e785ee57c306:/usr/lib/oracle/client# du -h .
3.4M    ./sdk/include
72K     ./sdk/demo
16K     ./sdk/admin
3.7M    ./sdk
8.0K    ./network/admin
12K     ./network
253M    .
laurenz commented 3 months ago

You can use any Oracle client with oracle_fdw. For building, you additionally need the "SDK" package, but not at runtime.

You will need the complete Oracle client with oracle_fdw. If you are using Instant Client, consider the "BasicLite" version, unless you have to support locales or encodings it does not provide.

It is quite likely that not all files are actually needed for oracle_fdw to work, but since Oracle is closed source software, it is a bit hard to say which ones.

My advice is not to play with that and to install the complete client. As you correctly observe, libclntsh.so and libociei.so make up the lion's share, and these two are definitely needed. So don't worry about the rest. Oracle is software bloat; you'll have to accept that if you want to use it.

laurenz commented 3 months ago

Can we close this issue?

AmebaBrain commented 3 months ago

Yes, sure. Thanks for clarifications!