支援的版本:目前版本 (17) / 16 / 15 / 14 / 13
開發版本:devel
不支援的版本:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1

17.1. 需求 #

一般來說,現代的 Unix 相容平台應該都能夠執行 PostgreSQL。 在發布時已通過特定測試的平台在下面的 第 17.6 節 中描述。

以下軟體套件是建置 PostgreSQL 所需的:

  • GNU 需要 make 3.81 或更新版本; 其他 make 程式或較舊的GNU make 版本將無法運作。(GNU make 有時會以 gmake 名稱安裝。) 要測試GNU make 請輸入

    make --version
    
  • 或者,可以使用 Meson 建置 PostgreSQL。 目前這是一個實驗性的功能。 如果您選擇使用 Meson,則不需要GNU make,但以下的其他需求仍然適用。

    Meson 的最低需求版本為 0.54。

  • 您需要一個ISO/ANSIC 編譯器(至少符合 C99 標準)。 建議使用最新版本的 GCC,但已知 PostgreSQL 可以使用來自不同供應商的各種編譯器進行建置。

  • 除了 gzipbzip2 之外,還需要 tar 才能解壓縮來源發布。

  • 需要 Flex 2.5.35 或更新版本以及 Bison 2.3 或更新版本。 無法使用其他 lexyacc 程式。

  • 建置過程中以及執行某些測試套件時需要 Perl 5.14 或更新版本。(此需求與建置 PL/Perl 的需求不同;請參閱下文。)

  • 預設情況下會使用GNU Readline 函式庫。 它允許 psql(PostgreSQL 命令列 SQL 直譯器)記住您輸入的每個命令,並允許您使用方向鍵來回顧和編輯先前的命令。 這非常有幫助,強烈建議使用。 如果您不想使用它,則必須將 --without-readline 選項指定給 configure。 另外,您通常可以使用 BSD 授權的 libedit 函式庫,該函式庫最初是在 NetBSD 上開發的。libedit 函式庫與 GNU Readline 相容,如果在找不到 libreadline 或使用 --with-libedit-preferred 作為 configure 的選項時,就會使用該函式庫。 如果您使用基於套件的 Linux 發布版,請注意,如果您的發布版中 readlinereadline-devel 套件是分開的,則您需要這兩個套件。

  • 預設情況下會使用 zlib 壓縮函式庫。 如果您不想使用它,則必須將 --without-zlib 選項指定給 configure。 使用此選項會停用 pg_dumppg_restore 中對壓縮封存檔的支援。

  • 預設情況下會使用 ICU 函式庫。 如果您不想使用它,則必須將 --without-icu 選項指定給 configure。 使用此選項會停用對 ICU 定序功能的支援(請參閱 第 23.2 節)。

    ICU 支援需要安裝 ICU4C 套件。 ICU4C 的最低需求版本目前為 4.2。

    預設情況下,pkg-config 將被用於尋找所需的編譯選項。這支援 ICU4C 4.6 版及更高版本。對於較舊的版本,或 pkg-config 不可用的情況下,可以在 configure 中指定變數 ICU_CFLAGSICU_LIBS,如下例所示:

    ./configure ... ICU_CFLAGS='-I/some/where/include' ICU_LIBS='-L/some/where/lib -licui18n -licuuc -licudata'
    

    (如果 ICU4C 位於編譯器的預設搜尋路徑中,您仍然需要指定非空的字串,以避免使用 pkg-config,例如 ICU_CFLAGS=' '。)

以下套件為可選。預設配置並不需要它們,但在啟用某些建置選項時需要它們,如下所述:

  • 要建置伺服器程式語言 PL/Perl,您需要完整的 Perl 安裝,包括 libperl 函式庫和標頭檔。最低要求的版本是 Perl 5.14。由於 PL/Perl 將是一個共享函式庫,在大多數平台上 libperl 函式庫也必須是共享函式庫。這似乎是最新 Perl 版本中的預設值,但在早期版本中並非如此,而且無論如何這是您站點安裝 Perl 的人的選擇。如果選擇建置 PL/Perl 但它無法找到共享的 libperlconfigure 將會失敗。在這種情況下,您將必須手動重新建置和安裝 Perl 才能夠建置 PL/Perl。在 Perl 的配置過程中,請求一個共享函式庫。

    如果您打算大量使用 PL/Perl,您應該確保 Perl 的安裝是使用啟用了 usemultiplicity 選項來建置的(perl -V 將顯示是否如此)。

  • 要建置 PL/Python 伺服器程式語言,您需要一個 Python 安裝,其中包含標頭檔和 sysconfig 模組。最低要求的版本是 Python 3.2。

    由於 PL/Python 將是一個共享函式庫,在大多數平台上 libpython 函式庫也必須是共享函式庫。從原始碼建置的預設 Python 安裝並非如此,但在許多作業系統發行版中都可以使用共享函式庫。如果選擇建置 PL/Python 但它無法找到共享的 libpythonconfigure 將會失敗。這可能意味著您必須安裝額外的套件或重新建置(部分)您的 Python 安裝,以提供這個共享函式庫。從原始碼建置時,請使用 --enable-shared 旗標執行 Python 的 configure。

  • 要建置 PL/Tcl 程序語言,您當然需要一個 Tcl 安裝。最低要求的版本是 Tcl 8.4。

  • 要啟用原生語言支援 (NLS),也就是說,能夠以英語以外的語言顯示程式的訊息,您需要一個 GettextAPI的實作。某些作業系統內建此功能(例如,LinuxNetBSDSolaris),對於其他系統,您可以從 https://gnu.dev.org.tw/software/gettext/ 下載附加套件。如果您使用GNUC 函式庫中的 Gettext 實作,那麼您還需要 GNU Gettext 套件才能獲得一些公用程式。對於任何其他實作,您都不需要它。

  • 如果您想要支援加密的用戶端連線,則需要 OpenSSLOpenSSL 也需要在沒有 /dev/urandom(Windows 除外)的平台上進行亂數產生。最低要求的版本是 1.0.2。

  • 如果您想要支援使用這些服務進行驗證,則需要 MIT Kerberos (用於 GSSAPI)、OpenLDAP 和/或 PAM

  • 如果您想要支援使用該方法壓縮資料,則需要 LZ4;請參閱 default_toast_compressionwal_compression

  • 如果您想要支援使用該方法壓縮資料,則需要 Zstandard;請參閱 wal_compression。最低要求的版本是 1.4.0。

  • 要建置 PostgreSQL 文件,有另一組需求;請參閱 第 J.2 節

如果您需要取得GNU套件,您可以在您當地的GNU鏡像站點找到它(請參閱 https://gnu.dev.org.tw/prep/ftp 以取得清單)或在 ftp://ftp.gnu.org/gnu/ 找到。

提交更正

如果您在文件中看到任何不正確、與您對特定功能的體驗不符或需要進一步澄清的地方,請使用此表單來報告文件問題。