Next Previous Contents

26. 移植 PostgreSQL 到视窗 95 / 视窗 NT

视窗 NT 版的 PostgreSQL 二元档可在以下地方找到︰

下载可执行档,将它解压,并从第十三步开始跟从 安装 PostgreSQL

如果你想重新编译原程序码,请跟从以下指示。移植到视窗 NT 要使用 Cygnus cygwin32 套件,它包括视窗 NT/95 的 gcc、gmake。

到此网页取得 cdk.exe 档(gnu-win32 的自我解压档) (译按︰此工具已改名为 cygwin,网址为 http://sourceware.cygnus.com。)

26.1 NT 版的作者

PostgreSQL NT 版的作者为 

26.2 安装 Cygwin 套件

  1. 下载 ftp://go.cygnus.com/pub/sourceware.cygnus.com/cygwin/latest/full.exe
  2. 执行 full.exe,安装到 c:\Unix\Root 目录。
  3. 执行 Cygwin,键入?mount --help'以阅读文件。你可用 -f 选项强制挂上。之后执行“umount / " 和“mount c:\Unix\Root /”

26.3 设定 Bash 视窗

安装 Cygwin 套件后,请进行以下工作以设定工作环境︰

1. 安装 Vi 编辑器?Vim'。请参阅 http://metalab.unc.edu/LDP/HOWTO/Vim-HOWTO.html

2. cygwin bash 的预定视窗是一个廿四行,底色为黑色的视窗。要设定 bash 视窗的底色和大小,按开始->控制台->MS DOS 主控台,把底色设定为黑色, 大小改为七十行。

(或)右击视窗标题列,改变内容。

3. 编辑 c:\cygnus\cywinb20 中的 cygnus.bat 和作以下设定 


set HOME=c:\cygnus\cygwinb20
bash --login

及编辑  /.bash_profile 加上这几行


set -o vi
PATH=$PATH:/usr/local/bin:/usr/bin
export PATH

4. 要启用指令列历史编辑,键入 

bash$ set -o vi

使用 l、k、j、h,你可用 vi 指令编辑指令列历史。你可重覆和修改之前的指令,以节省打字时间。

5. 你可用以下指令挂上磁盘机 / 目录 


bash$ umount /
bash$ mount "c:\cygnus"  /
bash$ mount "c:\cygnus\cygwin-b20\postgres" /usr/local/pgsql

6. 用以下指令阅读线上求助信息 


bash$ mount --help
bash$ ls --help

26.4 安装 Andy Piper 工具

  1. ftp://ftp.xemacs.org/pub/xemacs/aux/ 下载 cygwin-b20-local.tar.bz2 到 c:/Unix/Root 目录。
  2. cd c:/Unix/Root; bunzip2 cygwin-b20-local.tar.bz2
  3. tar -xvf cygwin-b20-local.tar
  4. cd /local/bin; sh check_cygwin_setup.sh
  5. 完成第四步后,你会看到以下信息︰
    You don't have /bin would you like to mount cygwin as /bin?" 
    [ y/n ]   
    选?n',其他问题则选?y'。
    

  6. mount c:/Unix/Root/cygwin-b20/H-i586-cygwin32/i586-cygwin32/bin /bin
  7. cd c:/Unix/Root/cygwin-b20/H-i586-cygwin32/i586-cygwin32; mkdir libexec share man etc sbin info
  8. cp -R /local/{ bin,libexec,share,man,etc,sbin,info,include }

26.5 安装 Ludovic Lange 的 Cygwin32 IPC 套件

  1. http://www.multione.capgemini.fr/tools/pack_ipc 下载 cygwin32_ipc-1.03.tgz 到 c:/Unix/Root 目录。
  2. tar -zxvf cygwin32_ipc-1.03.tgz
  3. cd cygwin32_ipc-1.03/src and run 'make'
  4. mkdir -p c:/usr/local/{bin,include,lib,include/sys}
    cp /cygwin32_ipc-1.03/bin/* c:/usr/local/bin 
    cp /cygwin32_ipc-1.03/include/sys/* c:/usr/local/include/sys 
    cp /cygwin32_ipc-1.03/lib/* c:/usr/local/lib 
    cp c:/usr/local/bin/* /bin 
    cp c:/Unix/Root/cygwin-b20/H-i586-cygwin32/bin/* /bin 
    

  5. mount c:/usr/local/bin /usr/local/bin
    mount c:/usr/local/include /usr/local/include 
    mount c:/usr/local/lib /usr/local/lib 
    cp /local/lib/* /usr/local/lib 
    

26.6 安装 PostgreSQL

  1. 下载最新的 PostgreSQL 源程序码
  2. Postgres 把所有文档当作二元档,所以会遇到 lf/cf 问题,我们要做第二至五步︰
    mkdir -p c:/Postgres/{Source,Binary} 
    mkdir c:/Postgres/Binary/pgsql 
    mkdir -p /usr/src/pgsql 
    mkdir -p /usr/local/pgsql 
    

  3. 把 Postgres 源程序码拷贝到 c:/Postgres/Source 目录,之后 tar -zxvf postgresql-6.5.3.tar.gz
  4. mv postgresql-6.5.3 pgsql
  5. 现在挂上各个目录 
    mount -b c:/Postgres/Binary/pgsql /usr/local/pgsql 
    mount c:/Postgres/Source/pgsql /usr/src/pgsql 
    mount c:/Unix/Root/cygwin-b20/share /sw/cygwin-b20/share 
    

  6. mkdir -p /usr/local/pgsql/{bin,include,lib,data}
  7. cd /usr/src/pgsql/src/win32
  8. 拷贝标头档 
    cp un.h c:/Unix/Root/cygwin-b20/H-i586-cygwin32/i586-cygwin32/include/sys 
    cp endian.h c:/Unix/Root/cygwin-b20/H-i586-cygwin32/i586-cygwin32/include 
    cp tcp.h c:/Unix/Root/cygwin-b20/H-i586-cygwin32/i586-cygwin32/include/netinet 
    

  9. ln -s /usr/local/lib /usr/src/pgsql/src/backend/libpostgres.a
  10. cd /usr/src/pgsql/src, 之后执行 './configure'
  11. make > make.txt 2>&1
  12. make install > make.install.txt 2>&1
  13. cp /usr/local/pgsql/lib/pq.dll /usr/local/pgsql/bin
  14. 在 make install 之后你要把 bin 和 lib 目录中的文字档转换,以清除 cr/lf 和 eof 之类东西。
  15. 在 / 目录使用任何编辑器产生 .bashrc 如下︰
    PATH=$PATH:/usr/local/pgsql/bin:/usr/local/bin 
    PGDATA=/usr/local/pgsql/data 
    PGLIB=/usr/local/pgsql/lib 
    LD_LIBRARY_PATH=/usr/local/pgsql/lib:/usr/local/lib 
    export LD_LIBRARY_PATH PATH PGDATA PGLIB 
    

  16. source /.bashrc, 之后执行 'initdb --username=xxxx' 要注意资料库系统的拥有人不可以是 root/administrator。
  17. 编辑 /usr/local/pgsql/data/pg_hba.conf 档,如︰
    host        all     163.17.11.109   255.255.255.0   trust 
    

  18. ipc-daemon.exe&
  19. postmaster -i&
  20. 执行 ' psql -h host_name template1'

Next Previous Contents