pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
ApplixWare有一个至少在部分平台上受到 支持的ODBC数据库接口。在 Linux 下,已经演示过 ApplixWare v4.4.2 通过 Postgres发行版中包含的 psqlODBC驱动与 Postgres v7.0 配合工作。
关于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=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的大多数 安装步骤没有这个要求,你可以改选一个可由你的非 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=targettree install
要分别覆盖库和头文件的安装目录,你需要在 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。如果结果不如预期,请联系某位维护者。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。