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