Forum OpenACS Development: Re: Fresh install of OpenACS 5.10 on Oracle 19c

Posted by Raul Rodriguez on
On OpenSuse Leap 15.3 installation tried ORACLE openacs install and got the following error:

[vagrant@oracle-19c-vagrant modules]$ cd ns
nsaccess/   nscoap/     nsdbimy/    nsdbtds/    nsfortune/  nsldapd/    nsoracle/   nsshell/    nssys/      nsvfs/
nsaspell/   nsconf/     nsdbipg/    nsdhcpd/    nsgdchart/  nsloopctl/  nsphp/      nssip/      nssyslogd/  nswebpush/
nsauthpam/  nsdbbdb/    nsdbmysql/  nsdns/      nsicmp/     nsmemcache/ nsradiusd/  nssmtpd/    nstftpd/    nszlib/
nschartdir/ nsdbi/      nsdbpg/     nsexample/  nsimap/     nsocaml/    nsrtsp/     nssnmp/     nstk/
nsclamav/   nsdbilite/  nsdbsqlite/ nsexpat/    nsldap/     nsodbc/     nssavi/     nsstats/    nsudp/
[vagrant@oracle-19c-vagrant modules]$ cd nsoracle/
[vagrant@oracle-19c-vagrant nsoracle]$ ls
BUGS  ChangeLog  doc  Makefile  Makefile.win32  nsoracle.c  nsoracle.h  plsql.tcl  README  test  TODO  win32
[vagrant@oracle-19c-vagrant nsoracle]$ sudo make && make install
gcc -std=gnu11 -I/sdk/include -I/rdbms/demo -I/rdbms/public -I/network/public -I/plsql/public  -O2 -fomit-frame-pointer -Wall -fPIC  -pipe  -DNDEBUG -DSYSTEM_MALLOC -std=c99 -I/usr/local/ns/include -I"/usr/local/ns/include"   -DHAVE_CONFIG_H    -c -o nsoracle.o nsoracle.c
In file included from nsoracle.c:14:0:
nsoracle.h:19:17: fatal error: oci.h: No such file or directory
 #include gt oci.h lt
compilation terminated.
make: *** [nsoracle.o] Error 1
[vagrant@oracle-19c-vagrant nsoracle]$

Any help is appreciated.

Posted by Antonio Pisano on
Dear Raul,

I cannot comment on the vagrant machine setup from the tutorial, but I have recently installed an OpenACS instance together with the Oracle driver and this worked fine (note that it was a Postgres OpenACS using the Oracle driver only to access some tables from a remote Oracle and no vagrant was involved).

Summarizing, these were the steps (on the machine running NaviServer):
* download basic and sdk from
* compile nsoracle located in the NaviServer scr folder following the instructions in the nsoracle README (see also the tutorial for pointers). Basically, you want to point the compiler to your basic and sdk installation from before.

It could be that the makefile does not find the basic and sdk installations and some massaging of the paths will do.

Hope this helps

Posted by Gustaf Neumann on
Dear Raul,

I am currently on vacation, so here is just a short replay. This error message means, that the include files for Oracle client programs are either missing in your installation, or not found on the default location(e.g. these are on a different path).

Note, that according to nsoracle/README, one has to set ORACLE_HOME variable first.

From the README file:

  Compilation works for Oracle with Oracle client libs
  Version (instant client package and
  instant client package SDK, 64-bit). After downloading from e.g.,
  install this library e.g. under /usr/local/src/oracle
  and set ORACLE_HOME accordingly.

     export ORACLE_HOME=/usr/local/src/oracle/instantclient_19_8/

  After downloading the client libraries, ORACLE_HOME should include

     # includes: under $ORACLE_HOME/sdk/include/
     # libraries: $ORACLE_HOME/lib/

  To build and install the binary under NaviServer, use e.g.

     make install