57.3. Unix 安装
ApplixWare有一个至少在部分平台上受到支持的ODBC数据库接口。在 Linux 下,已经演示过 ApplixWare v4.4.2 通过 Postgres发行版中包含的 psqlODBC驱动与 Postgres v7.0 配合工作。
57.3.1. 构建驱动
关于psqlODBC驱动(或任何
ODBC驱动)首先要注意的一点是:在
ODBC驱动要使用的系统上必须存在一个驱动管理器。Unix 上有一种免费软件的ODBC驱动管理器叫做iodbc,可以从网上多处获取,包括
AS200。安装iodbc的说明超出了本文档的范围,但iodbc压缩 .shar 文件内有一个
README,它应该能解释如何让它跑起来。
话虽如此,你能为你的平台找到的任何驱动管理器都应该支持 psqlODBC驱动或任何 ODBC驱动。
psqlODBC的 Unix 配置文件最近被大幅重构,以便在受支持的平台上轻松构建,并为将来支持其他 Unix 平台留出余地。驱动的新配置和构建文件应当让在受支持平台上构建驱动变成一个简单的过程。目前这包括 Linux 和 FreeBSD,但我们希望其他用户能贡献必要的信息,迅速扩大可构建该驱动的平台数量。
实际上有两种构建驱动的方法,取决于你以何种方式得到它,而这些差别归根结底只是在哪里以及如何运行 configure和make。驱动可以在一个独立的、仅客户端的安装中构建,也可以作为 Postgres主发行版的一部分来构建。如果你在多个异构平台上都有ODBC客户端应用,独立安装更方便。当目标客户端与服务器相同,或客户端和服务器有相似的运行时配置时,集成安装更方便。
具体来说,如果你得到的psqlODBC驱动是 Postgres发行版的一部分(下文称之为 "集成"构建),那么你将在 Postgres发行版的顶层源目录中与其余库一起配置和构建ODBC驱动。如果你得到的是独立打包的驱动,那么就在你解开驱动源代码的目录中运行 configure 和 make。
集成安装
这个安装过程适用于集成安装。
为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 之前的集成安装
如果你的Postgres安装早于 v6.4、你手头有原始源代码树、而且你想使用最新版本的ODBC 驱动,那么可以试试这种安装形式。
把输出的 tar 文件复制到目标系统并解开到一个干净的目录。
在包含源代码的目录中输入:
% ./configure % make % make POSTGRESDIR=
PostgresTopDirinstall如果你想把组件安装到不同的树中,可以显式指定各个目的地:
% 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的大多数安装步骤没有这个要求,你可以改选一个可由你的非 root
Postgres超级用户账号写入的其他目的地。
独立安装发行版可以从Postgres发行版构建,也可以从非 Unix 源代码的当前维护者 Insight Distributors 获取。
把 zip 或 gzip 压缩的 tar 文件复制到一个空目录。如果使用的是 zip 包,用命令解开它
% unzip -a
packagename-a选项是必要的,用于去掉源文件中的 DOS CR/LF 对。如果你拿到的是 gzip 压缩的 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-odbc把odbcinst.ini安装到指定的目录。注意这两个选项也可以在集成构建中使用,但要小心:在集成构建中使用时,
--prefix也会作用于你的Postgres安装的其余部分。--with-odbc只作用于配置文件odbcinst.ini。编译并链接源代码:
% make ODBCINST=
instdir你也可以在'make'命令行上覆盖安装的默认位置。这只适用于库文件和头文件的安装。由于驱动需要知道 odbcinst.ini 文件的位置,试图覆盖指定其安装目录的环境变量多半会给你带来麻烦。最安全的做法就是让驱动把 odbcinst.ini 文件安装在默认目录,或你在 './configure'命令行上用 --with-odbc 指定的目录。
安装源代码:
% make POSTGRESDIR=
targettreeinstall要分别覆盖库和头文件的安装目录,你需要在
make install命令行上传入正确的安装变量。这些变量是LIBDIR、HEADERDIR和ODBCINST。在 make 命令行上覆盖POSTGRESDIR会让LIBDIR和HEADERDIR以你指定的新目录为根。ODBCINST独立于POSTGRESDIR。下面是显式指定各个目的地的做法:
% make BINDIR=
bindirLIBDIR=libdirHEADERDIR=headerdirinstall例如,在(用过./configure和 make之后)输入
% make POSTGRESDIR=/opt/psqlodbc install会让库和头文件分别安装到
/opt/psqlodbc/lib和/opt/psqlodbc/include/iodbc目录。而命令
% make POSTGRESDIR=/opt/psqlodbc HEADERDIR=/usr/local install应该会让库安装到 /opt/psqlodbc/lib,头文件安装到 /usr/local/include/iodbc。如果结果不如预期,请联系某位维护者。