Rock's Saying Logo1 border Rock's Saying Logo2
隨手行文 | 閒語集 | 過客留言 | 飛鴿傳書

PostgreSQL DBMS

作者: 遊手好閒的石頭成
E-Mail: shirock@pchome.com.tw
Version: 1.1
Date: Jun 5, 2000

著作權(COPYRIGHT)

安裝(INSTALL)

其他程式與PostgreSQL

相關網頁


著作權(COPYRIGHT)

原文

說明

允許 1)使用 2)複製 3)修改 4)散佈 本軟體及文件在任何用途上,但不得收費,不得在此著作權條款之上添加任何書面契約。

本條款(共三項)的內容,必須出現在所有的複製品中。

這是一個 Open source 的 license ,但由於其 WITHOUT FEE 的關係,故比 GPL 的限制還嚴格,在使用時應特別注意。

安裝(INSTALL)

帳號建立

如果是安裝者是 root 的話,應該建立一個帳號,如 pgsql 或 postgres ,以此帳號管理資料庫。

通常此帳號的 home 目錄,就設定為 PostgreSQL 安裝的目錄,或是主要的資料庫存放目錄。

至於 group ,則可以獨立一個,或將其歸入 bin 這個群組。

取得原始碼

本文寫作時,所採用的版本為 PostgreSQL 6.5.3 ,取得的原始碼套件為 postgresql-6.5.3.tar.gz ,可藉由搜尋引擎搜尋 "postgresql" 這個關鍵字。

簡易安裝設定

此段只在說明初次安裝 PostgreSQL 的方式,至於升級者的安裝,請參考其 INSTALL 文件。

我是在 Slackware Linux 7.0 的環境下安裝的,在安裝過程一切順利。

由於其安裝動作使用了 GNU autoconf ,故只要按照標準三步驟即可,以 $pgsql_src 表示 PostgreSQL 原始碼放置的路徑。

先進入 $pgsql_src/src 目錄,執行下列三步驟。

  1. # ./configure --prefix=/usr/local/pgsql
    可用參數 --help 查詢哪些選項可用。一般會再加上 --with-odbc 建立 ODBC driver ,以及 --with-perl 建立 Perl介面函數庫。
  2. # make all
  3. # make install

若無問題,即完成 PostgreSQL 程式的安裝部份。

接著,再進入 $pgsql_src/doc 目錄,執行 make install ,安裝其文件。

目錄圖

以 $pgsql 表示安裝的目錄(也就是 prefix 所設定的目錄)。

對一個熟悉 PostgreSQL 的管理者來說,將其安裝在 /usr/local 是很方便的選擇,因為 programs, documents, manpages, libraries, and APIs 都會放在系統預設的位置上,不用加上其他設定。

對一個生手來說,則將其一併放在 /usr/local/pgsql 則較好使用,不想用時,較好移除,要找跟其有關的工具,也比較好找。

設定函數庫的載入

PostgreSQL 的程式,以 ELF 的格式載入其所需 shared library (也就是放在 $pgsql/lib 中的檔案),因此必須先確定其所需的 shared libray 是否在 ld.so 的搜尋路徑下。

ld.so的搜尋路徑為 /lib, /usr/lib 及列在 /etc/ld.so.conf 中的路徑。 如果是用 prefix=/usr/local 安裝的話,則那些 shared library 已經被放在 /usr/local/lib ,通常這個路徑皆被列在 /etc/ld.so.conf 中,因此不需再設定。

如果是用 prefix=/usr/local/pgsql 安裝的話,則需要將/usr/local/pgsql/lib 這個路徑抄到 ld.so.conf 列表中,接著執行/sbin/ldconfig 重新載入此表(有些系統不用ldconfig,如 solaris)。

如果安裝者不是root的話,則可以透過環境變數的設定,將路徑抄入使用者期間的 LD 搜尋列表中。例如 bash 的使用者,可輸入:

# export LD_LIBRARY_PATH=/usr/local/pgsql/lib

其他程式與PostgreSQL

某些可配合 PostgreSQL 使用的工具,在以原始碼安裝時(通常是如此),會需要指定 PostgreSQL 的位置(路徑),此時,就指定 PostgreSQL 的 APIs 所在目錄(如$pgsql/include), 或者是其父目錄。因為原始碼安裝時,需要知道的是 PostgreSQL 的 APIs , 而有些安裝程式會自動補上 "/include" 在你指定的目錄字串之後,但有些不會。

舉例來說,如果我們先前安裝時,是裝在 /usr/local/pgsql 下,但日後,我們又將 /usr/local/pgsql/include 搬移到 /usr/include 下,並改為 /usr/include/pgsql , 則我們在設定其他程式的安裝組態時,就要將 PostgreSQL 的安裝目錄, 設為 /usr/include/pgsql 或是 /usr/include 。

若有需要,則需再指定額外的 library 搜尋路徑到 $pgsql/lib 。

例如 PHP 配合 PostgreSQL 時,在 PHP 的 configure 中,加上參數 --with-pgsql ,如下:

# ./configure --with-pgsql=/usr/local/pgsql

好吧,我承認我錯了,我先前說「雖然 PHP 的說明是要指定 PostgreSQL 的安裝目錄,但我的經驗是,指定 PostgreSQL 的 APIs 的目錄較不易出問題。」 這段是錯的,因為這是其他 database 如 GDBM 的情形, PHP 對於某些較大型的 database 會固定補上 "/include" 字串。

相關網頁



隨手行文 | 閒語集 | 過客留言 | 飛鴿傳書 石頭閒語 (http://home.educities.edu.tw/shirock/)
Copyright (C) 1999 - 2002 遊手好閒的石頭成 更新日期: 2000年 1月5日