[MacPorts] #38626: oracle-instantclient: set rpath instead of advising users to set DYLD_LIBRARY_PATH

MacPorts noreply at macports.org
Mon Apr 1 17:54:12 PDT 2013


#38626: oracle-instantclient: set rpath instead of advising users to set
DYLD_LIBRARY_PATH
-----------------------------------+--------------------------
  Reporter:  dluke@…               |      Owner:  ryandesign@…
      Type:  enhancement           |     Status:  assigned
  Priority:  Normal                |  Milestone:
 Component:  ports                 |    Version:  2.1.3
Resolution:                        |   Keywords:
      Port:  oracle-instantclient  |
-----------------------------------+--------------------------

Comment (by dluke@…):

 Replying to [comment:1 ryandesign@…]:
 > But setting DYLD_LIBRARY_PATH is what Oracle says to do, and I would
 have hoped that a large software company like Oracle would have already
 tried all possible workarounds for this requirement, and if they say it
 must be done, then it must be done.

 You are assuming more competence there than you should. Oracle recommends
 setting a path like that on every platform (LD_LIBRARY_PATH usually) and
 on the linux and solaris systems I've worked with it has never actually
 been necessary.

 I think perhaps their internal build setup is broken enough that they
 can't do this the right way and/or they just don't care enough about doing
 it the right way since they can tell everyone to set a linker search path
 instead.

 > I was looking into this today. I did not get it to work yet. For
 example, trying to use a php-oracle function without setting
 DYLD_LIBRARY_PATH results in:
 >
 > {{{
 > $ php55 -r 'oci_connect("username", "password");'
 > Warning: oci_connect(): OCIEnvNlsCreate() failed. There is something
 wrong with your system - please check that DYLD_LIBRARY_PATH includes the
 directory with Oracle Instant Client libraries in Command line code on
 line 1
 >
 > Warning: oci_connect(): Error while trying to retrieve text for error
 ORA-01804
 >  in Command line code on line 1
 > }}}

 that's what it looks like if no rpath is set and DYLD_LIBRARY_PATH isn't
 set for me too (or very similar).

 > Setting `DYLD_LIBRARY_PATH=/opt/local/lib/oracle` first, as `port notes
 oracle-instantclient` currently says to do, works around the problem.
 >
 > I tried the attached patch to oracle-instantclient, and it did not
 change the situation. Am I doing it wrong? As I said on the mailing list,
 I'm not familiar with this "rpath" concept.

 I can try the patch, but if you have output from the build log on what
 command is actually run, that might be easier.

 on my non-macports install that I tested with, the command that I ran to
 fix it was (from /usr/local/instantcleint_11_2):
 {{{
 install_name_tool -add_rpath /usr/local/instantclient_11_2/
 libclntsh.dylib.11.1
 }}}

-- 
Ticket URL: <https://trac.macports.org/ticket/38626#comment:3>
MacPorts <http://www.macports.org/>
Ports system for OS X


More information about the macports-tickets mailing list