[ 永遠的UNIX::UNIX技術資料的寶庫 ]   GB | BIG5

首頁 > 數據庫 > 其它 > 正文
PostgreSQL7.0手冊-管理員手冊-23. 配置選項
編譯:何偉平 laser@zhengmai.com.cn (2001-04-21 22:37:22)
第二十三章. 配置選項
內容 
配制參數 (configure) 
制作參數(make) 
本地化支持 
Kerberos 認証 
用配置的參數(configure)
configure 裡可用的參數集可以通過鍵入下面命令獲得 
$ ./configure --help
下面的參數可能會引起安裝者的興趣: 
Directories to install PostgreSQL in(安裝 postgreSQL 的目錄):
  --prefix=PREFIX         install architecture-independent files in PREFIX(把體系無關的文件裝在 PREFIX)
                          [/usr/local/pgsql]
  --bindir=DIR            user executables in DIR (用戶的可執行文件裝在 DIR )[EPREFIX/bin]
  --libdir=DIR            object code libraries in DIR (目標代碼庫在 DIR )[EPREFIX/lib]
  --includedir=DIR        C header files in DIR (C 頭文件放在 DIR)[PREFIX/include]
  --mandir=DIR            man documentation in DIR (手冊文檔在 DIR )[PREFIX/man]
Features and packages(特性和包):
  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)(不包含 FEATURE (等效 --enable-FEATURE=no))
  --enable-FEATURE[=ARG]  include FEATURE (包含 FEATURE )[ARG=yes]
  --with-PACKAGE[=ARG]    use PACKAGE (使用 PACKAGE)[ARG=yes]
  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)(不使用 PACKAGE (等效 --with-PACKAGE=no))
--enable and --with options recognized(可識別的附加選項):
  --with-template=template
                          use operating system template file(使用操作系統模板文件)
                              see template directory(參閱模板目錄)
  --with-includes=dirs    look for header files for tcl/tk, etc in DIRS(tk/tcl等的頭文件在 DIR)
  --with-libraries=dirs   look for additional libraries in DIRS(在DIR裡查找附加庫)
  --with-libs=dirs        alternate spelling of --with-libraries(--with-libraries 的可選寫法)
  --enable-locale         enable locale support(打開本地化支持)
  --enable-recode         enable cyrillic recode support(打開西裡爾字母(斯拉夫語言字母)記錄的支持)
  --enable-multibyte      enable multibyte character support(打開多字節支持)
  --with-pgport=portnum   change default postmaster port(更改缺省的啟動端口)
  --with-maxbackends=n    set default maximum number of server processes (設置缺省的最大服務器進程數)
  --with-tcl              build Tcl interfaces and pgtclsh(制作 Tcl 接口和 pgtclsh)
  --with-tclconfig=tcldir
                          tclConfig.sh and tkConfig.sh are in DIR(tclConfig.sh 和 tkConfig.sh 在 DIR)
  --with-perl             build Perl interface and plperl(制作 Perl 接口和plperl)
  --with-odbc             build ODBC driver package(制作 ODBC 驅動包)
  --with-odbcinst=odbcdir
                          change default directory for odbcinst.ini(為 odbcinst.ini 改變缺省路徑)
  --enable-cassert        enable assertion checks (for debugging)(打開斷言檢查 (調試))
  --enable-debug          build with debugging symbols (-g) (帶調試符號(-g)制作)
  --with-CC=compiler
                          use specific C compiler(使用聲明的 C 編譯器)
  --with-CXX=compiler
                          use specific C++ compiler(使用聲明的 C++ 編譯器)
  --without-CXX           prevent building C++ code (禁止制作 C++ 代碼)
有些系統在制作 Postgres 的一些特性時有問題.例如,有些系統的 C++ 編譯器壞了,可能就需要聲明 --without-CXX 告訴制作過程忽略 libpq++ 的制作. 
如果你想用安裝在非相同標準查找路徑裡的頭文件或庫制作 Postgres ,請使用 --with-includes 和 --with-libraries 選項.例如,你可能用這些制作一個實驗版本的 Tcl.如果你需要為頭文件或庫聲明超過一個的非標準目錄,這樣做: 

--with-includes="/opt/tcl/include /opt/perl5/include"

--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

制作參數(make)
許多與安裝相關的參數可以在 Postgres 安裝的制作過程中設置. 
在大多數情況下,這些參數應該放置在一個專門為此目的而用的文件(Makefile.custom)裡.缺省的發布版本不包含這個文件,所以你需要用一個文本編輯器創建一個.當升級安裝時,你只需要在制作前簡單地將舊的 Makefile.custom 拷貝到新安裝中去即可. 

另外,你可以在 make 命令行上設置變量: 

make [ variable=value [...] ]
可以聲明的變量的一部分有: 
POSTGRESDIR 
安裝目錄樹的頂層. 
BINDIR 
應用和工具的路徑. 
LIBDIR 
目標庫的路徑,包括共享庫. 
HEADERDIR 
包含(頭)文件的路徑. 
ODBCINST 
安裝過程中 psqlODBC (ODBC)配置文件的路徑. 
還有其他一些不常用的配置參數.下面列出的許多選項在做Postgres 服務器端開發時很有用. 
  
CFLAGS 
為 C 編譯器設置標志.應該賦予"+="以獲得相關的缺省參數. 
YFLAGS 
為 yacc/bison 分析器設置標志.-v 可用幫助診斷建立一個新的分析器的問題.應該賦予"+="以獲得相關的缺省參數. 
USE_TCL 
打開 Tcl 接口的制作. 
HSTYLE 
從零開始將 DocBook(文檔)制作成 HTML 風格.除非你從 doc/src/sgml/ 裡 DocBook-兼容的SGML 源文檔裡開發新的文檔,否則沒有用處. 
PSTYLE 
從零開始制作 DocBook 風格的文檔.除非你從 doc/src/sgml/ 裡 DocBook-兼容的 SGML 源文檔裡開發新的文檔,否則沒有用處. 
下面是一個在一台PentiumPro Linux 系統上 Makefile.custom 的樣例: 
# Makefile.custom
# Thomas Lockhart 1999-06-01

POSTGRESDIR= /opt/postgres/current
CFLAGS+= -m486 -O2

# documentation

HSTYLE= /home/tgl/SGML/db118.d/docbook/html
PSTYLE= /home/tgl/SGML/db118.d/docbook/print

--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

本地化支持
注意: 作者是 Oleg Bartunov.請參閱 Oleg 的主頁http://www.sai.msu.su/~megera/postgres/ 獲取關本地化和俄語支持的附加信息.
在為一個位莫斯科的公司做項目時,我發現了postgresql還不支持國家字符集的問題.在研究了可能存在的解決方案,我決定自己開發本地化支持.我不是一個C程序員,但在使用perl(調試)和glimpse的過程中已經有一些本地化編程經驗.在經過幾天的 Postgres 代碼樹的分析,我對src/backend/utils/adt/varlena.c 和 src/backend/main/main.c 做了很小的改動就獲得了我需要的特性!我只實現了對 LC_CTYPE 和 LC_COLLATE 的支持,但很快其他人就增加了 LC_MONETARY 的支持.我收到了很多人發給我的關這個補丁的信息,所以我決定將它發送給開發人員然(讓我感到驚奇的是)這個補丁被集成到了Postgres 發布版本中去了! 
人們經常抱怨說他們的(Postgres)本地化不能正常工作.下面是一些常見錯誤: 

在編譯前沒有正確的配置 postgresql.你在運行 configure 時必須打開--enable-locale 選項以支持本地化.在啟動 postmaster 時沒有正確設置運行環境.在運行 postmaster 之前你必須定義環境變量 LC_CTYPE 和LC_COLLATE,因為端從環境(變量)中獲得關本地化的信息.我使用下面shell 腳本(runpostgres): 
       #!/bin/sh
       
       export LC_CTYPE=koi8-r
       export LC_COLLATE=koi8-r
       postmaster -B 1024 -S -D/usr/local/pgsql/data/ -o '-Fe'
然從 rc.local 裡運行之 
       /bin/su - postgres -c "/home/postgres/runpostgres"
OS 內損壞了的本地支持(例如,Linux下 libc 裡的本地支持有時被修改過了,這樣會造成許多麻煩).最新的 perl 也支持本地化並且如果本地化被損壞了,使用 perl -v 將報下面的錯: 
       8:17[mira]:~/WWW/postgres>setenv LC_CTYPE not_exist
       8:18[mira]:~/WWW/postgres>perl -v
       perl: warning: Setting locale failed.
       perl: warning: Please check that your locale settings:
       LC_ALL = (unset),
           LC_CTYPE = "not_exist",
           LANG = (unset)
       are supported and installed on your system.
       perl: warning: Falling back to the standard locale ("C").
W本地化文件位置放錯了!可能的路徑包括:/usr/lib/locale (Linux, Solaris),/usr/share/locale (Linux),/usr/lib/nls/loc (DUX 4.0).使用 man locale 找出正確的路徑.在 Linux 下我在 /usr/lib/locale 和 /usr/share/locale 之間做了一個符號鏈接以確保下一個 libc 版本不會破壞我的本地設置.
有何優點?
你可以將 ~* 和 order by 操作符用包含國家代碼集字符的字符串上.非英語用戶絕對需要它.如果你不想用本地化支持只需要取消 USE_LOCALE 變量的定義即可.
有何缺點?
使用本地化支持有一個顯而易見的缺點 - 那就是速度!所以只有在你真正需要本地支持時才使用它. 

--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

Kerberos 認証
Kerberos (譯注:這是古希臘神話裡的一條多頭狗。)是一種適用在公共網絡上進行分布計算的工業標準的安全認証系統. 
如何獲得
Kerberos 認証系統不是隨著 Postgres 發布的.Kerberos 的各種版本通常是操作系統中的一個可選的軟件包.另外,可以從 MIT 雅典娜計劃(ftp://athena-dist.mit.edu/) 處獲得源碼. 
注意:即使你的操作系統供應商給你提供了一個版本,你可能還是要從 MIT 拿一個版本,因為有些供應商的版本是經過有意的弱化的或者和 MIT 版本不能互操作.
在美國和加拿大以外的地區的用戶需要知道發布版裡Kerberos 的實際代碼是受到美國政府出口法規約束的版本. 
有關你的 Kerberos 的問題應該向你的供應商或 MIT 雅典娜計劃 詢問.要注意 FAQL (常見問題列表Frequently-Asked Questions Lists)經常張貼在 Kerberos郵件列表 (發送請求郵件),和 USENET 新聞組.

安裝
Kerberos 的安裝在 Kerberos 安裝信息 裡有詳細討論.確信服務器的密鑰文件 (srvtab 或 keytab)可以被 Postgres 帳戶讀取. 
Postgres 和其客戶端可以和 MIT Kerberos 版本 4 或 5 的協議一起編譯,只要在文件 src/Makefile.global 裡將變量 KRBVERS 設置為合適的值即可.你還可以更改Postgres 需要查找的相關庫,頭文件和它自己的服務器密鑰文件的路徑. 

在編譯完成之,Postgres 必須作為 Kerberos 服務注冊.參閱 Kerberos 操作信息 和相關手冊頁獲取關注冊服務的詳細信息.

操作
在初始安裝,Postgres 應該在任何方面都作為一個正常的 Kerberos服務進行運行.關認証的詳細信息,請參考 PostgreSQL 用戶手冊 關 postmaster 和 psql 的章節. 
在 Kerberos 版本 5 中,對用戶和服務的名稱做了下面假設: 

用戶的基本名稱 (anames)假定為在第一部分裡包含實際的 Unix/Postgres 用戶名. 
Postgres 服務假定為含有兩個組成部分,服務名和主機名,就象在版本4裡那樣被規范化了.(也就是說,刪去了所有域綴).

表 23-1. Kerberos 參數實例 
   
 
 參數 實例 
user  frew@S2K.ORG  
user  aoki/HOST=miyu.S2K.Berkeley.EDU@S2K.ORG  
host  postgres_dbms/ucbvax@S2K.ORG  

對版本4的支持將在 MIT 版本5的正式發布一段時間被取消. 

--------------------------------------------------------------------------------

(http://www.fanqiang.com)
    進入【UNIX論壇

相關文章
PostgreSQL7.0手冊-附錄-文檔 (2001-04-21 23:50:44)
PostgreSQL7.0手冊-附錄-日期/時間支持-CVS 倉庫 (2001-04-21 23:48:48)
PostgreSQL7.0手冊-教程 -73. Postgres SQL 高級特性 (2001-04-21 23:45:36)
PostgreSQL7.0手冊-教程 -72. 查詢語言 (2001-04-21 23:44:40)
PostgreSQL7.0手冊-教程 -71. 開始 (2001-04-21 23:42:54)
PostgreSQL7.0手冊-教程 -70. 體系結構 (2001-04-21 23:41:58)
PostgreSQL7.0手冊-教程 -69. SQL (2001-04-21 23:41:23)
PostgreSQL7.0手冊-開發者手冊 -68. 分頁文件 (2001-04-21 23:39:22)
PostgreSQL7.0手冊-開發者手冊 -67. 端接口 (2001-04-21 23:38:34)
PostgreSQL7.0手冊-開發者手冊 -66. gcc 缺省優化 (2001-04-21 23:37:20)

===更多相關===
 

★  樊強制作 歡迎分享  ★