我们已经说过,你找到的任何用于你的平台的驱动管理器应该支持psqlODBC 驱动或者任何 ODBC 驱动.
用于 psqlODBC 的 Unix 配置文件最近已经大大修改了,以便于很容易地在支持的平台上制作(驱动)同时也便于今后对其他 Unix 平台的支持.该驱动的新的配置和制作文件应该已经把在支持的平台上制作驱动变为一个简单的过程.目前这些(平台)包括 Linux 和FreeBSD,但我们希望其他用户可以奉献出必要的信息以便迅速扩展这个驱动可以制作的平台的数量.
实际上只有两个独立的制作驱动的方法 --取决于你是如何获得驱动的,这些区别最终只是体现在你在那里和如何运行 configure 和make.驱动程序可以当作一种独立的,只有客户端的安装,或者可以作为主 Postgres 发布的一部分.如果你的 ODBC 客户端应用运行在多种异种平台上,独立安装的方式比较方便.当目标客户端和服务器一样或者客户端和服务器有着相似的配置时,集成的安装模式比较方便.
详细说来,如果你把 psqlODBC 驱动做为 Postgres
版本的一部分制作(从现在开始我们把这个当作一次 "集成" 制作)那么你将在 Postgres
版本的顶级目录和 Postgres 其他的库文件一起配置和安装 ODBC
驱动程序.如果你的驱动是一个独立的包,那么你将在你解开驱动源程序的位置配置和制作驱动.
这个安装过程适用于一次集成安装.
% ./configure --with-odbc % make重新制作 Postgres 版本:
% make install安装放在 PGROOT/contrib/odbc/odbc.sql 里面的 ODBC 目录扩展:
% psql -e template1 < $PGROOT/contrib/odbc/odbc.sql这里声明 template1 作为目标数据库将保证所有后继的数据库都有这些相同的定义.
% make ODBCINST=filename install
如果你安装有早于 v6.4 的 Postgres,而且你拥有最初的源代码树,并且你想使用最新的版本的 ODBC 驱动,那么你可能会希望下面这样的安装.
在包含源代码的目录里面,键入:
% ./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 超级用户可写的目标路径替换之.
把压缩的 tar 文件拷贝到一个空目录.如果用的是 zip 包,用下面命令解包
% unzip -a packagename-a 选项可以去掉 DOS 源文件里的 CR/LF 对.
如果你拿到的是 gzipped tar 包,那么运行
% tar -xzf packagename
创建 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=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.如果这些不起作用,请与某位维护者联系。