天天看點

PostgreSQL 10.1 手冊_部分 III. 伺服器管理_第 16 章 從源代碼安裝_16.2. 要求

16.2. 要求

一般說來,一個現代的與 Unix 相容的平台應該就能運作PostgreSQL。 到釋出為止已經明确測試過的平台的清單在 

第 16.6 節

中列出。在釋出的

doc

子目錄裡面有許多平台相關的 FAQ文檔,如果你碰到問題你可能會需要參考它們。

編譯PostgreSQL需要下列軟體包:

  • 要求GNU make版本3.80或以上;其他的make程式或更老的GNU make版本将不會工作(GNU make有時以名字

    gmake

    安裝)。要測試GNU make可以輸入:
    make --version      
  • 你需要一個ISO/ANSI C 編譯器(至少是 C89相容的)。我們推薦使用最近版本的GCC,不過,衆所周知的是PostgreSQL可以利用許多不同廠商的不同編譯器進行編譯。
  • 除了gzip和bzip2之外,我們還需要tar來解包源代碼釋出。
  • 預設時将自動使用GNU Readline庫。它允許psql(PostgreSQL的指令行 SQL 解釋器)記住你輸入的每一個指令并且允許你使用箭頭鍵來找回和編輯之前的指令。如果你不想用它,那麼你必需給

    configure

    聲明

    --without-readline

    選項。作為一種可選方案,你常常可以使用 BSD許可證的

    libedit

    庫,它最初是在NetBSD上開發的。

    libedit

    庫是GNU Readline相容的, 如果沒有發現

    libreadline

    或者

    configure

    使用了

    --with-libedit-preferred

    選項,都會使用這個庫。如果你使用的是一個基于包的 Linux 釋出,那麼要注意你需要

    readline

    readline-devel

    兩個包,特别是如果這兩個包在你的版本裡是分開的時候。
  • 預設的時候将使用zlib壓縮庫。 如果你不想使用它,那麼你必須給

    configure

    --without-zlib

    選項。使用這個選項關閉了在pg_dump和pg_restore中對壓縮歸檔的支援。

下列包是可選的。在預設配置的時候并不要求它們,但是如果打開了一些編譯選項之後就需要它們了,如下文所解釋的:

  • 要編譯伺服器端程式設計語言PL/Perl,你需要一個完整的 Perl安裝,包括

    libperl

     庫和頭檔案。 所需的最低版本是Perl 5.8.3。 因為PL/Perl是一個共享庫, 

    libperl

    庫在大多數平台上也必須是一個共享庫。最近的版本的 Perl好像已經預設這樣做了,但是早先的版本可不是 這樣的,而且這總是一種在站點上安裝 Perl 的選擇。如果選擇了編譯 PL/Perl但是它卻找不到一個共享的 

    libperl

    ,那麼

    configure

    将會失敗。 在這種情況下,你将不得不重新手工編譯并且安裝Perl 以便能編譯PL/Perl。在 Perl的配置處理過程中,需要一個共享庫。

    如果你想更多地使用PL/Perl, 你應當保證Perl安裝在編譯時啟用了 

    usemultiplicity

    選項(

    perl -V

    将會顯示是否是這樣)。
  • 要編譯PL/Python伺服器端程式設計語言, 你需要一個Python的安裝,包括頭檔案和distutils子產品。最低的版本要求是Python 2.4。如果是版本3.1或更高版本,則支援Python 3,如果使用 Python 3 請參考。  第 45.1 節 因為PL/Python将以共享庫的方式編譯, 

    libpython

    庫在大多數平台上也必須是一個共享庫。 在預設的從源碼安裝Python時不是這樣的, 而是在很多作業系統釋出中有一個共享庫可用。如果選擇了編譯 PL/Python但找不到一個共享的 

    libpython

    configure

    将 會失敗。這可能意味着你不得不安裝額外的包或者(部分)重編譯 Python安裝以提供這個共享庫。 在從源碼編譯時,請用

    --enable-shared

    标志運作 Python的配置腳本。
  • 如果你想編譯PL/Tcl過程語言, 你當然需要安裝Tcl,要求的最低版本是 Tcl 8.4。
  • 要打開本地語言支援(NLS),也就是說, 用英語之外的語言顯示程式的消息,你需要一個Gettext API的實作。有些作業系統内置了這些(例如Linux、NetBSD、Solaris), 對于其它系統,你可以從 http://www.gnu.org/software/gettext/ 下載下傳一個額外的包。如果你在使用GNU C 庫裡面的Gettext實作, 那麼你就額外需要GNU Gettext包,因為我們需要裡面的幾個工具程式。對于任何其它的實作,你應該不需要它。
  • 如果您想支援加密的用戶端連接配接,則需要OpenSSL。最低要求的版本是0.9.8。
  • 如果你想支援使用Kerberos、OpenLDAP和/或PAM服務的認證,那你需要相應的包。
  • 要編譯PostgreSQL文檔,有一些獨立的要求集,請見 第 J.2 節 . 。

如果你正從Git樹而不是使用釋出的源代碼包進行編譯,或者你想做伺服器端開發, 那麼你還需要下面的包:

  • 如果你需要從 Git 檢出中編譯,或者你修改了實際的掃描器和分析器的定義檔案, 那麼你需要 GNU Flex和Bison。 如果你需要它們,那麼確定自己拿到的是Flex 2.5.31 或更新的版本, 以及Bison 1.875 或者更新的版本。不能使用其他lex和yacc程式。
  • 如果需要從 Git 檢出中編譯,或者你修改了任何使用 Perl 腳本的編譯步驟的輸入檔案,那麼你需要Perl 5.8.3或以後的版本。如果你在 Windows 上編譯,你在任何情況下都需要Perl。運作一些測試套件時也需要Perl。

如果你需要擷取GNU包,你可以在你的本地GNU鏡像站點 (看看 

http://www.gnu.org/order/ftp.html

ftp://ftp.gnu.org/gnu/

找到它們。

還要檢查一下你是否有足夠的磁盤空間。你将大概需要近 100MB 用于存放編譯過程中的源碼樹和大約 20 MB 用于安裝目錄。 一個空資料庫集簇大概需要 35 MB。一個資料庫所占的空間大約是存儲同樣資料的平面檔案所占空間的五倍。如果你要運作回歸測試,還臨時需要額外的 150MB。請用

df

指令檢查剩餘磁盤空間。

本文轉自PostgreSQL中文社群,原文連結: