| 安裝 PostgresSQL DBMS 來源:石頭閒語 |
|---|
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 的限制還嚴格,在使用時應特別注意。
如果是安裝者是 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 目錄,執行下列三步驟。
若無問題,即完成 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 的 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" 字串。
| 小恐龍工作坊 提供 |
|---|