On 06/16/2010 05:14 AM, Martin Evans wrote:
> Benjamin Mark wrote:
>> "Bob McGowan" <bob_mcgo...@symantec.com> wrote in message 
>> news:4c110b04.60...@symantec.com...
>>> On 06/09/2010 08:43 AM, Benjamin Mark wrote:
>>>> Hello,
>>>>
>>>> I wan't to install the DBD::Oracle package on Ubuntu 8.04 LTS.
>>>> I've installed a Oracle 10gR2 database (not the client) which is running
>>>> well.
>>>>
>>>> Everytime I wan't to install the package I got the message:
>>>>
>>>> #####################################################################
>>>> Removing previously used /home/administrator/.cpan/build/DBD-Oracle-1.24

<<--Deleted on purpose-->>

>> thx for your answer. Yes the oracle 10g is on the same machine.
>> But for any reason the installer/compiler can't see the right libraries 
>> packages but the path is definetivly the right one.
>> In the maintime I've succeeded to the tell the user the right environment 
>> variables but the installer still has problems.
>>
>> #####################################################################
>>   CPAN.pm: Going to build P/PY/PYTHIAN/DBD-Oracle-1.24b.tar.gz
>>
>> Argument "6.30_01" isn't numeric in subroutine entry at Makefile.PL line 10
>>         main::BEGIN() called at /usr/share/perl/5.8/ExtUtils/MakeMaker.pm 
>> line 10
>>         eval {...} called at /usr/share/perl/5.8/ExtUtils/MakeMaker.pm line 
>> 10
>> Using DBI 1.601 (for perl 5.008008 on i486-linux-gnu-thread-multi) installed 
>> in /usr/lib/perl5/auto/DBI/
>> Argument "6.30_01" isn't numeric in numeric ge (>=) at Makefile.PL line 61.
>>
>> Configuring DBD::Oracle for perl 5.008008 on linux 
>> (i486-linux-gnu-thread-multi)
>>
>> Remember to actually *READ* the README file! Especially if you have any 
>> problems.
>>
>>   The ORACLE_HOME environment variable value (/home/oracle/product/10gR2) is 
>> not valid.

<<--Deleted on purpose-->>

>>
>>
> 
> I find the easiest way to get DBD::Oracle working is this:
> 
> o get Oracle InstantClient for your platform
> o unzip it somewhere (perhaps inside /home/oracle on your machine)
> o make sure all dirs and files in the instantclient dir are readable by
> the users and installers
> o set LD_LIBRARY_PATH to point at instant client dir
>   e.g., export LD_LIBRARY_PATH=/home/oracle/instantclient_11_1/
> o download DBD::Oracle, untar it and change into created dir
> o run perl Makefile.PL, make, make test sudo make install
> 
> Hope this helps.
> 
> Martin

Martin, the point of the OP is that the standard sequence you describe
isn't working for him.

Ben, there are several things in the earlier part of the error messages
that don't make sense.  For example, 'Argument "6.30_01" isn't numeric
...' shouldn't be happening, so far as I can tell.  The underscore is a
"readability" thing, for humans, and Perl strips it (whether the string
is quoted or not), so that "6.30_01" ends up being "6.3001".  I tested
this in debug mode and can state this with 100% confidence (besides, the
docs say the same thing ;).

In my experience, things like this are often the result of "cascading"
errors, that is to say, something is wrong, somewhere else, that causes
these to happen.

So, look at your ORACLE_HOME value.  The message above says it is not
valid.  Fix that first, then maybe the other issues will go away.

Some thoughts on why it might not be valid:

1.  The directory permissions and/or file permissions don't allow the
user doing the build to read anything.  So, you might want to run a
'chmod' on directories and files.  I suggest using 'find' and 'xargs' so
you can separate directories from files.  From the top level of the
*Oracle install*, as root or the user who actually owns the Oracle files
and directories (for my install, that was 'oracle'):

  find . -type f | xargs chmod go+r # add read for all to all files.
  find . -type d | xargs chmod go+rx # add read/search for all on all
                                     # directories

2.  The path is in fact not correct.  This could be due to a directory
name having white space in it, or to having a value that is too short or
too long (too few or too many directory levels).

Doing an 'ls $ORACLE_HOME', you should see names like:  bin css dbs demo
jdk network precomp ...

If you don't see them, your ORACLE_HOME is not set correctly.  Figure
out where the above named items are and 'pwd' gives to correct value to use.

3.  Finally, just to be sure, your 'LD_LIBRARY_PATH' would be
"$ORACLE_HOME/lib".

But, it's so much easier to do this if you'd just use Instantclient, as
Martin and others have suggested.  There are specific instructions in
the README* files on how to set up the environment variables to take
advantage of this package.

-- 
Bob McGowan

Reply via email to