On Tue, 24 Jun 2008, Alistair Bayley wrote:
2008/6/24 Henning Thielemann <[EMAIL PROTECTED]>:
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'.
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe