
On Tue, 24 Jun 2008, Alistair Bayley wrote:
2008/6/24 Henning Thielemann
: When you run configure, you should get output that says: Using Oracle: <path>
What is <path>?
I don't get these questions.
Sorry. I was really asking (not very clearly): what is the output from "runhaskell Setup.hs configure -foracle" ?
It doesn't output the Oracle path. :-(
Ah, I must have set ORACLE_HOME for the Takusen installation ... should be documented. However in my case, this doesn't change the path used by Takusen's Setup/install.
Well, you don't actually need it set for the Takusen install (it doesn''t use it). But $ORACLE_HOME/bin should be in your path. And it needs to contain the executable sqlplus. Can you run sqlplus?
Yes, I have successfully connected to a database with sqlplus, already.
If sqlplus is not in my path then I get this error in the configure step, because I have specified sqlplus as a buildtool in Takusen.cabal:
setup configure -foracle Configuring Takusen-0.8.2... setup: sqlplus is required but it could not be found.
Note: sqlplus isn't really needed to build; this is just a validation step, to check you have $ORACLE_HOME/bin in your path.
I don't get an error. sqlplus is in $ORACLE_HOME/bin, but the RPM package also sets a link from /usr/bin/sqlplus to $ORACLE_HOME/bin, thus 'sqlplus' is in the $PATH also without $ORACLE_HOME. (But sqlplus cannot be started until the LD_LIBRARY_PATH is extended to Oracles libraries.)
$ echo $ORACLE_HOME /usr/lib/oracle/10.2.0.4/client $ ls $ORACLE_HOME bin lib $ ll $ORACLE_HOME/lib ... I assume that libociei.so is the library I need.
Actually it's libclntsh.so. You need to change the oracle section in Takusen.cabal to this:
If flag(oracle) Exposed-modules: Database.Oracle.Enumerator , Database.Oracle.OCIConstants , Database.Oracle.OCIFunctions Build-Tools: sqlplus If os(windows) Extra-Libraries: oci Else Extra-Libraries: clntsh
Your $ORACLE_HOME installation looks fairly normal, if somewhat minimal. I would normally expect to see sqlplus, and maybe some other executables, like tnsping. And a folder $ORACLE_HOME/oci/include, which contains the OCI header files.
They got installed to: /usr/include/oracle/10.2.0.4/client/ That is, they are not in $ORACLE_HOME. :-(
$ runhaskell Setup.hs configure --user -f oracle Configuring Takusen-0.8.2...
Here, I would expect to see "Using Oracle: /usr/lib/oracle/10.2.0.4/client"
It does not tell me. :-(
After setup configure you can say: $ runhaskell Setup.hs register --gen-pkg-config
and then take a look at the generated Takusen-0.8.2.conf. Check the library-dirs and include-dirs fields.
Takusen-0.8.2.conf and dist/installed-pkg-config contain the same. They contain include-dirs: /usr/oci independent from my setting of ORACLE_HOME. As I said, I cannot manually fix dist/installed-pkg-config, because it gets overwritten by 'Setup install'.