2025年9月25日: PostgreSQL 18 釋出!
支援的版本: 當前 (18) / 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
    
  • 或者,PostgreSQL 可以使用 Meson 構建。這是使用 Visual Studio 在 Windows 上構建 PostgreSQL 的唯一選項。對於其他平臺,使用 Meson 目前仍處於實驗階段。如果您選擇使用 Meson,則您不需要GNU make,但下面的其他要求仍然適用。

    Meson 的最低要求版本是 0.54。

  • 您需要一個ISO/ANSIC 編譯器(至少支援 C99)。推薦使用最新的 GCC 版本,但 PostgreSQL 已知可以在多種不同的供應商提供的編譯器上編譯。

  • 除了 gzipbzip2 之外,還需要 tar 來解壓原始碼分發包。

  • 需要 FlexBison。不能使用其他的 lexyacc 程式。Bison 需要至少 2.3 版本。

  • 在編譯過程中以及執行一些測試套件時需要 Perl 5.14 或更高版本。(此要求獨立於編譯 PL/Perl 的要求;參見下文。)

  • 預設使用GNU Readline 庫。它允許 psql(PostgreSQL 命令列 SQL 直譯器)記住您輸入的每個命令,並允許您使用箭頭鍵來回憶和編輯之前的命令。這非常有用,強烈推薦。如果您不想使用它,則必須向 configure 指定 --without-readline 選項。作為替代,您通常可以使用 BSD 許可的 libedit 庫,該庫最初是在 NetBSD 上開發的。libedit 庫與 GNU Readline 相容,如果在找不到 libreadline 時,或者將 --with-libedit-preferred 指定為 configure 的選項時,它將被使用。如果您使用的是基於包的 Linux 發行版,請注意,您需要 readlinereadline-devel 包(如果您的發行版中它們是分開的)。

  • 預設使用 zlib 壓縮庫。如果您不想使用它,則必須向 configure 指定 --without-zlib 選項。使用此選項將停用 pg_dumppg_restore 中對壓縮歸檔的支援。

  • 預設使用 ICU 庫。如果您不想使用它,則必須向 configure 指定 --without-icu 選項。使用此選項將停用對 ICU 排序規則功能的支援(參見 第 23.2 節)。

    ICU 支援需要安裝 ICU4C 包。目前 ICU4C 的最低要求版本是 4.2。

    預設情況下,將使用 pkg-config 來查詢所需的編譯選項。這支援 ICU4C 版本 4.6 及更高版本。對於舊版本,或者如果 pkg-config 不可用,則可以將變數 ICU_CFLAGSICU_LIBS 指定給 configure,例如:

    ./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 的人員的選擇。configure 如果選擇了編譯 PL/Perl 但找不到共享的 libperl,則會失敗。在這種情況下,您必須手動重新編譯和安裝 Perl 才能編譯 PL/Perl。在 Perl 的配置過程中,請請求一個共享庫。

    如果您打算對 PL/Perl 進行 incidental 以外的使用,您應該確保 Perl 安裝是用 usemultiplicity 選項啟用的(perl -V 會顯示是否是這種情況)。

  • 要編譯 PL/Python 伺服器程式語言,您需要一個帶有標頭檔案和 sysconfig 模組的 Python 安裝。最低支援版本是 Python 3.6.8。

    由於 PL/Python 將是一個共享庫,因此在大多數平臺上 libpython 庫也必須是共享庫。預設情況下,從原始碼構建的 Python 安裝不是這種情況,但在許多作業系統發行版中都提供了共享庫。configure 如果選擇了編譯 PL/Python 但找不到共享的 libpython,則會失敗。這可能意味著您需要安裝額外的軟體包或重新編譯(部分)您的 Python 安裝以提供此共享庫。從原始碼構建時,請使用 --enable-shared 標誌執行 Python 的 configure。

  • 要編譯 PL/Tcl 過程語言,您當然需要一個 Tcl 安裝。最低要求版本是 Tcl 8.4。

  • 要啟用本機語言支援(NLS),即,以非英語語言顯示程式訊息的能力,您需要一個 Gettext 的實現API。某些作業系統內建了此功能(例如 LinuxNetBSDSolaris),對於其他系統,您可以從 https://www.gnu.org/software/gettext/ 下載附加包。如果您在GNUC 庫中使用 Gettext 實現,那麼您將另外需要 GNU Gettext 包用於某些實用程式。對於其他任何實現,您將不需要它。

  • 如果您想支援加密的客戶端連線,則需要 OpenSSL。對於沒有 /dev/urandom 的平臺(Windows 除外),OpenSSL 也用於隨機數生成。最低要求版本是 1.1.1。

    此外,使用 OpenSSL 相容層支援 LibreSSL。最低要求版本是 3.4(來自 OpenBSD 7.0 版本)。

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

  • 您需要 Curl 來構建一個可選模組,該模組為客戶端應用程式實現了 OAuth 裝置授權流

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

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

  • 要編譯 PostgreSQL 文件,有單獨的要求集;請參閱 第 J.2 節

如果您需要獲取一個GNU包,您可以在本地找到GNU映象站點(參見 https://www.gnu.org/prep/ftp 獲取列表)或在 ftp://ftp.gnu.org/gnu/

提交更正

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