?
This document uses PHP Chinese website manual Release
一般說來,一個現(xiàn)代的與Unix兼容的平臺應(yīng)該就能運行PostgreSQL。 Section 15.7列出了到發(fā)布為止已經(jīng)明確測試過的平臺。 在發(fā)布的doc子目錄里面有許多平臺相關(guān)的FAQ, 如果你碰到問題你可能會需要參考它們。
編譯PostgreSQL需要下面幾樣東西:
需要GNU make; 不能使用其它make程序。 GNU make常被安裝為 gmake的名字。 本文檔將一直使用這個名字稱呼它 (在一些系統(tǒng)上GNU make 是名字叫make的缺省工具)。 要想測試GNUmake ,敲入:
gmake --version
我們建議使用版本3.76.1或者更新的版本
需要一個ISO/ANSIC編譯器(至少兼容C89)。 我們推薦使用最近版本的GCC, 不過,眾所周知的是 PostgreSQL 可以利用許多不同廠商的不同編譯器進行編譯。
除了gzip或bzip2。 之外, 還需要tar來解開發(fā)布。
缺省時將自動使用GNU Readline 庫(這樣可以方便地編輯和檢索命令歷史)。 它允許psql(PostgreSQL命令行的SQL解釋)記住每個命令類型,并允許您使用箭頭鍵召回和編輯以前的命令。 這是非常有用的,并且強烈推薦。 如果你不想用它,那么你必需給configure聲明--without-readline選項。 如果沒有發(fā)現(xiàn) libreadline 可以使用與其兼容的libedit 庫。 為configure指定--with-libedit-preferred選項將強制使用libedit 庫。 如果你使用的是一個基于包的 Linux 發(fā)布,那么要注意你需要readline 和readline-devel 兩個包, 特別是如果這兩個包在你的版本里是分開的時候。
缺省的時候?qū)⑹褂?span id="377j5v51b" class="PRODUCTNAME">zlib壓縮庫。 如果你不想使用它,那么你必須給configure聲明--without-zlib選項。 使用這個選項關(guān)閉了在pg_dump 和pg_restore里面壓縮歸檔的支持。
下列包是可選的。缺省配置的時候并不要求它們,但是如果打開了一些編譯選項之后就需要它們了, 解釋如下:
要編譯PL/Perl服務(wù)器端編程語言,你需要一個完整的Perl安裝, 包括libperl庫和頭文件。 因為PL/Perl是一個共享庫, libperl 庫在大多數(shù)平臺上也必須是一個共享庫。 最新版本的Perl好像已經(jīng)是缺省這么做了,但是早先的版本可不是這樣的, 而且這總是可選的。 如果你打算使用PL/Perl的附帶功能,你應(yīng)該確保 Perl安裝建立usemultiplicity選項啟用(perl -V將顯示是否是這種情況)。
如果沒有共享庫,但卻需要它,那么在PostgreSQL中將看到下面的信息, 指出這個問題:
*** Cannot build PL/Perl because libperl is not a shared library. *** You might have to rebuild your Perl installation. Refer to *** the documentation for details.
如果你不按照屏幕輸出的指示去做, 那么你只會注意到PL/Perl庫對象plperl.so 或者類似的什么東西,不會安裝到系統(tǒng)里。 如果你看到這些東西,那么你就必須重新手工編譯并安裝PL/Perl ,這樣才能編譯PL/Perl。 在配置Perl的過程中,要求一個共享庫。
要編譯PL/Python服務(wù)器端編程語言,你需要一個Python的安裝, 包括頭文件和distutils模塊。 Python的版本最低得是2.2,Python 3或者更高版本, 缺省時就帶有distutils模塊; 當使用版本是3時,請看 Section 42.1。
因為PL/Python將以共享庫的方式編譯, libpython 庫在大多數(shù)平臺上也必須是一個共享庫。 在缺省的Python安裝時不是這樣的。 如果在編譯和安裝PostgreSQL之后, 你有一個叫做plpython.so的文件(可能擴展名會有所不同), 那么一切都好說,否則你應(yīng)該回看到類似下面的信息飄過:
*** Cannot build PL/Python because libpython is not a shared library. *** You might have to rebuild your Python installation. Refer to *** the documentation for details.
這意味著你必須重新編譯(一部分)Python ,以創(chuàng)建這個共享庫。
如果有問題, 用--enable-shared參數(shù)運行Python2.3或更高版本的configure腳本。 在有些操作系統(tǒng)上,你不必非要編譯一個共享庫,不過你需要讓PostgreSQL的編譯系統(tǒng)知道這些。 參考src/pl/plpython目錄中的Makefile獲取細節(jié)。
如果想編譯PL/Tcl語言, 那么當然需要安裝Tcl了。 如果您在使用8.4或更低版本的Tcl,先確保它沒有多線程支持。
要打開本地語言支持(NLS),也就是說,用英語之外的語言顯示程序的信息, 你需要一個 Gettext API的實現(xiàn)。 有些操作系統(tǒng)內(nèi)置了這些(比如Linux, NetBSD, Solaris),對于其它系統(tǒng), 你可以從http://www.gnu.org/software/gettext/下載一個額外的包。 如果你在使用GNU(C庫)里面的Gettext實現(xiàn),那么你就額外需要GNU Gettext包, 因為我們需要里面的幾個工具程序。對于任何其它的實現(xiàn),你應(yīng)該不需要它。
如果你想支持使用這些服務(wù)的認證或者加密,那么你需要Kerberos, OpenSSL, OpenLDAP, 和(或者)PAM這些包。
如果你從Git樹中編譯,而不是使用發(fā)布的源代碼包,或者你想做一些服務(wù)器開發(fā), 那么你還需要下面的包:
如果你需要從Git校驗中編譯,或者你修改了掃描器和分析器的定義文件, 那么你需要GNU Flex和Bison 。 如果你需要它們,那么確保使用的是Flex 2.5.31或更新的版本, 以及Bison1.875或者更新的版本。 其它的lex和yacc不可以使用。
建立一個Git校驗時,需要Perl5.8或更高版本, 或者修改任何使用Perl腳本的構(gòu)建步驟的輸入文件。如果是在Windows下安裝,那么必須安裝Perl。
可以在GNU鏡像站點http://www.gnu.org/order/ftp.html 或ftp://ftp.gnu.org/gnu/獲取GNU包。
同時,還需要查看是否有足夠大的磁盤空間。 你將大概需要近100MB用于存放安裝過程中的源碼樹和大約20MB用于安裝目錄。 一個空數(shù)據(jù)庫大概需要35MB。 然后在使用過程中大概需要在一個平面文本文件里存放同等數(shù)據(jù)量五倍的空間存儲數(shù)據(jù)。 如果你要運行回歸測試,還臨時需要額外的150MB 。 請用df命令檢查剩余磁盤空間。