Unix 安装

ApplixWare 有一个 ODBC 数据库接口至少能够支持一些平台.ApplixWare v4.4.2 已经在 Linux 下证明可以与使用包含在 Postgres 里的psqlODBC 驱动的 Postgres v7.0 共同使用.

制作驱动

谈到 psqlODBC 驱动程序(或任何ODBC 驱动程序)的第一件事情就是在使用 ODBC 驱动程序的系统里必须存在一个驱动程序管理器.有一个叫 iodbc 的用于 Unix 的自由软件 ODBC 驱动程序,我们可以在网上的许多地方获得这个东西,包括 AS200。(译注:好象要换个地方 www.iodbc.org ).安装 iodbc 的指导超出本文挡的范围,但可以在压缩的iodbc .shar 文件里面找到一个 README ,说明了如何安装和运行.

我们已经说过,你找到的任何用于你的平台的驱动管理器应该支持psqlODBC 驱动或者任何 ODBC 驱动.

用于 psqlODBC 的 Unix 配置文件最近已经大大修改了,以便于很容易地在支持的平台上制作(驱动)同时也便于今后对其他 Unix 平台的支持.该驱动的新的配置和制作文件应该已经把在支持的平台上制作驱动变为一个简单的过程.目前这些(平台)包括 Linux 和FreeBSD,但我们希望其他用户可以奉献出必要的信息以便迅速扩展这个驱动可以制作的平台的数量.

实际上只有两个独立的制作驱动的方法 --取决于你是如何获得驱动的,这些区别最终只是体现在你在那里和如何运行 configuremake.驱动程序可以当作一种独立的,只有客户端的安装,或者可以作为主 Postgres 发布的一部分.如果你的 ODBC 客户端应用运行在多种异种平台上,独立安装的方式比较方便.当目标客户端和服务器一样或者客户端和服务器有着相似的配置时,集成的安装模式比较方便.

详细说来,如果你把 psqlODBC 驱动做为 Postgres 版本的一部分制作(从现在开始我们把这个当作一次 "集成" 制作)那么你将在 Postgres 版本的顶级目录和 Postgres 其他的库文件一起配置和安装 ODBC 驱动程序.如果你的驱动是一个独立的包,那么你将在你解开驱动源程序的位置配置和制作驱动.
 

集成安装

这个安装过程适用于一次集成安装.

    为 src/configure 声明 --with-odbc 命令行参数:
    % ./configure --with-odbc
    % make
    重新制作 Postgres 版本:
    % make install
    安装放在 PGROOT/contrib/odbc/odbc.sql 里面的 ODBC 目录扩展:
    % psql -e template1 < $PGROOT/contrib/odbc/odbc.sql
    这里声明 template1 作为目标数据库将保证所有后继的数据库都有这些相同的定义.
一旦配置完,ODBC 驱动将在为 Postgres 系统其他部件定义的区域里制作和安装.安装范围的 ODBC 配置文件将被放置在 Postgres 目标树(POSTGRESDIR)的顶层目录.你可以用 make 命令行替换这个位置
% make ODBCINST=filename install
v6.4前的集成安装

如果你安装有早于 v6.4 的 Postgres,而且你拥有最初的源代码树,并且你想使用最新的版本的 ODBC 驱动,那么你可能会希望下面这样的安装.

    拷贝输出的 tar 文件到你的目标系统,并且在一个干净的目录里解开包.

    在包含源代码的目录里面,键入:

    % ./configure
    % make
    % make POSTGRESDIR=PostgresTopDir install
    如果你想把安装组件放到不同的目录树中,那么你可以显式地声明各种不同的目的地:
    % make BINDIR=bindir  LIBDIR=libdir  HEADERDIR=headerdir ODBCINST=instfile install
独立的安装

一次独立的安装不是集成在一个正常的 Postgres 版本的制作过程中的.这种方法很适合为有多种不同平台的有本地安装的 Postgres 源代码树的客户端上制作 ODBC 驱动.

独立安装的库和头文件的缺省路径分别是 /usr/local/lib/usr/local/include/iodbc。另外还安装一个系统范围的配置文件到 /share/odbcinst.ini (如果 /share 存在)或 /etc/odbcinst.ini (如果 /share 不存在).

注意:把文件安装到 /share 或者 /etc 需要 root 权限.Postgres 的大多数安装步骤不需要这个条件,而且你可以选另一个 Postgres 超级用户可写的目标路径替换之.
    独立安装的版本可以在 Postgres 发布版本里面制作或者可以从 Insight Distributors,目前的非 Unix 源码维护者获取源代码.

    把压缩的 tar 文件拷贝到一个空目录.如果用的是 zip 包,用下面命令解包

    % unzip -a packagename
    -a 选项可以去掉 DOS 源文件里的 CR/LF 对.

    如果你拿到的是 gzipped tar 包,那么运行

    % tar -xzf packagename
      从主 Postgres 源文件树里创建一个完整的独立安装 tar 文件:
    配置主 Postgres 版本.

    创建 tar 文件:

    % cd interfaces/odbc
    % make standalone
    拷贝输出的 tar 文件到你的目标系统.如果使用 ftp,应该使用二进制模式传输.

    把 tar 文件解开到一个干净的目录.

    配置独立安装:

    % ./configure
    配置可以带有选项进行:
    % ./configure --prefix=rootdir --with-odbc=inidir
    这里 --prefix 把库和头文件安装到目录 rootdir/lib 和 rootdir/include/iodbc 下,并且 --with-odbcodbcinst.ini 安装到指定的目录.

    注意这些选项同样可以用于集成安装,但是要注意用于集成安装时--prefix 将同样应用于你的 Postgres 安装的其他部分.--with-odbc 只适用于配置文件 odbcinst.ini

    编译并链接源代码:

    % make ODBCINST=instdir
    你同样可以在 'make' 命令行上覆盖缺省安装路径.这些只适用于库和头文件的安装路径.因为驱动需要知道 odbcinst.ini 文件的位置,试图覆盖声明该文件的安装路径将可能让你很头疼.最安全的方法是简单的允许驱动把 odbcinst.ini 文件装到缺省路径或者你在 './configure' 命令行用 --with-odbc 声明的路径.

    安装源代码:

    % make POSTGRESDIR=targettree install
    要分别覆盖库和头文件的安装路径,你需要在 make install 命令行上传递正确的安装变量.这些变量是 LIBDIR,HEADERDIRODBCINST.在 make 命令行上覆盖 POSTGRESDIR 将导致 LIBDIRHEADERDIR 放在你声明的新目录里的顶层.ODBCINST 独立于 POSTGRESDIR

    下面是你如何显式地声明目标变量的例子:

    % make BINDIR=bindir LIBDIR=libdir HEADERDIR=headerdir install
    例如,键入
    % make POSTGRESDIR=/opt/psqlodbc install
    (在你运行过 ./configure 和 make 后)将导致库和头文件被分别安装到目录 /opt/psqlodbc/lib/opt/psqlodbc/include/iodbc

    命令

    % make POSTGRESDIR=/opt/psqlodbc HEADERDIR=/usr/local install
    应该导致库被安装到 /opt/psqlodbc/lib 而头文件安装到 /usr/local/include/iodbc.如果这些不起作用,请与某位维护者联系。