Linux, Unix, and Mac OS X deployment issues

Unix deployments are different from Windows deployments in some ways:

  • Directory structure   For Linux, Unix, and Mac OS X installations, the default directory structure is as follows:

    Directory Contents
    /opt/sqlanywhere12/bin32 and /opt/sqlanywhere12/bin64 Executable files, License files
    /opt/sqlanywhere12/lib32 and /opt/sqlanywhere12/lib64 Shared objects and libraries
    /opt/sqlanywhere12/res String files

    On AIX, the default root directory is /usr/lpp/sqlanywhere12 instead of /opt/sqlanywhere12.

    On Mac OS X, the default root directory is /Applications/SQLAnywhere12/System instead of /opt/sqlanywhere12.

    Depending on the complexity of your deployment, you might choose to put all of the files that you require for your application into a single directory. You may find that this is a simpler deployment option, especially if a small number of files are required for your deployment. This directory could be the same directory that you use for your own application.

  • File suffixes   In the tables in this section, the shared objects are listed with a suffix of .so or .so.1. The version number, 1, could be higher as updates are released. For simplicity, the version number is often not listed.

    For AIX, the suffix does not contain a version number so it is simply .so.

  • Symbolic links   Each shared object is installed as a symbolic link (symlink) to a file of the same name with the additional suffix .1 (one). For example, libdblib12.so is a symbolic link to the file libdblib12.so.1 in the same directory.

    The version suffix .1 could be higher as updates are released and the symbolic link must be redirected.

    On Mac OS X, you should create a jnilib symbolic link for any dylib that you want to load directly from your Java client application.

  • Threaded and non-threaded applications   Most shared objects are provided in two forms, one of which has the additional characters _r before the file suffix. For example, in addition to libdblib12.so.1, there is a file named libdblib12_r.so.1. In this case, threaded applications must be linked to the shared object whose name has the _r suffix, while non-threaded applications must be linked to the shared object whose name does not have the _r suffix. Occasionally, there is a third form of shared object with _n before the file suffix. This is a version of the shared object that is used with non-threaded applications.

  • Character set conversion   If you want to use database server character set conversion, you need to include the following files:

    • libdbicu12.so.1
    • libdbicu12_r.so.1
    • libdbicudt12.so.1
    • sqlany.cvf

  • Environment variables   On Linux, Unix, and Mac OS X, environment variables must be set for the system to be able to locate SQL Anywhere applications and libraries. It is recommended that you use the appropriate file for your shell, either sa_config.sh or sa_config.csh (located in the directories /opt/sqlanywhere12/bin32 and /opt/sqlanywhere12/bin64) as a template for setting the required environment variables. Some of the environment variables set by these files include PATH, LD_LIBRARY_PATH, and SQLANY12.

For information about how SQL Anywhere looks for files, see How SQL Anywhere locates files.