[ZBX-16346] Can't configure and build zabbix-server for Oracle Instant Client for Linux x86-64 v18.5 Created: 2019 Jul 05  Updated: 2024 Apr 10  Resolved: 2019 Aug 16

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P), Server (S)
Affects Version/s: 4.0.10, 4.2.4
Fix Version/s: 4.0.12rc1, 4.2.6rc1, 4.4.0alpha2, 4.4 (plan)

Type: Problem report Priority: Trivial
Reporter: Mikhail Grigorev Assignee: Aleksejs Sestakovs
Resolution: Fixed Votes: 0
Labels: oracle
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Oracle Linux 7.6, Oracle Instant Client for Linux x86-64 v18.5.0.0.0


Attachments: Text File config.log    
Team: Team C
Sprint: Sprint 55 (Aug 2019), Sprint 54 (Jul 2019)
Story Points: 0.5

 Description   

Steps to reproduce:
1. Use Oracle Linux 7.6 x86_64
2. Download and install Oracle Instant Client for Linux x86-64 v18.5.0.0., Link: https://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
2. Download latest zabbix src v4.2.4
3. Run:

cd zabbix-4.2.4
./configure --enable-server --with-libcurl --with-libxml2 --with-net-snmp --with-openssl --sysconfdir=/etc/zabbix --with-oracle --with-oracle-lib=/usr/lib/oracle/18.5/client64/lib --with-oracle-include=/usr/include/oracle/18.5/client64

Result:

...
checking for libperfstat 5.2.0.40 fileset... no
checking for libperfstat 5.3.0.60 fileset... no
checking for architecture... linux (linux-gnu)
checking for the linux kernel version... unknown family (3.10.0-957.21.3.el7.x86_64)
checking size of void *... 8
checking for Oracle OCI headers in /usr/include/oracle/18.5/client64... yes
expr: syntax error
checking if Oracle OCI version is >= 10.0... no
configure: WARNING: Oracle version unknown, probably OCI older than 10.2 is available
checking for Oracle OCI version >= 10.x to use -lnnz1x flag... expr: syntax error
./configure: line 8711: test: : integer expression expected
no
checking for Oracle OCI libraries in /usr/lib/oracle/18.5/client64/lib... not found
checking for Oracle support... no
configure: error: Oracle OCI library not found


 Comments   
Comment by Alexey Pustovalov [ 2019 Jul 05 ]

Hello! Please attach config.log to the issue.

Comment by Mikhail Grigorev [ 2019 Jul 06 ]

Hi, config.log is attached.

Comment by Alexey Pustovalov [ 2019 Jul 06 ]

Try this one:

LD_LIBRARY_PATH="/usr/lib/oracle/18.5/client64/lib/" ./configure --enable-server --with-libcurl --with-libxml2 --with-net-snmp --with-openssl --sysconfdir=/etc/zabbix --with-oracle --with-oracle-lib=/usr/lib/oracle/18.5/client64/lib --with-oracle-include=/usr/include/oracle/18.5/client64
LD_LIBRARY_PATH="/usr/lib/oracle/18.5/client64/lib/" make
Comment by Mikhail Grigorev [ 2019 Jul 08 ]

Yes, you can do this and build a zabbix-server, but this is a non-standard solution, because requires the user to specify an additional LD_LIBRARY_PATH setting.

For Oracle Instant Client 12.2, LD_LIBRARY_PATH is not required.

If you take a deeper look at the problem, you’ll see that starting with Oracle 18c, the OCI_MAJOR_VERSION and OCI_MINOR_VERSION macro definitions no longer exist in the /usr/include/oracle/18.5/client64/oci.h, they are now in file /usr/include/oracle/18.5/client64/ociver.h

The correct solution is to modify the configure script so that it takes into account the presence of the /usr/include/oracle/18.5/client64/ociver.h file and parses this file.

Comment by Alexey Pustovalov [ 2019 Jul 08 ]

Yes, I agree with you. Anyway compilation is ok with additional flags, but detection Oracle version is not correct since 18 version.

Comment by Aleksejs Sestakovs [ 2019 Aug 05 ]

Available in versions:

  • 4.0.12rc1 c9c53cb5f5
  • 4.2.6rc1 7f4bd260b7
  • 4.4.0alpha2 (trunk) 38f2d3f5ea
Generated at Thu Apr 25 11:42:31 EEST 2024 using Jira 9.12.4#9120004-sha1:625303b708afdb767e17cb2838290c41888e9ff0.