線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1049
推到 Plurk!
推到 Facebook!

PostgreSQL DBMS

 
jackkcg
站務副站長


發表:891
回覆:1050
積分:848
註冊:2002-03-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-01-09 20:41:48 IP:61.221.xxx.xxx 未訂閱
石頭閒語 (http://home.educities.edu.tw/shirock/    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD> <META http-equiv=Content-Type content="text/html; charset=big5"> <META content="MSHTML 6.00.2800.1126" name=GENERATOR> <STYLE></STYLE> </HEAD> <BODY bgColor=#ffffff>

PostgreSQL DBMS

作者: 遊手好閒的石頭成
E-Mail: shirock@pchome.com.tw
Version: 1.1
Date: Jun 5, 2000
著作權(COPYRIGHT)
安裝(INSTALL)
其他程式與PostgreSQL
相關網頁

著作權(COPYRIGHT)

原文

Copyright (c) 1994-7 Regents of the University of California
Permission to use, copy, modify, and distribute this software and its documentation for any purpose, without fee, and without a written agreement is hereby granted, provided that the above copyright notice and this paragraph and the following two paragraphs appear in all copies.
IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIBITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.

說明

允許 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 所設定的目錄)。
  • $pgsql/
    odbcinst.ini
  • $pgsql/bin/
    cleardbdir createdb createlang createuser destroydb destroylang destroyuser ecpg initdb initlocation ipcclean pg_dump pg_dumpall pg_id pg_passwd pg_upgrade pg_version postgres psql vacuumdb
  • $pgsql/include/
    提供developer使用。
  • $pgsql/lib/
    pgsql程式本身使用,以及提供developer使用。
  • $pgsql/doc/
    html格式文件,共分五部份:admin postgres tutorial user programmer
  • $pgsql/man/
    manpages。
對一個熟悉 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" 字串。

相關網頁

系統時間:2024-05-17 18:47:13
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!