†PostgreSQLのソースを入手しソースからコンパイルしインストールする手順を記します。最新のPostgreSQLを試してみたり、プライベートな環境を構築することができます。CentOS6の2つです。CentOS6で操作に差異がある場合は、別途記述します。CentOSでPostgreSQLをソースからコンパイルする手順PostgreSQLのソースコードを入手するCコンパイラなどの開発環境をインストールしていない場合ダウンロードしたPostgreSQLを解凍します。日本PostgreSQLユーザ会からPostgreSQLのソースコードをダウンロードすることができます。ブラウザを利用してダウンロードしてもよいですし、wgetやcurlコマンドを利用してダウンロードしてもよいでしょう。本資料では、ブラウザを利用してダウンロードします。本資料作成時の最新バージョンである、9.1.4のソースコードを利用します。†CentOSで開発環境をインストールしていない場合は、以下の資料を参考に開発環境(ツール)をインストールしてください。↑ダウンロードしたPostgreSQLを解凍します。以下、CentOS上での作業です。ユーザアカウントはsakuraで行います。以下の通り、ダウンロードしたPostgreSQLのソースコードはアカウントsakuraのホームディレクトリに保存しました。CentOS6でPostgreSQLをソースコードからコンパイルするために必要なパッケージなどを以下に記します。†flexのインストール(バージョンアップ)記事を参考にflexをインストールしてください。†readline-develパッケージのインストールzlib-develパッケージのインストール以下にパッケージがインストールされていない場合にconfigureコマンドを利用すると出力される警告やエラーについて記します。コンパイルとインストールに進む方は「コンパイル&インストール」に進んでください。†configureで以下のWARNINGが出力される原因はflexのバージョンが古いためです。以下リンクはflexをソースコードからインストールする記事です。記事を参考にflexをインストールしてください。†configure時に以下のメッセージが表示された場合は、readline-develがインストールされていないためです。support.rootになり、以下のコマンドでreadline-develをインストールしてください。†configure時に以下のメッセージが表示された場合は、zlib-develがインストールされていないためです。support.rootになり、以下のコマンドでzlib-develをインストールしてください。以下の手順でPostgreSQLのソースコードのコンパイルとインストールを行います。以下のコマンドで展開します。postgresql-9.1.4.tar.gz展開が完了するとホームディレクトリは以下のようになります。postgresql-9.1.4.tar.gzpostgresql-9.1.4ディレクトリが作成されPostgreSQLのソースなど一式が格納されています。--prefix=$HOME/pgsql上記の--prefixはインストールするディレクトリになります。ホームディレクトリのpgsqlにインストールするように指示していあります。makeコマンドを実行(ソースコードのコンパイル)make以下のメッセージが表示されればコンパイルは完了です。コマンドを実行configureで指定したprefixのディレクトリにPostgreSQLがインストールされます。complete.$HOME/pgsqlにインストールされているのが確認できます。†ホームディレクトリ内にインストールしたPostgreSQLを起動するために以下のようにPATHを設定します。.bashrcなどに追記すれば以後、有効になります。PATH=$HOME/pgsql/bin:$PATHinitdbをしてみる上記のPATH設定によりinitdbコマンドがprefixで指定したディレクトリのbinディレクトリにインストールしたinitdbコマンドを示しています。initdb~/pgsql/bin/initdbホームディレクトリに戻りinitdbしてみます。$HOME/sakuraにinitdbにより作成されたデータベースシステム(クラスタ)が作成されました。postgresql.conf作成したデータベースシステム(クラスタ)を起動してみます。pg_ctlコマンドにより起動します。connectionsEnterキーを押せばプロンプトが戻ってきます。SQLを実行してみます。psqlコマンドを起動しSQLを実行してみます。データベースを作成していないので、最初からあるpostgresに接続しSQLを実行してみます。\qPostgreSQLの停止をしてみます。pg_ctlコマンドで起動したPostgreSQLを停止させます。