他のバージョンの文書 16 | 15 | 14 | 13 | 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

17.1. Visual C++またはMicrosoft Windows SDKを使用した構築

Microsoftが提供するVisual C++コンパイラスイートを使用してPostgreSQLを構築することができます。 これらのコンパイラはVisual StudioVisual Studio Express、いくつかのバージョンのMicrosoft Windows SDKにあります。 すでにVisual Studio環境が設定されているのでなければ、Microsoftから無料でダウンロードできるVisual Studio Express 2019 for Windows DesktopのコンパイラやWindows SDK 10のものを使用することが最も簡単な方法です。

32ビットも64ビットもマイクロソフトのコンパイラ一式で構築が可能です。 32ビットPostgreSQLの構築はVisual Studio 2005からVisual Studio 2017(Expressエディション含む)までに付属のコンパイラをサポートします。単体のWindows SDKの6.0から10までについても同様です。 64ビットPostgreSQLの構築はMicrosoft Windows SDKのバージョン6.0aから10、もしくはVisual Studio 2008かそれ以上のバージョンでサポートしています。 Visual Studio 2005からVisual Studio 2013までで構築する場合、コンパイルはWindows XPWindows Server 2003までサポートされています。 Visual Studio 2015での構築は、Windows VistaWindows Server 2008までサポートされています。 Visual Studio 2017からVisual Studio 2019での構築は、Windows 7 SP1Windows Server 2008 R2 SP1までサポートされています。

Visual C++またはPlatform SDKを使用して構築するためのツールがsrc/tools/msvcディレクトリに存在します。 構築する際に、MinGWCygwinに付属するツールがシステムPATHに存在しないことを確認してください。 また、PATH上で必要なVisual C++ツールがすべて利用可能になっていることを確認してください。 Visual Studioでは、Visual Studio コマンドプロンプトを起動してください。 64ビット版を構築したい場合には、それぞれ64ビット版のコマンドを使用する必要があります。 Microsoft Windows SDKでは、SDKのスタートメニューにあるCMD shellを起動してください。 最近のSDKでは、setenvコマンドを使うことで対象のCPUアーキテクチャ、構築種類、対象OSを変更することができます。 例えばsetenv /x86 /release /xpは対象をWindows XP以降の32ビットリリース版として構築します。 その他のsetenvのオプションについては/?を参照してください。 すべてのコマンドはsrc\tools\msvcディレクトリから実行しなければなりません。

構築する前に、config.plファイルを編集して、変更したい設定オプションや使用する何らかのサードパーティ製のライブラリのパスを反映させる必要があるかもしれません。 まずconfig_default.plファイルを読み取り、解析することから始まり、そしてconfig.pl内の何らかの変更が適用されて、すべての設定が決定されます。 例えば、Pythonインストレーションの場所を指定する場合、以下をconfig.plに記載します。

$config->{python} = 'c:\python26';

config_default.pl内の指定と異なるパラメータのみを指定する必要があります。

何か他に環境変数を設定する必要があれば、buildenv.plという名前のファイルを作成し、そこに必要なコマンドを記載してください。 たとえば、PATHにbison用のパスを追加したいのであれば、以下を含むファイルを作成してください。

$ENV{PATH}=$ENV{PATH} . ';c:\some\where\bison\bin';

Visual Studioビルドコマンド(msbuildまたはvcbuild)に追加のコマンドライン引数を渡すには次のようにします。

$ENV{MSBFLAGS}="/m";

17.1.1. 必要条件

PostgreSQLを構築するには以下の追加製品が必要です。 config.plファイルを使用してライブラリを利用できるディレクトリを指定してください。

Microsoft Windows SDK

もしあなたの構築環境がサポートされているMicrosoft Windows SDKのバージョンを搭載していないのであれば、入手可能な最新版(現在はバージョン10)までアップグレードすることを推奨します。 https://www.microsoft.com/downloadからダウンロードできます。

SDKのWindows Headers and Librariesを常にインクルードしなければなりません。 Visual C++ Compilersに含まれるWindows SDKをインストールしている場合、構築のためにVisual Studioは必要ありません。 バージョン8.0aでは、Windows SDKは完全なコマンドライン構築環境を提供していないことに注意してください。

ActiveState Perl

ActiveState Perlが構築生成スクリプトを実行するために必要です。 MinGWまたはCygwinのPerlでは動作しません。 また、PATH内に含められていなければなりません。 https://www.activestate.comからバイナリをダウンロードできます (注意:バージョン5.8.3以降が必要です。フリー版の標準配布で十分です)。

使用できるようになることが目的であれば以下の追加製品は必要ありませんが、完全なパッケージを構築する場合には必要です。 config.plを使用してライブラリが利用できるディレクトリを指定してください。

ActiveState TCL

PL/Tclを構築する時に必要です (注意:バージョン8.4が必要です。フリー版の標準配布で十分です)。

BisonおよびFlex

Gitから構築する場合はBisonおよびFlexが必要です。 しかしリリースファイルから構築する場合は不要です。 Bison 1.875またはバージョン2.2以降のみで動作します。 Flexはバージョン2.5.31以降でなければなりません。

BisonおよびFlexの両方が、MinGWコンパイラ一式の一部としてhttp://www.mingw.org/wiki/MSYSから入手できる、msysツール一式に含まれています。

すでにPATHが通っていない場合は、buildenv.plの中でflex.exeおよびbison.exeがあるディレクトリをPATH環境変数に追加する必要があります。 MinGWの場合、このディレクトリはMinGWのインストールディレクトリの\msys\1.0\binサブディレクトリです。

注記

GnuWin32からのBisonディストリビューションでは、C:\Program Files\GnuWin32の様に名前に空白を持つディレクトリにインストールされると正常に機能しないというバグがあります。 代わりにC:\GnuWin32へのインストール、または、PATH環境設定におけるGnuWin32へのNTFSショートネームパスの使用(例えばC:\PROGRA~1\GnuWin32)を検討してください。

注記

PostgreSQL FTPサイトで配布され、古い文書で参照していた古いwinflexは、64ビットWindowsホストではflex: fatal internal error, exec failedで失敗します。 代わりにMSYSからのflexを使用してください。

Diff

リグレッションテストを実行するにはdiffが必要です。 http://gnuwin32.sourceforge.netからダウンロードできます。

Gettext

NLSサポート付きで構築する場合はgettextが必要です。 http://gnuwin32.sourceforge.netからダウンロードできます。 バイナリ、依存物、開発用ファイルすべてが必要であることに注意してください。

MIT Kerberos

GSSAPI認証をサポートする場合に必要です。 MIT Kerberosはhttp://web.mit.edu/Kerberos/dist/index.htmlからダウンロードできます。

libxml2およびlibxslt

XMLサポートのために必要です。 バイナリはhttp://zlatkovic.com/pub/libxmlから、ソースはhttp://xmlsoft.orgからダウンロードできます。 libxml2はiconvを必要とすることに注意してください。 同じ場所からダウンロードできます。

OpenSSL

SSLサポートのために必要です。 バイナリはhttps://www.slproweb.com/products/Win32OpenSSL.htmlから、ソースはhttps://www.openssl.orgからダウンロードできます。

ossp-uuid

UUID-OSSPサポート(contribのみ)で必要です。 ソースはhttp://www.ossp.org/pkg/lib/uuid/にあります。

Python

PL/Pythonを構築する場合に必要です。 バイナリはhttps://www.python.orgからダウンロードできます。

zlib

pg_dumpおよびpg_restoreにおける圧縮をサポートするために必要です。 バイナリはhttp://www.zlib.netからダウンロードできます。

17.1.2. 64ビット版のWindowsにおける特別な考慮事項

64ビット版Windowsにおいてx64アーキテクチャのみでPostgreSQLを構築することができます。 Itaniumプロセッサをサポートしていません。

同じ構築用ツリーで32ビット版と64ビット版を混在させることはサポートされません。 構築システムは32ビット環境で動作しているか64ビット環境で動作しているかを自動的に検出し、それにしたがってPostgreSQLを構築します。 このため構築作業を始める前に正しいコマンドプロンプトを開始することが重要です。

pythonOpenSSLなどのサーバサイドのサードパーティ製ライブラリを使用するためには、ライブラリも64ビット版である必要があります。 64ビット版のサーバで32ビット版のライブラリをロードすることはサポートされていません。 PostgreSQLがサポートするサードパーティ製のライブラリで32ビット版しか利用できないものが複数あります。 こうした場合、64ビット版のPostgreSQLで使用することはできません。

17.1.3. 構築

リリース条件(デフォルト)でPostgreSQLをすべて構築するためには、以下のコマンドを実行してください。

build

デバッグ条件でPostgreSQLをすべて構築するためには、以下のコマンドを実行してください。

build DEBUG

単一のプロジェクトのみを構築するためには、たとえばpsqlであれば、以下のコマンドを実行してください。

build psql
build DEBUG psql

デバッグのためにデフォルトの構築条件を変更するためには、以下をbuildenv.plファイルに記載してください。

$ENV{CONFIG}="Debug";

また、Visual Studio GUI内から構築することも可能です。 この場合はコマンドプロンプトから以下を実行しなければなりません。

perl mkvcbuild.pl

その後に、生成されたpgsql.sln(ソースツリーのトップディレクトリに存在します。)をVisual Studioで開いてください。

17.1.4. 整理およびインストール

ほとんどの場合、Visual Studioの持つ自動依存関係追跡により変更されたファイルが扱われます。 しかし、大規模な変更が行われた場合、インストレーションを整理する必要があるかもしれません。 このためには、clean.batコマンドを実行してください。 これにより、生成されたファイルがすべて自動的に消去されます。 また、distパラメータを使用して実行することも可能です。 この場合、make distcleanのように振舞い、flex/bisonの出力ファイルも削除します。

デフォルトで、すべてのファイルはdebugまたはreleaseディレクトリ以下のサブディレクトリに書き出されます。 これらのファイルを標準レイアウトでインストールし、データベースの初期化や使用に必要なファイルを生成するためには、以下のコマンドを実行してください。

install c:\destination\directory

クライアントアプリケーションとインタフェースライブラリだけをインストールしたいのであれば、以下のコマンドが使えます。

install c:\destination\directory client

17.1.5. リグレッションテストの実行

リグレッションテストを実行するためには、まず必要なすべての部品の構築が完了していることを確認してください。 また、システムのすべての部品で必要とするDLL(手続き言語用のPerlのDLLやPythonのDLLなど)がシステムパスに含まれていることを確認してください。 もし含まれていなければ、buildenv.plファイルを介して設定してください。 試験を実行するためには、以下のコマンドのいずれかをsrc\tools\msvcディレクトリから実行してください。

vcregress check
vcregress installcheck
vcregress plcheck
vcregress contribcheck
vcregress modulescheck
vcregress ecpgcheck
vcregress isolationcheck
vcregress bincheck
vcregress recoverycheck
vcregress upgradecheck

使用するスケジュール(デフォルトはparallelです)を変更するためには、コマンドラインに以下のように追加してください。

vcregress check serial

リグレッションテストの詳細については第33章を参照してください。

クライアントプログラムでvcregress bincheckによりリグレッションテストを実行したり、vcregress recoverycheckによりリカバリテストを実行したりするには、追加のPerlモジュールをインストールしておかなければなりません。

IPC::Run

これを書いている時点では、IPC::RunはActiveState PerlインストレーションにもActiveState Perl Package Manager(PPM)ライブラリにも含まれていません。 インストールするためには、https://metacpan.org/release/IPC-RunでCPANからIPC-Run-<version>.tar.gzソースアーカイブをダウンロードして、展開してください。 buildenv.plを編集して、取り出されたアーカイブからlibサブディレクトリを指すように変数PERL5LIBを追加してください。 例えば以下の通りです。

$ENV{PERL5LIB}=$ENV{PERL5LIB} . ';c:\IPC-Run-0.94\lib';

17.1.6. 文書の構築

PostgreSQLの文書をHTML書式で構築するためには、いくつかツールやファイルが必要です。 これらのファイルをすべて格納するためのトップディレクトリを作成し、以下のリストに記載したサブディレクトリに格納してください。

OpenJade 1.3.1-2

https://sourceforge.net/projects/openjade/files/openjade/1.3.1/openjade-1_3_1-2-bin.zip/downloadからダウンロードし、openjade-1.3.1サブディレクトリで伸長してください。

DocBook DTD 4.2

https://www.oasis-open.org/docbook/sgml/4.2/docbook-4.2.zipからダウンロードし、docbookサブディレクトリで伸長してください。

ISO文字エンティティ

https://www.oasis-open.org/cover/ISOEnts.zipからダウンロードし、docbookサブディレクトリで伸長してください。

buildenv.plファイルを編集し、このトップディレクトリの場所を示す変数を追加してください。 例を示します。

$ENV{DOCROOT}='c:\docbook';

文書を構築するためには、builddoc.batコマンドを実行してください。 これは実際にはインデックスを作成するために、2回構築を行うことに注意してください。 生成されたHTMLファイルはdoc\src\sgmlに格納されます。