PostgreSQL Programmer's Guide
Prev | Chapter 22. ODBC Interface | Next

# Unix Installation

ApplixWare has an ODBC database interface supported on at least some platforms. ApplixWare v4.4.2 has been demonstrated under Linux with Postgres v7.0 using the psqlODBC driver contained in the Postgres distribution.

## Building the Driver

The first thing to note about the psqlODBC driver (or any ODBC driver) is that there must exist a driver manager on the system where the ODBC driver is to be used. There exists a freeware ODBC driver for Unix called iodbc which can be obtained from various locations on the Net, including at AS200. Instructions for installing iodbc are beyond the scope of this document, but there is a `README` that can be found inside the iodbc compressed .shar file that should explain how to get it up and running.

Having said that, any driver manager that you can find for your platform should support the psqlODBC driver or any ODBC driver.

The Unix configuration files for psqlODBC have recently been extensively reworked to allow for easy building on supported platforms as well as to allow for support of other Unix platforms in the future. The new configuration and build files for the driver should make it a simple process to build the driver on the supported platforms. Currently these include Linux and FreeBSD but we are hoping other users will contribute the necessary information to quickly expand the number of platforms for which the driver can be built.

There are actually two separate methods to build the driver depending on how you received it and these differences come down to only where and how to run configure and make. The driver can be built in a standalone, client-only installation, or can be built as a part of the main Postgres distribution. The standalone installation is convenient if you have ODBC client applications on multiple, heterogeneous platforms. The integrated installation is convenient when the target client is the same as the server, or when the client and server have similar runtime configurations.

Specifically if you have received the psqlODBC driver as part of the Postgres distribution (from now on referred to as an "integrated" build) then you will configure and make the ODBC driver from the top level source directory of the Postgres distribution along with the rest of its libraries. If you received the driver as a standalone package than you will run configure and make from the directory in which you unpacked the driver source.

Integrated Installation

This installation procedure is appropriate for an integrated installation.

1. Specify the --with-odbc command-line argument for src/configure:

       % ./configure --with-odbc
       % make

2. Rebuild the Postgres distribution:

       % make install

3. Install the ODBC catalog extensions available in `PGROOT/contrib/odbc/odbc.sql`:

       % psql -e template1 < $PGROOT/contrib/odbc/odbc.sql

   where specifying `template1` as the target database will ensure that all subsequent new databases will have these same definitions.

Once configured, the ODBC driver will be built and installed into the areas defined for the other components of the Postgres system. The installation-wide ODBC configuration file will be placed into the top directory of the Postgres target tree (`POSTGRESDIR`). This can be overridden from the make command-line as

    % make ODBCINST=filename install

Pre-v6.4 Integrated Installation

If you have a Postgres installation older than v6.4, you have the original source tree available, and you want to use the newest version of the ODBC driver, then you may want to try this form of installation.

1. Copy the output tar file to your target system and unpack it into a clean directory.

2. From the directory containing the sources, type:

       % ./configure
       % make
       % make POSTGRESDIR=PostgresTopDir install

3. If you would like to install components into different trees, then you can specify various destinations explicitly:

       % make BINDIR=bindir  LIBDIR=libdir  HEADERDIR=headerdir ODBCINST=instfile install

Standalone Installation

A standalone installation is not integrated with or built on the normal Postgres distribution. It should be best suited for building the ODBC driver for multiple, heterogeneous clients who do not have a locally-installed Postgres source tree.

The default location for libraries and headers for the standalone installation is `/usr/local/lib` and `/usr/local/include/iodbc`, respectively. There is another system wide configuration file that gets installed as `/share/odbcinst.ini` (if `/share` exists) or as `/etc/odbcinst.ini` (if `/share` does not exist).

> Note: Installation of files into `/share` or `/etc` requires system root privileges. Most installation steps for Postgres do not have this requirement, and you can choose another destination which is writable by your non-root Postgres superuser account instead.

1. The standalone installation distribution can be built from the Postgres distribution or may be obtained from Insight Distributors, the current maintainers of the non-Unix sources.

   Copy the zip or gzipped tarfile to an empty directory. If using the zip package unzip it with the command

       % unzip -a packagename

   The -a option is necessary to get rid of DOS CR/LF pairs in the source files.

   If you have the gzipped tar package than simply run

       % tar -xzf packagename

   1. To create a tar file for a complete standalone installation from the main Postgres source tree:

2. Configure the main Postgres distribution.

3. Create the tar file:

       % cd interfaces/odbc
       % make standalone

4. Copy the output tar file to your target system. Be sure to transfer as a binary file if using ftp.

5. Unpack the tar file into a clean directory.

6. Configure the standalone installation:

       % ./configure

   The configuration can be done with options:

       % ./configure --prefix=rootdir --with-odbc=inidir

   where --prefix installs the libraries and headers in the directories ``rootdir`/lib` and ``rootdir`/include/iodbc`, and --with-odbc installs `odbcinst.ini` in the specified directory.

   Note that both of these options can also be used from the integrated build but be aware that when used in the integrated build --prefix will also apply to the rest of your Postgres installation. --with-odbc applies only to the configuration file `odbcinst.ini`.

7. Compile and link the source code:

       % make ODBCINST=instdir

   You can also override the default location for installation on the 'make' command line. This only applies to the installation of the library and header files. Since the driver needs to know the location of the odbcinst.ini file attempting to override the enviroment variable that specifies its installation directory will probably cause you headaches. It is safest simply to allow the driver to install the odbcinst.ini file in the default directory or the directory you specified on the './configure' command line with --with-odbc.

8. Install the source code:

       % make POSTGRESDIR=targettree install

   To override the library and header installation directories separately you need to pass the correct installation variables on the `make install` command line. These variables are `LIBDIR`, `HEADERDIR` and `ODBCINST`. Overriding `POSTGRESDIR` on the make command line will cause `LIBDIR` and `HEADERDIR` to be rooted at the new directory you specify. `ODBCINST` is independent of `POSTGRESDIR`.

   Here is how you would specify the various destinations explicitly:

       % make BINDIR=bindir LIBDIR=libdir HEADERDIR=headerdir install

   For example, typing

       % make POSTGRESDIR=/opt/psqlodbc install

   (after you've used ./configure and make) will cause the libraries and headers to be installed in the directories `/opt/psqlodbc/lib` and `/opt/psqlodbc/include/iodbc` respectively.

   The command

       % make POSTGRESDIR=/opt/psqlodbc HEADERDIR=/usr/local install

   should cause the libraries to be installed in /opt/psqlodbc/lib and the headers in /usr/local/include/iodbc. If this doesn't work as expected please contact one of the maintainers.

Prev | Home | Next
Windows Applications | Up | Configuration Files