Apple macOS platform notes
DYLD_LIBRARY_PATH denied in Mac OS X® 10.11
Starting with Mac OS X 10.11 (El Capitan), if the System Integrity Protection (SIP) is enabled, the DYLD_LIBRARY_PATH environment variable is no longer exported in sub processes. This variable defined the shared library search path for software components used by the Genero runtime system. This was required especially for database client libraries installed in directories other than /usr/lib and /usr/local/lib (the default location for shared libraries).
As DYLD_LIBRARY_PATH cannot be used, the proper workaround is to install all required shared libraries in /usr/local/lib. A good practice is to create the installation directory of the software component in /usr/local/product/version, and create symbolic links to the required shared libraries in /usr/local/lib.
To make sure that all required libraries can be found, check the dependencies on a Genero binary (typically, the ODI driver) with the otool -L and otool -l commands.
$ mkdir /usr/local/oracle/
$ mkdir /usr/local/oracle/instantclient_18_1
... install Oracle Instant Client in /usr/local/oracle/instantclient_18_1 ...
$ cd /usr/local/lib
$ ln -s /usr/local/oracle/instantclient_18_1/libclntsh.dylib.18.1 libclntsh.dylib.18.1
... set Genero FGL environment ...
$ otool -L $FGLDIR/dbdrivers/dbmora_18.dylib
... check dependencies and paths
$ otool -l $FGLDIR/dbdrivers/dbmora_18.dylib
... check load sequences
@rpath
prefix to
libpq.5.dylib shared library entry, and add a search path with
-add_rpath to specify target PostgreSQL lib directory:
$ cd $FGLDIR/dbdrivers
$ otool -L dbmpgs_9.dylib
...
original-path-to-postgresql-dir/libpq.5.dylib (compatibility ...
...
$ install_name_tool \
-change original-path-to-postgresql-dir/libpq.5.dylib @rpath/libpq.5.dylib \
-add_rpath /Library/Postgresql/9.5.1/lib \
dbmpgs_9.dylib
$ otool -L dbmpgs_9.dylib
...
@rpath/libpq.5.dylib (compatibility ...
...
$ otool -l dbmpgs_9.dylib
... check load sequences
Java Interface
Check maxOS platform notes when using the Java Interface on this operating system.